Personal-use NixOS configuration

Add prospect host

+229
+30
hosts/prospect/default.nix
··· 1 + { 2 + flakeRoot, 3 + nixos-hardware, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + imports = [ 10 + nixos-hardware.nixosModules.common-pc-ssd 11 + ./hardware-configuration.nix 12 + ./disks.nix 13 + (flakeRoot + /hardware/cpu/amd.nix) 14 + (flakeRoot + /hardware/gpu/amd.nix) 15 + 16 + (flakeRoot + /modules/common) 17 + (flakeRoot + /modules/common/boot/systemd-boot.nix) 18 + (flakeRoot + /modules/common/system/audio.nix) 19 + 20 + (flakeRoot + /modules/desktop/environments/gnome.nix) 21 + 22 + ./users 23 + ]; 24 + 25 + boot.kernelPackages = pkgs.linuxPackages_zen; 26 + 27 + time.timeZone = "US/Eastern"; 28 + 29 + system.stateVersion = "25.05"; 30 + }
+60
hosts/prospect/disks.nix
··· 1 + { 2 + disko.devices = { 3 + disk = { 4 + main = { 5 + type = "disk"; 6 + device = "/dev/disk/by-id/nvme-WD_BLACK_SN7100_1TB_252945801255"; 7 + 8 + content = { 9 + type = "gpt"; 10 + 11 + partitions = { 12 + ESP = { 13 + end = "500M"; 14 + type = "EF00"; 15 + 16 + content = { 17 + type = "filesystem"; 18 + 19 + format = "vfat"; 20 + mountpoint = "/boot"; 21 + }; 22 + }; 23 + 24 + root = { 25 + name = "root"; 26 + end = "-0"; 27 + 28 + content = { 29 + type = "filesystem"; 30 + 31 + format = "xfs"; 32 + mountpoint = "/"; 33 + }; 34 + }; 35 + }; 36 + }; 37 + }; 38 + 39 + storage = { 40 + type = "disk"; 41 + device = "/dev/disk/by-id/ata-ST4000DM004-2CV104_ZTT1Y529"; 42 + 43 + content = { 44 + type = "gpt"; 45 + 46 + partitions = { 47 + root = { 48 + end = "-0"; 49 + 50 + content = { 51 + type = "filesystem"; 52 + format = "xfs"; 53 + }; 54 + }; 55 + }; 56 + }; 57 + }; 58 + }; 59 + }; 60 + }
+39
hosts/prospect/hardware-configuration.nix
··· 1 + # Do not modify this file! It was generated by ‘nixos-generate-config’ 2 + # and may be overwritten by future invocations. Please make changes 3 + # to /etc/nixos/configuration.nix instead. 4 + { 5 + config, 6 + lib, 7 + pkgs, 8 + modulesPath, 9 + ... 10 + }: 11 + 12 + { 13 + imports = [ 14 + (modulesPath + "/installer/scan/not-detected.nix") 15 + ]; 16 + 17 + boot.initrd.availableKernelModules = [ 18 + "nvme" 19 + "xhci_pci" 20 + "ahci" 21 + "usbhid" 22 + "usb_storage" 23 + "sd_mod" 24 + ]; 25 + boot.initrd.kernelModules = [ ]; 26 + boot.kernelModules = [ ]; 27 + boot.extraModulePackages = [ ]; 28 + 29 + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking 30 + # (the default) this is the recommended approach. When using systemd-networkd it's 31 + # still possible to use this option, but it's recommended to use it in conjunction 32 + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. 33 + networking.useDHCP = lib.mkDefault true; 34 + # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true; 35 + # networking.interfaces.wlp7s0.useDHCP = lib.mkDefault true; 36 + 37 + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; 38 + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; 39 + }
+55
hosts/prospect/homes/encode42.nix
··· 1 + { 2 + flakeRoot, 3 + pkgs, 4 + pkgs-unstable, 5 + ... 6 + }: 7 + 8 + let 9 + stable-emulators = with pkgs; [ 10 + punes-qt6 # Nintendo Entertainment System 11 + blastem # Sega Genesis 12 + bsnes-hd # Nintendo Super Entertainment System 13 + yabause # Sega Saturn 14 + duckstation # Sony Playstation 1 15 + rmg-wayland # Nintendo 64 16 + flycast # Sega Dreamcast 17 + mgba # Nintendo Game Boy 18 + pcsx2 # Sony Playstation 2 19 + xemu # Microsoft Xbox 20 + melonDS # Nintendo DS 21 + ppsspp-qt # Sony Playstation Portable 22 + rpcs3 # Sony Playstation 3 23 + azahar # Nintendo 3DS 24 + cemu # Nintendo Wii U 25 + ]; 26 + 27 + unstable-emulators = with pkgs-unstable; [ 28 + xenia-canary # Microsoft Xbox 360 29 + ]; 30 + 31 + # TODO: Vita3k and Gearsystem 32 + in 33 + { 34 + imports = [ 35 + (flakeRoot + /homes/encode42/common) 36 + 37 + (flakeRoot + /homes/encode42/common/bat.nix) 38 + (flakeRoot + /homes/encode42/common/eza.nix) 39 + (flakeRoot + /homes/encode42/common/xh.nix) 40 + 41 + (flakeRoot + /homes/encode42/desktop/cursor.nix) 42 + (flakeRoot + /homes/encode42/desktop/fonts.nix) 43 + 44 + (flakeRoot + /homes/encode42/desktop/environments/gnome.nix) 45 + 46 + (flakeRoot + /homes/encode42/desktop/firefox.nix) 47 + 48 + (flakeRoot + /homes/encode42/desktop/prismlauncher.nix) 49 + ]; 50 + 51 + home.packages = with pkgs; [ 52 + r2modman 53 + pkgs-unstable.olympus 54 + ]; 55 + }
+9
hosts/prospect/users/default.nix
··· 1 + { flakeRoot, ... }: 2 + 3 + { 4 + imports = [ 5 + (flakeRoot + /modules/desktop/home-manager.nix) 6 + 7 + ./encode42.nix 8 + ]; 9 + }
+31
hosts/prospect/users/encode42.nix
··· 1 + { 2 + lib, 3 + flakeRoot, 4 + pkgs, 5 + ... 6 + }: 7 + 8 + { 9 + imports = [ 10 + (flakeRoot + /users/encode42/common) 11 + (flakeRoot + /users/encode42/desktop/environments/gnome.nix) 12 + 13 + (flakeRoot + /packages/desktop/gnome/localsend.nix) 14 + 15 + (flakeRoot + /packages/desktop/dolphin.nix) 16 + (flakeRoot + /packages/desktop/steam.nix) 17 + ]; 18 + 19 + home-manager.users.encode42 = { 20 + imports = [ 21 + ../homes/encode42.nix 22 + ]; 23 + 24 + home.stateVersion = "25.05"; 25 + }; 26 + 27 + users.users.encode42.extraGroups = [ 28 + "wheel" 29 + "networkmanager" 30 + ]; 31 + }
+5
outputs.nix
··· 22 22 23 23 isLaptop = true; 24 24 }; 25 + 26 + prospect = mkSystem { 27 + hostName = "prospect"; 28 + system = "x86_64-linux"; 29 + }; 25 30 }; 26 31 }