From dd18dcadb9183c131b999361f999b389ba2f5ad2 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Wed, 28 May 2025 21:06:30 -0500 Subject: [PATCH] so much cleanup --- hosts/deck/configuration.nix | 228 +++++++------------------- hosts/deck/hardware-configuration.nix | 108 ------------ hosts/deck/home.nix | 108 ++---------- hosts/deck/networking.nix | 44 +++++ hosts/default.nix | 19 ++- hosts/desktop/configuration.nix | 32 +--- hosts/desktop/home.nix | 30 +--- hosts/nas/configuration.nix | 20 --- hosts/nas/home.nix | 67 +++----- hosts/pi4/configuration.nix | 2 - hosts/pi4/home.nix | 81 ++++----- hosts/pi5/configuration.nix | 2 - hosts/pi5/home.nix | 103 ++---------- share/gaming/default.nix | 2 + share/home/defaults.nix | 54 ++++++ share/root-user/default.nix | 46 +----- 16 files changed, 258 insertions(+), 688 deletions(-) delete mode 100755 hosts/deck/hardware-configuration.nix create mode 100644 hosts/deck/networking.nix create mode 100644 share/home/defaults.nix diff --git a/hosts/deck/configuration.nix b/hosts/deck/configuration.nix index da3ce01..af5c667 100755 --- a/hosts/deck/configuration.nix +++ b/hosts/deck/configuration.nix @@ -6,146 +6,86 @@ { imports = - [ # Include the results of the hardware scan. - ../default.nix - ./boot.nix - ./jovian.nix - ./sops.nix -# ./hardware-configuration.nix - ]; + [ + ../default.nix + ./boot.nix + ./jovian.nix + ./networking.nix + ./sops.nix + ]; - nixpkgs.config.allowUnfree = true; - # Enable nix flakes and nix-command tools - nix = { - settings = { - warn-dirty = lib.mkForce false; - experimental-features = lib.mkForce [ - "nix-command" - "flakes" - ]; - }; + services = { + # Enable CUPS to print documents. + printing.enable = true; - # Garbage collect automatically every week - gc.automatic = lib.mkDefault true; - gc.options = lib.mkDefault "--delete-older-than 30d"; - - optimise.automatic = lib.mkDefault true; - }; - - networking = { - hostName = "steamdeck"; - networkmanager = { + xserver = { enable = true; - wifi.powersave = lib.mkDefault false; - settings.connectivity.uri = lib.mkDefault "http://nmcheck.gnome.org/check_network_status.txt"; - ensureProfiles = { - environmentFiles = [ - config.sops.secrets.wifi.path - ]; - - profiles = { - "Joey's Jungle 6G" = { - connection = { - id = "Joey's Jungle 6G"; - type = "wifi"; - }; - ipv4 = { - method = "auto"; - }; - ipv6 = { - addr-gen-mode = "stable-privacy"; - method = "auto"; - }; - wifi = { - mode = "infrastructure"; - ssid = "Joey's Jungle 6G"; - }; - wifi-security = { - key-mgmt = "sae"; - psk = "$PSK"; - }; - }; - }; - }; + desktopManager.gnome.enable = true; }; }; - - # Set your time zone. - time.timeZone = "America/Chicago"; - - services.xserver.desktopManager.gnome.enable = true; - - services.desktopManager.plasma6 = { - enable = false; - enableQt5Integration = true; - }; xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - services.xserver.enable = true; - - # Enable CUPS to print documents. - services.printing.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.deck = { - hashedPasswordFile = config.sops.secrets."desktop/matt_password".path; - isNormalUser = true; - extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. - openssh.authorizedKeys.keys = [ - # macBook - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCw9zq8DLGByI5v2gAn95hKNyOsm3g61a2buxu2BBMFysQJgmZPCCLUqRJKhSM5Vm/JOgsAmdpRBRZQoHD+6S844CJHb4v4VIbjkyQgYCuM7Rst2IOZ5QybvsA2/D0nwytZ+HXQqDj2AagUYDbz0gyyIHkDQ5YGBMkvkWz/h1Vci6aoBM7VihEDM4KlWoTVuPeASGM8r5IZ2FS83Djbqo4ov6AYvLMrKB9Z7hmFgH6R3LE0gxOkzbGVXtSuvJyrjvgytoT22UhATjjxSQ9D+YJXXkQoB3lUdg8OoIquUPjMZpl4mR8ffvseWPfcvD1XlD5t+TOHFqKpESO547tlOBYhdpew+NSgAXpamCU6oyV8tDCywLQu2ucxHRn78u6WXzWHkDtffdhzmk6TZaPhWqVHuTGjR4higBgGqUfSaKOMszt+FDRZAr3HtuQ2+zJ8bowK9fW5OqilTtK2HtQqroD9ApegDNbqOz6kGy5IycSXvqPURy/M4lxZxbtBPuemcJs= mattjallen@MacBook-Pro.local" - # desktop windows - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZ2PYPjZddOzR8OJj16G88KcUhCDLkvrEmpUQP0wKHDUuA27HQQ2ORo66asadwGHY3k1VDZ1ei9l9H++SIIeKOaaUr5yZdktvj4POUNtbd9ZhcS7sZU7BSF+NMDM+h3tImh6z0S7mWvRQOUv3ZM+ZER+5xTWJVG1OOJEpb1drxJk6Qz0wbZKSR7TPNFBLLXlVy7hkNYf07RtDyhCCxNB3hJfa8c+oztnWumwDhDQWLqiUXWIU2QH6iRLGl/WYnujtNvVVaV/Hn3JJkS6MM9dnV3cpoIO0+J7+WfsN9rZ0wXt5yY3GhiGXwmcO5eYVli8lHlLWtK7aYSETyry6CBsLbojzOQO5rSqhpwfF2njAAFAQU0UjLc8PahisIuFKCwHH4iyXXOagiv5K1Mc/0Ak+WhhMPee6vV2p7NTyNpXRvouDbWy5cSRH31WgQ9fK5mIGe5v8nGGqtEhUubUkiOgP+H3UbT2V/nTv/TFKdJcKw+WmizvTrxBmaMjWALlkYl+s= mattl@Jallen-PC" - # desktop nixos - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPTBMydhOc6SnOdB5WrEd7X07DrboAtagCUgXiOJjLov matt@matt-nixos" - ]; - packages = with pkgs; [ - firefox - tree - ]; - shell = pkgs.zsh; + users.users = { + deck = { + hashedPasswordFile = config.sops.secrets."desktop/matt_password".path; + isNormalUser = true; + extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. + openssh.authorizedKeys.keys = [ + # macBook + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCw9zq8DLGByI5v2gAn95hKNyOsm3g61a2buxu2BBMFysQJgmZPCCLUqRJKhSM5Vm/JOgsAmdpRBRZQoHD+6S844CJHb4v4VIbjkyQgYCuM7Rst2IOZ5QybvsA2/D0nwytZ+HXQqDj2AagUYDbz0gyyIHkDQ5YGBMkvkWz/h1Vci6aoBM7VihEDM4KlWoTVuPeASGM8r5IZ2FS83Djbqo4ov6AYvLMrKB9Z7hmFgH6R3LE0gxOkzbGVXtSuvJyrjvgytoT22UhATjjxSQ9D+YJXXkQoB3lUdg8OoIquUPjMZpl4mR8ffvseWPfcvD1XlD5t+TOHFqKpESO547tlOBYhdpew+NSgAXpamCU6oyV8tDCywLQu2ucxHRn78u6WXzWHkDtffdhzmk6TZaPhWqVHuTGjR4higBgGqUfSaKOMszt+FDRZAr3HtuQ2+zJ8bowK9fW5OqilTtK2HtQqroD9ApegDNbqOz6kGy5IycSXvqPURy/M4lxZxbtBPuemcJs= mattjallen@MacBook-Pro.local" + # desktop windows + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZ2PYPjZddOzR8OJj16G88KcUhCDLkvrEmpUQP0wKHDUuA27HQQ2ORo66asadwGHY3k1VDZ1ei9l9H++SIIeKOaaUr5yZdktvj4POUNtbd9ZhcS7sZU7BSF+NMDM+h3tImh6z0S7mWvRQOUv3ZM+ZER+5xTWJVG1OOJEpb1drxJk6Qz0wbZKSR7TPNFBLLXlVy7hkNYf07RtDyhCCxNB3hJfa8c+oztnWumwDhDQWLqiUXWIU2QH6iRLGl/WYnujtNvVVaV/Hn3JJkS6MM9dnV3cpoIO0+J7+WfsN9rZ0wXt5yY3GhiGXwmcO5eYVli8lHlLWtK7aYSETyry6CBsLbojzOQO5rSqhpwfF2njAAFAQU0UjLc8PahisIuFKCwHH4iyXXOagiv5K1Mc/0Ak+WhhMPee6vV2p7NTyNpXRvouDbWy5cSRH31WgQ9fK5mIGe5v8nGGqtEhUubUkiOgP+H3UbT2V/nTv/TFKdJcKw+WmizvTrxBmaMjWALlkYl+s= mattl@Jallen-PC" + # desktop nixos + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPTBMydhOc6SnOdB5WrEd7X07DrboAtagCUgXiOJjLov matt@matt-nixos" + ]; + packages = with pkgs; [ + firefox + tree + ]; + shell = pkgs.zsh; + }; + + root.shell = pkgs.zsh; }; - users.users.root.shell = pkgs.zsh; - programs = { - gamemode.enable = lib.mkDefault true; zsh.enable = true; - nix-ld.enable = true; - nix-ld.libraries = with pkgs; [ - bash - glib - gtk3 - SDL2 - libGL - openal + nix-ld = { + enable = true; + libraries = with pkgs; [ + bash + glib + gtk3 + SDL2 + libGL + openal - xorg.libX11 - xorg.libICE - xorg.libSM - xorg.libXcursor - xorg.libXrandr - xorg.libXi + xorg.libX11 + xorg.libICE + xorg.libSM + xorg.libXcursor + xorg.libXrandr + xorg.libXi - alsa-lib - libpulseaudio + alsa-lib + libpulseaudio - zlib - libgdiplus - icu + zlib + libgdiplus + icu - fontconfig - freetype - expat + fontconfig + freetype + expat - vulkan-loader - ]; + vulkan-loader + ]; + }; }; services = { - flatpak.enable = true; - btrfs = { autoScrub.enable = lib.mkDefault true; autoScrub.fileSystems = lib.mkDefault [ @@ -158,18 +98,6 @@ }; }; - boot = { - # Enable AppImage - binfmt.registrations.appimage = { - wrapInterpreterInShell = lib.mkDefault false; - interpreter = "${pkgs.appimage-run}/bin/appimage-run"; - recognitionType = "magic"; - offset = 0; - mask = "\\xff\\xff\\xff\\xff\\x00\\x00\\x00\\x00\\xff\\xff\\xff"; - magicOrExtension = "\\x7fELF....AI\\x02"; - }; - }; - chaotic.mesa-git.enable = true; # List packages installed in system profile. To search, run: @@ -179,17 +107,9 @@ fuse jq newt - maliit-keyboard - onlyoffice-bin - python3 - rsync sbctl - smartmontools steam-run udisks2 - unzip - usbutils - plymouth zenity ]; @@ -211,35 +131,5 @@ # Enable the OpenSSH daemon. services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - - # Copy the NixOS configuration file and link it from the resulting system - # (/run/current-system/configuration.nix). This is useful in case you - # accidentally delete configuration.nix. - # system.copySystemConfiguration = true; - - # This option defines the first version of NixOS you have installed on this particular machine, - # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. - # - # Most users should NEVER change this value after the initial install, for any reason, - # even if you've upgraded your system to a new NixOS release. - # - # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, - # so changing it will NOT upgrade your system. - # - # This value being lower than the current NixOS release does NOT mean your system is - # out of date, out of support, or vulnerable. - # - # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, - # and migrated your data accordingly. - # - # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . - system.stateVersion = "23.11"; # Did you read the comment? - } diff --git a/hosts/deck/hardware-configuration.nix b/hosts/deck/hardware-configuration.nix deleted file mode 100755 index c32d5fb..0000000 --- a/hosts/deck/hardware-configuration.nix +++ /dev/null @@ -1,108 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ - config, - lib, - modulesPath, - ... -}: - -{ - imports = [ - (modulesPath + "/installer/scan/not-detected.nix") - ]; - - boot.initrd.availableKernelModules = [ - "nvme" - "xhci_pci" - "usbhid" - "usb_storage" - "uas" - "sd_mod" - "sdhci_pci" - ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = { - device = "none"; - fsType = "tmpfs"; - }; - - fileSystems."/boot" = { - device = "/dev/disk/by-uuid/A06F-3014"; - fsType = "vfat"; - }; - - fileSystems."/nix" = { - device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ - "subvol=nix" - "compress=zstd" - "noatime" - "autodefrag" - ]; - }; - - fileSystems."/etc" = { - device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ - "subvol=etc" - "compress=zstd" - "noatime" - "autodefrag" - ]; - }; - - fileSystems."/root" = { - device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ - "subvol=root" - "compress=zstd" - "noatime" - "autodefrag" - ]; - }; - - fileSystems."/var/log" = { - device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ - "subvol=log" - "compress=zstd" - "noatime" - "autodefrag" - ]; - }; - - fileSystems."/home" = { - device = "/dev/disk/by-uuid/4dd9fe16-dec7-48da-80af-de2c603a136a"; - fsType = "btrfs"; - options = [ - "subvol=home" - "compress=zstd" - "noatime" - "autodefrag" - ]; - }; - - swapDevices = [ - { device = "/dev/disk/by-uuid/da9dfb00-c2ac-4105-a75f-f498973a32f0"; } - ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp4s0f3u1u3.useDHCP = lib.mkDefault true; - # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; -} diff --git a/hosts/deck/home.nix b/hosts/deck/home.nix index dc55803..3591b3b 100755 --- a/hosts/deck/home.nix +++ b/hosts/deck/home.nix @@ -1,30 +1,24 @@ { lib, pkgs, ... }: let shellAliases = { - ll = "ls -alh"; update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18"; update-switch = "sudo nixos-rebuild switch --max-jobs 10"; update-flake = "nix flake update steamdeck-nixpkgs steamdeck-chaotic steamdeck-home-manager steamdeck-impermanence steamdeck-jovian steamdeck-lanzaboote steamdeck-nixos-hardware steamdeck-sops-nix steamdeck-steam-rom-manager --flake /etc/nixos"; nas-ssh = "ssh admin@10.0.1.18"; - ducks = "du -cksh * | sort -hr | head -n 15"; - }; - - gitAliases = { - co = "checkout"; - ci = "commit"; - cia = "commit --amend"; - s = "status"; - st = "status"; - b = "branch"; - p = "pull --rebase"; - pu = "push"; }; in { + imports = [ + ../../share/home/defaults.nix + ../../share/home/git.nix + ../../share/home/gnome.nix + ../../share/home/librewolf.nix + ../../share/home/office.nix + ../../share/home/shell.nix + ../../share/home/vscode.nix + ]; + home.username = "deck"; - home.homeDirectory = "/home/deck"; - home.stateVersion = "23.11"; - programs.home-manager.enable = true; sops = { age.keyFile = "/home/deck/.config/sops/age/keys.txt"; @@ -43,35 +37,6 @@ in }; programs = { - mangohud.enable = true; - java.enable = true; - - zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - - shellAliases = shellAliases; - - oh-my-zsh = { - enable = true; - plugins = [ "git" ]; - theme = "fishy"; - }; - }; - - git = { - enable = true; - package = pkgs.git.override { withLibsecret = true; }; - userName = "mjallen18"; - userEmail = "matt.l.jallen@gmail.com"; - aliases = gitAliases; - extraConfig = { - credential.helper = "libsecret"; - }; - }; - steam-rom-manager = { enable = true; steamUsername = "mjallen18"; @@ -103,64 +68,15 @@ in }; }; }; + + zsh.shellAliases = shellAliases; }; home.packages = with pkgs; [ - age - apple-cursor - chromium - colloid-icon-theme - colloid-gtk-theme dolphin-emu - fastfetch - gnome-tweaks - gnomeExtensions.appindicator - gnomeExtensions.dash-to-dock - gnomeExtensions.tiling-assistant heroic - lm_sensors - mission-center mgba - nextcloud-client - nixfmt-rfc-style prismlauncher - protonup ryujinx-greemdev - sops - vesktop - vmware-horizon-client - vscode ]; - - dconf = { - enable = true; - settings = { - "org/gnome/desktop/interface".clock-format = "12h"; - "org/gnome/desktop/interface".color-scheme = "prefer-dark"; - "org/gnome/desktop/interface".cursor-theme = lib.mkDefault "macOS"; - "org/gnome/desktop/interface".enable-hot-corners = false; - "org/gnome/desktop/interface".font-antialiasing = "grayscale"; - "org/gnome/desktop/interface".font-hinting = "slight"; - "org/gnome/desktop/interface".gtk-theme = lib.mkDefault "Colloid-Dark"; - "org/gnome/desktop/interface".icon-theme = lib.mkDefault "Colloid-Dark"; - "org/gnome/desktop/peripherals/mouse".accel-profile = "flat"; - "org/gnome/desktop/peripherals/touchpad".two-finger-scrolling-enabled = true; - "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; - "org/gnome/mutter".experimental-features = [ - "scale-monitor-framebuffer" - "variable-refresh-rate" - ]; - "org/gnome/tweaks".show-extensions-notice = false; - "org/gnome/shell".enabled-extensions = [ - "appindicatorsupport@rgcjonas.gmail.com" - "user-theme@gnome-shell-extensions.gcampax.github.com" - "tiling-assistant@leleat-on-github" - "dash-to-dock@micxgx.gmail.com" - ]; - "org/gnome/shell/extensions/dash-to-panel".primary-monitor = 1; - "org/gnome/shell/extensions/dash-to-panel".multi-monitors = false; - "org/gnome/shell/extensions/user-theme".name = lib.mkDefault "Colloid-Dark"; - "org/gtk/settings/file-chooser".clock-format = "12h"; - }; - }; } diff --git a/hosts/deck/networking.nix b/hosts/deck/networking.nix new file mode 100644 index 0000000..3d6f6e1 --- /dev/null +++ b/hosts/deck/networking.nix @@ -0,0 +1,44 @@ +{ ... }: +let + hostname = "steamdeck"; + wifiSsid = "Joey's Jungle 5G"; +in +{ + networking = { + hostName = hostname; + networkmanager = { + enable = true; + wifi.powersave = lib.mkDefault false; + settings.connectivity.uri = lib.mkDefault "http://nmcheck.gnome.org/check_network_status.txt"; + ensureProfiles = { + environmentFiles = [ + config.sops.secrets.wifi.path + ]; + + profiles = { + wifiSsid = { + connection = { + id = wifiSsid; + type = "wifi"; + }; + ipv4 = { + method = "auto"; + }; + ipv6 = { + addr-gen-mode = "stable-privacy"; + method = "auto"; + }; + wifi = { + mode = "infrastructure"; + ssid = wifiSsid; + }; + wifi-security = { + key-mgmt = "sae"; + psk = "$PSK"; + }; + }; + }; + }; + }; + }; +} \ No newline at end of file diff --git a/hosts/default.nix b/hosts/default.nix index 2ea5f91..5a06e66 100755 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgs, ... }: +{ lib, pkgs, outputs, ... }: let timezone = "America/Chicago"; @@ -72,9 +72,20 @@ in optimise.automatic = lib.mkDefault true; }; - # Configure nixpkgs - # Enable non free - nixpkgs.config.allowUnfree = lib.mkForce true; + # Nixpkgs configuration + nixpkgs = { + # add unstable and stable overlays + overlays = [ + outputs.overlays.nixpkgs-unstable + outputs.overlays.nixpkgs-stable + ]; + config = { + allowUnfree = lib.mkForce true; + permittedInsecurePackages = [ + # ... + ]; + }; + }; # Hardware configs hardware = { diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix index e0c433c..e801261 100755 --- a/hosts/desktop/configuration.nix +++ b/hosts/desktop/configuration.nix @@ -24,38 +24,25 @@ let aspellDicts.en-science borgbackup # brscan5 - clinfo - direnv efibootmgr - gparted - grsync - kmod kdePackages.ksvg - lact memtest86-efi memtest86plus - nano occt - onlyoffice-bin os-prober nil - papirus-icon-theme - pciutils qemu_full rclone rclone-browser restic restic-browser restic-integrity - rsync sane-frontends sbctl - smartmontools - usbutils + tpm2-tools + tpm2-tss udisks2 - vim - vulkan-tools - wget + unzip winetricks ]; lactConfig = '' @@ -151,18 +138,6 @@ in }; }; - # Nixpkgs configuration - nixpkgs = { - # add unstable and stable overlays - overlays = [ - outputs.overlays.nixpkgs-unstable - outputs.overlays.nixpkgs-stable - ]; - config.permittedInsecurePackages = [ - # ... - ]; - }; - # Programs configuration programs = { nix-ld = { @@ -182,7 +157,6 @@ in xorg.libXi ]; }; - gamemode.enable = true; coolercontrol.enable = true; kdeconnect = { enable = true; diff --git a/hosts/desktop/home.nix b/hosts/desktop/home.nix index 80a4cb8..3a5fbbd 100755 --- a/hosts/desktop/home.nix +++ b/hosts/desktop/home.nix @@ -9,6 +9,7 @@ let in { imports = [ + ../../share/home/defaults.nix ../../share/home/git.nix ../../share/home/gnome.nix ../../share/home/librewolf.nix @@ -18,8 +19,6 @@ in ]; home.username = "matt"; - home.homeDirectory = "/home/matt"; - home.stateVersion = "23.11"; sops = { age.keyFile = "/home/matt/.config/sops/age/keys.txt"; @@ -45,56 +44,29 @@ in }; programs = { - mangohud.enable = true; - java.enable = true; - home-manager.enable = true; password-store.enable = true; zsh.shellAliases = shellAliases; }; home.packages = with pkgs; [ - age bottles - chromium unstable.compose2nix - coolercontrol.coolercontrol-gui - deadnix discord - fastfetch - cpufetch - firefox - freerdp - gamescope - gamescope-wsi - goverlay heroic - home-manager jq - lm_sensors lutris - mangohud - mission-center morph - nextcloud-client - nixfmt-rfc-style orca-slicer piper prismlauncher - protonup protontricks protonvpn-gui qmk - remmina smile - sops - spotify - tree unigine-heaven - vesktop via virt-manager - vmware-horizon-client vorta ]; } diff --git a/hosts/nas/configuration.nix b/hosts/nas/configuration.nix index d2b8d1e..cfb95e6 100755 --- a/hosts/nas/configuration.nix +++ b/hosts/nas/configuration.nix @@ -56,36 +56,24 @@ ''; systemPackages = with pkgs; [ - authentik binutils cryptsetup - clinfo cmake - coolercontrol.coolercontrol-gui deconz duperemove efibootmgr ffmpeg gcc - git glances - gparted - htop ipset jq llama-cpp - lm_sensors - nano ninja - nixfmt-rfc-style - nix-inspect - nix-ld networkmanagerapplet nmon nut packagekit pass - pciutils protonmail-bridge protonvpn-cli python3 @@ -93,18 +81,10 @@ qrencode rcon sbctl - sops speedtest-cli - tailscale tigervnc tpm2-tools tpm2-tss - usbutils - vim - vulkan-tools - wget - xorg.xinit - xorg.xauth ]; }; diff --git a/hosts/nas/home.nix b/hosts/nas/home.nix index ab9f4dd..21f3bb0 100755 --- a/hosts/nas/home.nix +++ b/hosts/nas/home.nix @@ -1,28 +1,31 @@ -{ pkgs,... }: +{ config, lib, pkgs,... }: let shellAliases = { - ll = "ls -alh"; update-boot = "sudo nixos-rebuild boot --max-jobs 10"; update-switch = "sudo nixos-rebuild switch --max-jobs 10"; update-flake = "nix flake update nas-nixpkgs nas-authentik-nix nas-cosmic nas-crowdsec nas-home-manager nas-impermanence nas-lanzaboote nas-nixos-hardware nas-sops-nix --flake /etc/nixos"; - ducks = "du -cksh * | sort -hr | head -n 15"; }; - gitAliases = { - co = "checkout"; - ci = "commit"; - cia = "commit --amend"; - s = "status"; - st = "status"; - b = "branch"; - p = "pull --rebase"; - pu = "push"; - }; + excludePkgs = with pkgs; [ + chromium + gamescope + gamescope-wsi + goverlay + protonup + vesktop + vmware-horizon-client + ]; in { + imports = [ + ../../share/home/defaults.nix + ../../share/home/git.nix + ../../share/home/librewolf.nix + ../../share/home/shell.nix + ../../share/home/vscode.nix + ]; + home.username = "admin"; - home.homeDirectory = "/home/admin"; - home.stateVersion = "23.11"; sops = { age.keyFile = "/home/admin/.config/sops/age/keys.txt"; @@ -60,12 +63,6 @@ in }; programs = { - home-manager.enable = true; - mangohud.enable = true; - java.enable = true; - password-store.enable = true; - btop.enable = true; - neovim = { enable = true; viAlias = true; @@ -80,30 +77,8 @@ in ]; }; - zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - - shellAliases = shellAliases; - - oh-my-zsh = { - enable = true; - plugins = [ "git" ]; - theme = "fishy"; - }; - }; - - git = { - enable = true; - package = pkgs.gitFull; - userName = "mjallen18"; - userEmail = "matt.l.jallen@gmail.com"; - aliases = gitAliases; - extraConfig = { - credential.helper = "libsecret"; - }; - }; + zsh.shellAliases = shellAliases; }; + + home.packages = lib.filter (pkg: !(lib.elem pkg excludePkgs)) config.home.packages; } diff --git a/hosts/pi4/configuration.nix b/hosts/pi4/configuration.nix index 4ccbcc56..53e297a 100755 --- a/hosts/pi4/configuration.nix +++ b/hosts/pi4/configuration.nix @@ -46,13 +46,11 @@ in environment = { systemPackages = with pkgs; [ - git libraspberrypi raspberrypi-eeprom raspberrypifw raspberrypiWirelessFirmware raspberrypi-armstubs - vim ]; etc = { "ssh/ssh_host_ed25519_key".source = config.sops.secrets."pi4/sys-priv-key".path; diff --git a/hosts/pi4/home.nix b/hosts/pi4/home.nix index c61154b..5d3b135 100755 --- a/hosts/pi4/home.nix +++ b/hosts/pi4/home.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ config, lib, pkgs, ... }: let shellAliases = { ll = "ls -alh"; @@ -10,21 +10,30 @@ let ducks = "du -cksh * | sort -hr | head -n 15"; }; - gitAliases = { - co = "checkout"; - ci = "commit"; - cia = "commit --amend"; - s = "status"; - st = "status"; - b = "branch"; - p = "pull --rebase"; - pu = "push"; - }; + excludePkgs = with pkgs; [ + chromium + clinfo + coolercontrol.coolercontrol-gui + firefox + gamescope + gamescope-wsi + goverlay + gparted + mission-center + protonup + vesktop + vmware-horizon-client + vulkan-tools + ]; in { + imports = [ + ../../share/home/defaults.nix + ../../share/home/git.nix + ../../share/home/shell.nix + ]; + home.username = "matt"; - home.homeDirectory = "/home/matt"; - home.stateVersion = "23.11"; sops = { age.keyFile = "/home/matt/.config/sops/age/keys.txt"; @@ -62,44 +71,14 @@ in }; programs = { - fish.enable = false; - mangohud.enable = true; - java.enable = true; - home-manager.enable = true; - - zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - - shellAliases = shellAliases; - - oh-my-zsh = { - enable = true; - plugins = [ "git" ]; - theme = "fishy"; - }; - }; - - git = { - enable = true; - userName = "mjallen18"; - userEmail = "matt.l.jallen@gmail.com"; - aliases = gitAliases; - }; + java.enable = lib.mkForce true; + mangohud.enable = lib.mkForce true; + zsh.shellAliases = shellAliases; }; - home.packages = with pkgs; [ - age - btop - fastfetch - firefox - home-manager - lm_sensors - mission-center - sops - tree - vscode - ]; + services = { + nextcloud-client.enable = lib.mkForce true; + }; + + home.packages = lib.filter (pkg: !(lib.elem pkg excludePkgs)) config.home.packages; } diff --git a/hosts/pi5/configuration.nix b/hosts/pi5/configuration.nix index e9c9704..35db938 100755 --- a/hosts/pi5/configuration.nix +++ b/hosts/pi5/configuration.nix @@ -65,13 +65,11 @@ in }; environment.systemPackages = with pkgs; [ - git libraspberrypi raspberrypi-eeprom raspberrypifw raspberrypiWirelessFirmware raspberrypi-armstubs - vim ]; users = { diff --git a/hosts/pi5/home.nix b/hosts/pi5/home.nix index 56668f3..8960ee1 100755 --- a/hosts/pi5/home.nix +++ b/hosts/pi5/home.nix @@ -1,30 +1,24 @@ { pkgs, lib, ... }: let shellAliases = { - ll = "ls -alh"; update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.18"; update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.18"; update-flake = "nix flake update pi5-nixpkgs pi5-home-manager pi5-impermanence pi5-nixos-hardware pi5-sops-nix nixos-raspberrypi --flake /etc/nixos"; update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.18 --build-host admin@10.0.1.18 --flake ~/nix-config#jallen-nas"; nas-ssh = "kitten ssh admin@10.0.1.18"; - ducks = "du -cksh * | sort -hr | head -n 15"; - }; - - gitAliases = { - co = "checkout"; - ci = "commit"; - cia = "commit --amend"; - s = "status"; - st = "status"; - b = "branch"; - p = "pull --rebase"; - pu = "push"; }; in { + imports = [ + ../../share/home/defaults.nix + ../../share/home/git.nix + ../../share/home/gnome.nix + ../../share/home/librewolf.nix + ../../share/home/shell.nix + ../../share/home/vscode.nix + ]; + home.username = "matt"; - home.homeDirectory = "/home/matt"; - home.stateVersion = "23.11"; sops = { age.keyFile = "/home/matt/.config/sops/age/keys.txt"; @@ -50,83 +44,6 @@ in }; programs = { - fish.enable = false; - mangohud.enable = true; - java.enable = true; - home-manager.enable = true; - - zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - - shellAliases = shellAliases; - - oh-my-zsh = { - enable = true; - plugins = [ "git" ]; - theme = "fishy"; - }; - }; - - git = { - enable = true; - userName = "mjallen18"; - userEmail = "matt.l.jallen@gmail.com"; - aliases = gitAliases; - }; - }; - - home.packages = with pkgs; [ - age - apple-cursor - colloid-icon-theme - colloid-gtk-theme - btop - fastfetch - firefox - gnome-tweaks - gnomeExtensions.appindicator - gnomeExtensions.dash-to-dock - gnomeExtensions.tiling-assistant - home-manager - lm_sensors - mission-center - sops - tree - vscode - ]; - - dconf = { - enable = true; - settings = { - "org/gnome/desktop/interface".clock-format = "12h"; - "org/gnome/desktop/interface".color-scheme = "prefer-dark"; - "org/gnome/desktop/interface".cursor-theme = lib.mkDefault "macOS"; - "org/gnome/desktop/interface".enable-hot-corners = false; - "org/gnome/desktop/interface".font-antialiasing = "grayscale"; - "org/gnome/desktop/interface".font-hinting = "slight"; - "org/gnome/desktop/interface".gtk-theme = lib.mkDefault "Colloid-Dark"; - "org/gnome/desktop/interface".icon-theme = lib.mkDefault "Colloid-Dark"; - "org/gnome/desktop/peripherals/mouse".accel-profile = "flat"; - "org/gnome/desktop/peripherals/touchpad".two-finger-scrolling-enabled = true; - "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; - "org/gnome/mutter".experimental-features = [ - "scale-monitor-framebuffer" - "variable-refresh-rate" - ]; - "org/gnome/tweaks".show-extensions-notice = false; - "org/gnome/shell".enabled-extensions = [ - "appindicatorsupport@rgcjonas.gmail.com" - "user-theme@gnome-shell-extensions.gcampax.github.com" - "tiling-assistant@leleat-on-github" - "dash-to-dock@micxgx.gmail.com" - ]; - "org/gnome/shell/extensions/dash-to-panel".primary-monitor = 1; - "org/gnome/shell/extensions/dash-to-panel".multi-monitors = false; - "org/gnome/shell/extensions/user-theme".name = lib.mkDefault "Colloid-Dark"; - "org/gtk/settings/file-chooser".clock-format = "12h"; - }; + zsh.shellAliases = shellAliases; }; } diff --git a/share/gaming/default.nix b/share/gaming/default.nix index 6dac711..42663a3 100755 --- a/share/gaming/default.nix +++ b/share/gaming/default.nix @@ -36,6 +36,8 @@ in openFirewall = true; }; + programs.gamemode.enable = true; + # Hardware configs hardware = { # Xbox controllers diff --git a/share/home/defaults.nix b/share/home/defaults.nix new file mode 100644 index 0000000..1576c3c --- /dev/null +++ b/share/home/defaults.nix @@ -0,0 +1,54 @@ +{ config, lib, pkgs, ... }: +{ + home = { + enableNixpkgsReleaseCheck = lib.mkDefault false; + homeDirectory = lib.mkDefault "/home/${config.home.username}"; + packages = with pkgs; [ + age + chromium + clinfo + coolercontrol.coolercontrol-gui + cpufetch + deadnix + direnv + firefox + gamescope + gamescope-wsi + goverlay + gparted + lm_sensors + mission-center + nano + nixfmt-rfc-style + pciutils + protonup + rsync + smartmontools + sops + tailscale + tree + usbutils + vesktop + vim + vulkan-tools + vmware-horizon-client + wget + ]; + + stateVersion = lib.mkDefault "23.11"; + }; + + programs = { + btop.enable = lib.mkDefault true; + fastfetch.enable = lib.mkDefault true; + home-manager.enable = lib.mkDefault true; + java.enable = lib.mkDefault true; + mangohud.enable = lib.mkDefault true; + password-store.enable = true; + }; + + services = { + nextcloud-client.enable = lib.mkDefault true; + pass-secret-service.enable = lib.mkDefault true; + }; +} \ No newline at end of file diff --git a/share/root-user/default.nix b/share/root-user/default.nix index 5990e91..d885d27 100755 --- a/share/root-user/default.nix +++ b/share/root-user/default.nix @@ -1,52 +1,20 @@ { ... }: let shellAliases = { - ll = "ls -alh"; update-boot = "nixos-rebuild boot --max-jobs 10"; update-switch = "nixos-rebuild switch --max-jobs 10"; - update-flake = "nix flake update /etc/nixos"; - ducks = "du -cksh * | sort -hr | head -n 15"; - }; - - gitAliases = { - co = "checkout"; - ci = "commit"; - cia = "commit --amend"; - s = "status"; - st = "status"; - b = "branch"; - p = "pull --rebase"; - pu = "push"; }; in { + imports = [ + ../home/defaults.nix + ../home/git.nix + ../home/shell.nix + ]; + home.username = "root"; - home.homeDirectory = "/root"; - home.stateVersion = "23.11"; programs = { - home-manager.enable = true; - - zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - - shellAliases = shellAliases; - - oh-my-zsh = { - enable = true; - plugins = [ "git" ]; - theme = "fishy"; - }; - }; - - git = { - enable = true; - userName = "mjallen18"; - userEmail = "matt.l.jallen@gmail.com"; - aliases = gitAliases; - }; + zsh.shellAliases = shellAliases; }; } \ No newline at end of file