diff --git a/flake.nix b/flake.nix index 43a080d..9683f2f 100644 --- a/flake.nix +++ b/flake.nix @@ -53,6 +53,23 @@ } ]; }; + + argon = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { inherit inputs; }; + modules = [ + ./hosts/argon/hardware-configuration.nix + ./hosts/argon/configuration.nix + home-manager.nixosModules.home-manager + { + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.users.aaron.imports = [ + nixvim.homeModules.nixvim + ./users/aaron/home.nix + ]; + } + ]; + }; }; }; } diff --git a/hosts/argon/configuration.nix b/hosts/argon/configuration.nix new file mode 100644 index 0000000..386e2a0 --- /dev/null +++ b/hosts/argon/configuration.nix @@ -0,0 +1,31 @@ +{ config, pkgs, inputs, ... }: + +{ + imports = [ + ../../modules/nixos/audio.nix + ../../modules/nixos/bootloader.nix + ../../modules/nixos/certificates.nix + ../../modules/nixos/drives.nix + ../../modules/nixos/gnupg.nix + ../../modules/nixos/graphics.nix + ../../modules/nixos/greetd.nix + ../../modules/nixos/locales.nix + ../../modules/nixos/networking.nix + ../../modules/nixos/niri.nix + ../../modules/nixos/noctalia.nix + ../../modules/nixos/openssh.nix + ../../modules/nixos/packages.nix + ../../modules/nixos/protonvpn.nix + ../../modules/nixos/services.nix + ../../modules/nixos/settings.nix + ../../modules/nixos/steam.nix + ../../modules/nixos/users.nix + ]; + + # set hostname + networking.hostName = "argon"; + + # install state version + system.stateVersion = "25.11"; # Don't change +} + diff --git a/hosts/argon/hardware-configuration.nix b/hosts/argon/hardware-configuration.nix new file mode 100644 index 0000000..8518772 --- /dev/null +++ b/hosts/argon/hardware-configuration.nix @@ -0,0 +1,39 @@ +# 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, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ "dm-crypt dm-mod" ]; + boot.initrd.luks.devices."cryptroot".device = "/dev/disk/by-label/nixcrypt"; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/mapper/lvmroot-root"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/AC1C-20EB"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + fileSystems."/home" = + { device = "/dev/mapper/lvmroot-home"; + fsType = "ext4"; + }; + + swapDevices = + [ { device = "/dev/mapper/lvmroot-swap"; } + ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/neon/configuration.nix b/hosts/neon/configuration.nix index e06071b..458c32f 100644 --- a/hosts/neon/configuration.nix +++ b/hosts/neon/configuration.nix @@ -20,6 +20,9 @@ ../../modules/nixos/users.nix ]; + # set hostname + networking.hostName = "neon"; + # install state version system.stateVersion = "25.11"; # Don't change } diff --git a/modules/home-manager/ghostty.nix b/modules/home-manager/ghostty.nix index 65436bd..d71c719 100644 --- a/modules/home-manager/ghostty.nix +++ b/modules/home-manager/ghostty.nix @@ -7,9 +7,9 @@ clipboard-paste-protection = false; clipboard-read = "allow"; font-family = "0xProto Nerd Font Mono"; - font-size = 9; + font-size = 12; gtk-titlebar = false; - scrollback-limit = 10000; + scrollback-limit = 100000; shell-integration = "zsh"; theme = "noctalia"; # generated by noctalia-shell window-decoration = "auto"; diff --git a/modules/home-manager/shell.nix b/modules/home-manager/shell.nix index 4ca04ec..1e141f3 100644 --- a/modules/home-manager/shell.nix +++ b/modules/home-manager/shell.nix @@ -8,7 +8,7 @@ oh-my-zsh = { enable = true; theme = "agnoster"; - #plugins = [ "git" "ssh-agent" ]; + plugins = [ "git" "ssh-agent" "gpg-agent" ]; }; }; diff --git a/modules/nixos/drives.nix b/modules/nixos/drives.nix new file mode 100644 index 0000000..6cc1df2 --- /dev/null +++ b/modules/nixos/drives.nix @@ -0,0 +1,47 @@ +{ config, lib, pkgs, ... }: + +# Add encrypted drives to argon + +{ + # copy keyfiles into initrd to make them available during early boot + boot.initrd.secrets = { + "/etc/nixos/keys/data1.key" = "/etc/nixos/keys/data1.key"; + "/etc/nixos/keys/data2.key" = "/etc/nixos/keys/data2.key"; + "/etc/nixos/keys/nvmecache.key" = "/etc/nixos/keys/nvmecache.key"; + }; + + # decrypt data drives with keyfiles for argon + boot.initrd.luks.devices = { + "data1" = { + device = "/dev/disk/by-uuid/dfae62cc-bad1-4879-bf9a-461bde833625"; + keyFile = "/etc/nixos/keys/data1.key"; + }; + "data2" = { + device = "/dev/disk/by-uuid/8312edae-9247-481b-a313-52a7f848f027"; + keyFile = "/etc/nixos/keys/data2.key"; + }; + "nvmecache" = { + device = "/dev/disk/by-uuid/2352250e-4ebe-4f9a-bf66-0d4aaa961bd8"; + keyFile = "/etc/nixos/keys/nvmecache.key"; + }; + }; + + # mount decrypted filesystems + fileSystems."/mnt/data1" = { + device = "/dev/mapper/data1"; + fsType = "ext4"; + options = [ "nofail" ]; + }; + + fileSystems."/mnt/data2" = { + device = "/dev/mapper/data2"; + fsType = "ext4"; + options = [ "nofail" ]; + }; + + fileSystems."/mnt/nvmecache" = { + device = "/dev/mapper/nvmecache"; + fsType = "ext4"; + options = [ "nofail" ]; + }; +} diff --git a/modules/nixos/graphics.nix b/modules/nixos/graphics.nix new file mode 100644 index 0000000..668a0e9 --- /dev/null +++ b/modules/nixos/graphics.nix @@ -0,0 +1,17 @@ +{ config, lib, pkgs, ... }: + +{ + # enable amd GPU acceleration (mesa, vulkan, egl) + hardware.graphics = { + enable = true; + enable32Bit = true; + }; + + # install amdgpu_top + environment.systemPackages = with pkgs; [ + amdgpu_top + ]; + + # add amdgpu to the initrd for plymouth + hardware.amdgpu.initrd.enable = true; +} diff --git a/modules/nixos/greetd.nix b/modules/nixos/greetd.nix new file mode 100644 index 0000000..cca87ec --- /dev/null +++ b/modules/nixos/greetd.nix @@ -0,0 +1,14 @@ +{ config, lib, pkgs, ... }: + +{ + # greetd display manager with tuigreet + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd niri-session"; + user = "greeter"; + }; + }; + }; +} diff --git a/modules/nixos/networking.nix b/modules/nixos/networking.nix index 2c2fde1..8f91a18 100644 --- a/modules/nixos/networking.nix +++ b/modules/nixos/networking.nix @@ -1,9 +1,6 @@ { config, lib, pkgs, ... }: { - # set hostnname - networking.hostName = "neon"; - # user networkmanager networking.networkmanager.enable = true; diff --git a/modules/nixos/noctalia.nix b/modules/nixos/noctalia.nix index f280cd8..73f2796 100644 --- a/modules/nixos/noctalia.nix +++ b/modules/nixos/noctalia.nix @@ -8,5 +8,6 @@ adwaita-qt6 brightnessctl playerctl + quickshell ]; } diff --git a/modules/nixos/protonvpn.nix b/modules/nixos/protonvpn.nix new file mode 100644 index 0000000..19e8af8 --- /dev/null +++ b/modules/nixos/protonvpn.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + networking.firewall.checkReversePath = false; + environment.systemPackages = with pkgs; [ + wireguard-tools + protonvpn-gui + ]; +} diff --git a/modules/nixos/users.nix b/modules/nixos/users.nix index 305806e..3cd98a3 100644 --- a/modules/nixos/users.nix +++ b/modules/nixos/users.nix @@ -14,10 +14,5 @@ enable = true; enableCompletion = true; autosuggestions.enable = true; - ohMyZsh = { - enable = true; - plugins = [ "git" "sudo" ]; - theme = "gentoo"; - }; }; }