forked from UniverseBow/flake
init (cerulean template)
This commit is contained in:
commit
1b7b1e66f0
65 changed files with 5597 additions and 0 deletions
89
groups/all/default.nix
Normal file
89
groups/all/default.nix
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../../hosts/modules/core/garbage-collector.nix
|
||||
];
|
||||
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
|
||||
nftables.enable = true;
|
||||
firewall = {
|
||||
enable = lib.mkDefault true;
|
||||
allowPing = lib.mkDefault true;
|
||||
};
|
||||
|
||||
# Use CloudFlare's WARP+ 1.1.1.1 DNS service
|
||||
nameservers = [
|
||||
"1.1.1.1"
|
||||
"1.0.0.1"
|
||||
];
|
||||
};
|
||||
|
||||
programs.nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 7d --keep 3";
|
||||
flake = "/etc/nixos"; # sets NH_OS_FLAKE variable for you
|
||||
};
|
||||
|
||||
nix.settings = {
|
||||
# making wheel group trusted allows your user
|
||||
# to import packages not signed by a trusted key
|
||||
trusted-users = ["root" "@wheel"];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
"pipe-operators"
|
||||
];
|
||||
download-buffer-size = 524288000; # 500 MiB
|
||||
};
|
||||
|
||||
time.timeZone = lib.mkDefault "America/Los_Angeles";
|
||||
i18n.defaultLocale = lib.mkDefault "en_US.UTF-8";
|
||||
|
||||
# Enable initrd hook for virtual console customisation
|
||||
# aka cool colours when bootting yay!!
|
||||
console = {
|
||||
enable = true;
|
||||
earlySetup = true; # initrd pre hook
|
||||
keyMap = "us";
|
||||
font = "Lat2-Terminus16";
|
||||
# ANSI 24-bit color definitions (theme: dracula)
|
||||
colors = [
|
||||
"21222c"
|
||||
"ff5555"
|
||||
"50fa7b"
|
||||
"f1fa8c"
|
||||
"bd93f9"
|
||||
"ff79c6"
|
||||
"8be9fd"
|
||||
"f8f8f2"
|
||||
"6272a4"
|
||||
"ff6e6e"
|
||||
"69ff94"
|
||||
"ffffa5"
|
||||
"d6acff"
|
||||
"ff92df"
|
||||
"a4ffff"
|
||||
"ffffff"
|
||||
];
|
||||
};
|
||||
|
||||
users.defaultUserShell = pkgs.bash;
|
||||
|
||||
security.sudo-rs = {
|
||||
enable = true;
|
||||
wheelNeedsPassword = lib.mkOverride 200 true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
vim
|
||||
wget
|
||||
tree
|
||||
];
|
||||
}
|
||||
85
groups/desktops/default.nix
Normal file
85
groups/desktops/default.nix
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./system.nix
|
||||
./programs.nix
|
||||
|
||||
../../hosts/modules/bashistrans.nix
|
||||
../../hosts/modules/wm/hyprland.nix
|
||||
];
|
||||
|
||||
boot.loader.grub2-theme = {
|
||||
enable = true;
|
||||
# GitHub: vinceliuice/grub2-themes
|
||||
theme = "whitesur"; # stylish, vimix, or whitesur
|
||||
footer = true;
|
||||
customResolution = "1920x1080";
|
||||
};
|
||||
|
||||
# Set display manager (login screen)
|
||||
services.displayManager = {
|
||||
# sddm relies on pkgs.libsForQt5.qt5.qtgraphicaleffects
|
||||
sddm = {
|
||||
enable = true;
|
||||
wayland.enable = ! config.services.xserver.enable; # experimental
|
||||
theme = "corners";
|
||||
};
|
||||
|
||||
defaultSession =
|
||||
if config.programs.hyprland.withUWSM == true
|
||||
then "hyprland-uwsm"
|
||||
else "hyprland";
|
||||
};
|
||||
|
||||
programs.fish.enable = true;
|
||||
|
||||
# ----- FONTS -----
|
||||
fonts = {
|
||||
enableDefaultPackages = true; # no clue what this line does tbh
|
||||
packages = with pkgs;
|
||||
[
|
||||
geist-font # for my hyprlock theme
|
||||
# texlive maintains a noto-emoji flake
|
||||
texlivePackages.noto-emoji
|
||||
]
|
||||
++ builtins.filter lib.attrsets.isDerivation (
|
||||
builtins.attrValues pkgs.nerd-fonts
|
||||
);
|
||||
|
||||
# TODO: change your default fonts
|
||||
fontconfig = {
|
||||
defaultFonts = {
|
||||
serif = ["Geist"];
|
||||
sansSerif = ["Geist"];
|
||||
monospace = ["Cousine"];
|
||||
emoji = ["Noto Emoji"];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# ---- ENVIRONMENT VARIABLES ----
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
# Hint Electrons apps to use Wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
||||
XDG_DOWNLOAD_DIR = "$HOME/Downloads";
|
||||
XDG_CONFIG_HOME = "$HOME/.config";
|
||||
};
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
sddm-theme-corners
|
||||
];
|
||||
};
|
||||
|
||||
# ------- USERS -------
|
||||
users.users.lorkan = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "netdev" "docker"];
|
||||
shell = pkgs.fish;
|
||||
};
|
||||
}
|
||||
76
groups/desktops/programs.nix
Normal file
76
groups/desktops/programs.nix
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
{pkgs, ...}: {
|
||||
imports = [
|
||||
../../hosts/modules/apps/sober.nix
|
||||
../../hosts/modules/apps/steam.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
# Shell
|
||||
bash
|
||||
fish
|
||||
grc # colorise command outputs
|
||||
|
||||
# Nix
|
||||
nix-prefetch-git
|
||||
nix-index
|
||||
nix-unit
|
||||
ns # nix-search-tv overlay
|
||||
|
||||
# Modern Unix Commands
|
||||
tlrc
|
||||
btop
|
||||
eza
|
||||
yazi
|
||||
exiftool # for yazi
|
||||
ripgrep
|
||||
viddy # modern `watch` command
|
||||
timg # terminal image (sixel) viewer
|
||||
wormhole-rs
|
||||
|
||||
# Pretty necessary
|
||||
git
|
||||
git-filter-repo
|
||||
brightnessctl
|
||||
acpi
|
||||
vim
|
||||
powertop
|
||||
usbutils
|
||||
nmap
|
||||
|
||||
# "Standard" Unix Commands
|
||||
file
|
||||
wget
|
||||
tree
|
||||
pstree
|
||||
zip
|
||||
unzip
|
||||
unrar-free
|
||||
lz4
|
||||
moreutils
|
||||
man-pages
|
||||
man-pages-posix
|
||||
|
||||
# Desktop Services
|
||||
awww
|
||||
bluetui
|
||||
hyprpicker # color picker
|
||||
hyprshot # screenshot utility
|
||||
wl-clipboard # clipboard for wayland
|
||||
wl-screenrec # screen recording utility
|
||||
|
||||
# Userland Applications
|
||||
helvum
|
||||
easyeffects
|
||||
pavucontrol
|
||||
qbittorrent # torrenting
|
||||
];
|
||||
|
||||
services.pcscd.enable = true;
|
||||
# GNUPG-Agent stores your GPG+SSH keys securely
|
||||
programs = {
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
80
groups/desktops/system.nix
Normal file
80
groups/desktops/system.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
{...}: {
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
};
|
||||
|
||||
bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = true;
|
||||
};
|
||||
};
|
||||
|
||||
virtualisation.docker.enable = true;
|
||||
|
||||
services = {
|
||||
# systemd-resolved provides network name resolution
|
||||
# to local processes via a D-Bus interface.
|
||||
resolved = {
|
||||
enable = true;
|
||||
dnssec = "true";
|
||||
domains = ["~."];
|
||||
# Use CloudFlare's WARP+ 1.1.1.1 DNS service
|
||||
fallbackDns = [
|
||||
"1.1.1.1#one.one.one.one"
|
||||
"1.0.0.1#one.one.one.one"
|
||||
];
|
||||
dnsovertls = "true";
|
||||
};
|
||||
|
||||
# Multimedia Framework
|
||||
# With backwards compatability for alsa/pulseaudio/jack
|
||||
pipewire = {
|
||||
enable = true;
|
||||
audio.enable = true;
|
||||
wireplumber.enable = true;
|
||||
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
# pulse.enable = true;
|
||||
# jack.enable = true;
|
||||
|
||||
# disable X11 bell module, which plays a sound on urgency hint
|
||||
extraConfig = {
|
||||
pipewire."99-silent-bell.conf" = {
|
||||
"context.properties" = {
|
||||
"module.x11.bell" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# allows pipewire to use the realtime scheduler for increased performance
|
||||
security.rtkit.enable = true;
|
||||
|
||||
# ---- ENVIRONMENT VARIABLES ----
|
||||
environment = {
|
||||
# always install "dev" derivation outputs
|
||||
extraOutputsToInstall = ["dev"];
|
||||
};
|
||||
|
||||
documentation = {
|
||||
enable = true;
|
||||
doc.enable = false; # install /share/doc packages
|
||||
man = {
|
||||
enable = true; # install manpages
|
||||
|
||||
# https://discourse.nixos.org/t/slow-build-at-building-man-cache/52365/4
|
||||
generateCaches = false;
|
||||
};
|
||||
info.enable = false; # install GNU info
|
||||
dev.enable = true; # install docs intended for developers
|
||||
nixos = {
|
||||
enable = true; # install NixOS documentation (ie man -k nix, & nixos-help)
|
||||
options.splitBuild = true;
|
||||
includeAllModules = false;
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue