Non stop entertainment! The wackiest NixOS configuration to-date.

✨ Add direnv and remove some unused stuff

Jo fad807fb 92c9d479

Changed files
+74 -144
homes
x86_64-linux
drfrontend
jo
modules
home
cli
direnv
desktop
gnome
systems
x86_64-nixos
puzzlevision
-5
.sops.yaml
··· 23 23 key_groups: 24 24 - age: 25 25 - *jo 26 - 27 - - path_regex: homes/[^/]+/drfrontend/secrets/.*\.(yaml|env|json|cfg)$ 28 - key_groups: 29 - - age: 30 - - *jo
+24 -24
flake.lock
··· 7 7 ] 8 8 }, 9 9 "locked": { 10 - "lastModified": 1758186094, 11 - "narHash": "sha256-uvfqk4A5pCKwGvq0f/ZrmqarF80KViSNfYWKdeOYFaw=", 10 + "lastModified": 1760468693, 11 + "narHash": "sha256-JtXWEvA09PLiBOcNws3eUa6WSj/j1aDc1isWXka6ctk=", 12 12 "owner": "catppuccin", 13 13 "repo": "nix", 14 - "rev": "ff94d16ca2d7f51b9fc4a7f6559dc18de54d1915", 14 + "rev": "2b289e5837767dd9239e4469d6ba69ca4f98038b", 15 15 "type": "github" 16 16 }, 17 17 "original": { ··· 56 56 ] 57 57 }, 58 58 "locked": { 59 - "lastModified": 1756770412, 60 - "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", 59 + "lastModified": 1759362264, 60 + "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=", 61 61 "owner": "hercules-ci", 62 62 "repo": "flake-parts", 63 - "rev": "4524271976b625a4a605beefd893f270620fd751", 63 + "rev": "758cf7296bee11f1706a574c77d072b8a7baa881", 64 64 "type": "github" 65 65 }, 66 66 "original": { ··· 94 94 ] 95 95 }, 96 96 "locked": { 97 - "lastModified": 1758207369, 98 - "narHash": "sha256-BG7GlXo5moXtrFSCqnkIb1Q00szOZXTj5Dx7NmWgves=", 97 + "lastModified": 1760500983, 98 + "narHash": "sha256-zfY4F4CpeUjTGgecIJZ+M7vFpwLc0Gm9epM/iMQd4w8=", 99 99 "owner": "nix-community", 100 100 "repo": "home-manager", 101 - "rev": "b5698ed57db7ee7da5e93df2e6bbada91c88f3ce", 101 + "rev": "c53e65ec92f38d30e3c14f8d628ab55d462947aa", 102 102 "type": "github" 103 103 }, 104 104 "original": { ··· 138 138 ] 139 139 }, 140 140 "locked": { 141 - "lastModified": 1758183841, 142 - "narHash": "sha256-c04iKVUNTZDYlWIcToS9/jLgqA5BgkxTYE0Opn0Hxpw=", 141 + "lastModified": 1760491287, 142 + "narHash": "sha256-BOvhD3Q9fZcxQbjz9YPdOTrWjRnyUVqW2YTFJZI8rQE=", 143 143 "owner": "kaylorben", 144 144 "repo": "nixcord", 145 - "rev": "1be1e2031b70966b8ae5ec86ada23d8a05e81d73", 145 + "rev": "b88450ad729eed534601ff0813b3fed46dd013cb", 146 146 "type": "github" 147 147 }, 148 148 "original": { ··· 153 153 }, 154 154 "nixos-hardware": { 155 155 "locked": { 156 - "lastModified": 1757943327, 157 - "narHash": "sha256-w6cDExPBqbq7fTLo4dZ1ozDGeq3yV6dSN4n/sAaS6OM=", 156 + "lastModified": 1760106635, 157 + "narHash": "sha256-2GoxVaKWTHBxRoeUYSjv0AfSOx4qw5CWSFz2b+VolKU=", 158 158 "owner": "NixOS", 159 159 "repo": "nixos-hardware", 160 - "rev": "67a709cfe5d0643dafd798b0b613ed579de8be05", 160 + "rev": "9ed85f8afebf2b7478f25db0a98d0e782c0ed903", 161 161 "type": "github" 162 162 }, 163 163 "original": { ··· 168 168 }, 169 169 "nixpkgs": { 170 170 "locked": { 171 - "lastModified": 1758035966, 172 - "narHash": "sha256-qqIJ3yxPiB0ZQTT9//nFGQYn8X/PBoJbofA7hRKZnmE=", 171 + "lastModified": 1760284886, 172 + "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", 173 173 "owner": "NixOS", 174 174 "repo": "nixpkgs", 175 - "rev": "8d4ddb19d03c65a36ad8d189d001dc32ffb0306b", 175 + "rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", 176 176 "type": "github" 177 177 }, 178 178 "original": { ··· 203 203 ] 204 204 }, 205 205 "locked": { 206 - "lastModified": 1758007585, 207 - "narHash": "sha256-HYnwlbY6RE5xVd5rh0bYw77pnD8lOgbT4mlrfjgNZ0c=", 206 + "lastModified": 1760393368, 207 + "narHash": "sha256-8mN3kqyqa2PKY0wwZ2UmMEYMcxvNTwLaOrrDsw6Qi4E=", 208 208 "owner": "Mic92", 209 209 "repo": "sops-nix", 210 - "rev": "f77d4cfa075c3de66fc9976b80e0c4fc69e2c139", 210 + "rev": "ab8d56e85b8be14cff9d93735951e30c3e86a437", 211 211 "type": "github" 212 212 }, 213 213 "original": { ··· 239 239 ] 240 240 }, 241 241 "locked": { 242 - "lastModified": 1758213608, 243 - "narHash": "sha256-/CPyP3EC9EMYuGWrzPRpnWRrmw01N7upfB+xIRxfLUU=", 242 + "lastModified": 1760276212, 243 + "narHash": "sha256-7It9jBYdT8lqJLkKN+i/9RplR2Fv3F7bH02gDVlEV0o=", 244 244 "owner": "vicinaehq", 245 245 "repo": "vicinae", 246 - "rev": "a026db18b9f9a29edd94305b4e77d196bf91afb0", 246 + "rev": "6c583ff744ce0acf4f1af9c5f5af37057bfcde68", 247 247 "type": "github" 248 248 }, 249 249 "original": {
-50
homes/x86_64-linux/drfrontend/default.nix
··· 1 - { 2 - pkgs, 3 - config, 4 - ... 5 - }: 6 - { 7 - puzzlevision = { 8 - themes.catppuccin.enable = true; 9 - apps.zed.enable = true; 10 - apps.firefox = { 11 - enable = true; 12 - extensions = [ 13 - "uBlock0@raymondhill.net" 14 - "ATBC@EasonWong" 15 - "languagetool-webextension@languagetool.org" 16 - "firefox-enpass@enpass.io" 17 - "firefox@tampermonkey.net" 18 - "wappalyzer@crunchlabz.com" 19 - "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" 20 - "{d49033ac-8969-488c-afb0-5cdb73957f41}" 21 - ]; 22 - }; 23 - }; 24 - 25 - sops.secrets.wakatime-cfg = { 26 - format = "binary"; 27 - sopsFile = ./secrets/wakatime.cfg; 28 - path = "${config.home.homeDirectory}/.wakatime.cfg"; 29 - }; 30 - 31 - home.packages = with pkgs; [ 32 - ## GENERAL 33 - ghostty 34 - teams-for-linux 35 - enpass 36 - youtube-music 37 - 38 - ## WEB 39 - ungoogled-chromium 40 - 41 - ## EDITORS 42 - jetbrains.phpstorm 43 - 44 - ## RUNTIMES and CLIs for development 45 - bun 46 - git 47 - ]; 48 - 49 - home.stateVersion = "25.05"; 50 - }
-19
homes/x86_64-linux/drfrontend/secrets/wakatime.cfg
··· 1 - { 2 - "data": "ENC[AES256_GCM,data:UAADE/aH98MYyfxL3ZkZ06lHHTRmmRVuOhiqEyF6DP35sGTC7Mpqe++MTYBDFrD4Rraeao9T2tcu3sL22p9SW9jF7Y2L1YZ9zKKUyP2y+G8PN25GqXWaNwJQG/hxcKs8km448g==,iv:SkyBC+VkwccprAomhXUzdmSQuBDfFn22MKJwjV9ZSzo=,tag:m/uUcl9r3GW3QYCajoAhYw==,type:str]", 3 - "sops": { 4 - "age": [ 5 - { 6 - "recipient": "age1qcjcwh9tq8pzf2yr7m3hm2n3n3y5rlc30fpkr0eytju9w57ucgcsgcy79d", 7 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5VmtTRHo4NWVuU2tiZTc5\nWUVyeU54ZmtZbi9uUWNablIxSm9aZ3hadjBnCmNiVlBXS2lEbE00VFl6QVRlQk92\nMFI0TVBMVDZiQXg3VzZTaVNEd2RROTQKLS0tIEg3aGwvWXgvVldGTjZFaS95dEVP\nUmZHaGFaNndDRWY5cXBJeGY4TVVqbTgKeFTClhSmX5IQ5+7DXk4HEwTAv4uB/HCl\nVeoKUNaTHme60hWE/J12B2PvxtRa+f6diDMFg11mQkPOZwyEcQWMpg==\n-----END AGE ENCRYPTED FILE-----\n" 8 - }, 9 - { 10 - "recipient": "age1ajkq0lalyc75tjhdtpx2yshw5y3wt85fwjy24luf69rvpavg33vqw6c3tc", 11 - "enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnK1NtOE9tZ0poRjdkOTBi\nbWFQbGovY1VvRDN4clJmRGdTSHlzQk5JSmtrCitSc3hnb21CMVVuclZ2YndIOWRk\naDduM3VadDBaWFRDRElZSWlUaXdUZGMKLS0tIEJOUEFoS3ZJQWtkNGFQNk1CdGxI\nSmRFQ25TSXY1S0FHQmhUbWNsT1Z2c2sKBTV2WEW+HynmrrPza8gsIQAK2V3HhYfJ\nrG6rjnzMONd+0Q6Z0KBqgoMfCTjWE9CBnm78DL16u9pRH3CwhpKabg==\n-----END AGE ENCRYPTED FILE-----\n" 12 - } 13 - ], 14 - "lastmodified": "2025-05-22T18:30:26Z", 15 - "mac": "ENC[AES256_GCM,data:/aZOXw2xgQ8UZG5TIWXwHZjlofa08WM2XpPhXUbf2qrx0yyhEyZrtibalCIDdUGgzaZjt8b+qrZqgNE9o+HCUNVX9fU9yCXRL1kpksz9e6HV4S+KIrdHnEFtuRt7r8nP29BotLYoP9KKbA57lL5SYJgPINHq11CAiQLU6A8W8YI=,iv:0zvQe2wRd/qKjrqinc9kgP8RSl47xxD0LofREiK8XOc=,tag:eWhtD/X3CPHTlEZPgp0cjA==,type:str]", 16 - "unencrypted_suffix": "_unencrypted", 17 - "version": "3.10.2" 18 - } 19 - }
+19 -17
homes/x86_64-linux/jo/default.nix
··· 13 13 14 14 puzzlevision = { 15 15 themes.catppuccin.enable = true; 16 - apps.zed.enable = true; 17 - apps.firefox = { 18 - enable = true; 19 - extensions = [ 20 - "uBlock0@raymondhill.net" 21 - "ATBC@EasonWong" 22 - "languagetool-webextension@languagetool.org" 23 - "firefox-enpass@enpass.io" 24 - "firefox@tampermonkey.net" 25 - "wappalyzer@crunchlabz.com" 26 - "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" 27 - "{d49033ac-8969-488c-afb0-5cdb73957f41}" 28 - ]; 16 + apps = { 17 + zed.enable = true; 18 + firefox = { 19 + enable = true; 20 + extensions = [ 21 + "uBlock0@raymondhill.net" 22 + "ATBC@EasonWong" 23 + "languagetool-webextension@languagetool.org" 24 + "firefox-enpass@enpass.io" 25 + "firefox@tampermonkey.net" 26 + "wappalyzer@crunchlabz.com" 27 + "{7a7a4a92-a2a0-41d1-9fd7-1e92480d612d}" 28 + "{d49033ac-8969-488c-afb0-5cdb73957f41}" 29 + ]; 30 + }; 31 + }; 32 + 33 + cli = { 34 + direnv.enable = true; 29 35 }; 30 36 }; 31 37 ··· 45 51 enpass 46 52 youtube-music 47 53 48 - ## WEB 49 - ungoogled-chromium 50 - 51 54 ## EDITORS 52 55 apostrophe 53 56 jetbrains.phpstorm 54 - arduino-ide 55 57 obsidian 56 58 57 59 ## RUNTIMES and CLIs for development
+29
modules/home/cli/direnv/default.nix
··· 1 + { 2 + osConfig, 3 + config, 4 + self, 5 + pkgs, 6 + lib, 7 + ... 8 + }: 9 + let 10 + inherit (lib) mkIf mkEnableOption; 11 + inherit (self) namespace; 12 + 13 + cfg = config.${namespace}.cli.direnv; 14 + in 15 + { 16 + 17 + options.${namespace}.cli.direnv = { 18 + enable = mkEnableOption "enable direnv support"; 19 + }; 20 + 21 + config = mkIf cfg.enable { 22 + programs.direnv = { 23 + enable = true; 24 + nix-direnv.enable = true; 25 + 26 + enableFishIntegration = mkIf (osConfig.${namespace}.users.defaultUserShell == pkgs.fish); 27 + }; 28 + }; 29 + }
+1 -1
modules/home/desktop/gnome/default.nix
··· 65 65 }; 66 66 }; 67 67 wallpaper = 68 - mkOpt path ../wallpapers/scenic-landscape-blurred.jpg 68 + mkOpt path ../wallpapers/building_top_sit_dusk.jpg 69 69 "Specify the path of your prefered Gnome wallpaper."; 70 70 }; 71 71
+1 -27
systems/x86_64-nixos/puzzlevision/default.nix
··· 5 5 ./hardware-generated.nix 6 6 ]; 7 7 8 - # Todo: automate this globally for all workstation and server archetypes! 9 8 # Configure Sops 10 9 sops.defaultSopsFile = ./secrets/users.yaml; 11 10 sops.age.keyFile = "/var/lib/sops-nix/key.txt"; 12 11 13 12 programs.steam.enable = true; 14 - programs.steam.remotePlay.openFirewall = true; 15 13 16 14 puzzlevision = { 17 15 users.jo = { ··· 23 21 ]; 24 22 }; 25 23 26 - users.drfrontend = { 27 - enable = true; 28 - hashedPassword = "$6$mvK9bT756Aok54Vt$vBRnT66Vb3HL0Y5rEMJlHvKkvzVQ.KUciInTmW3FCBFT00IuFMpz3q9RhXPLTLMRPho65bTg9hMnFPb84I774."; 29 - extraGroups = [ 30 - "wheel" 31 - "docker" 32 - ]; 33 - }; 34 - 35 24 archetypes.laptop.enable = true; 36 - system.kernel.version = "linuxPackages_zen"; 37 - }; 38 - 39 - # Configure some last-resort aggressive nix-daemon OOM protection 40 - systemd = { 41 - # Create a separate slice for nix-daemon that is 42 - # memory-managed by the userspace systemd-oomd killer 43 - slices."nix-daemon".sliceConfig = { 44 - ManagedOOMMemoryPressure = "kill"; 45 - ManagedOOMMemoryPressureLimit = "50%"; 46 - }; 47 - services."nix-daemon".serviceConfig.Slice = "nix-daemon.slice"; 48 - 49 - # If a kernel-level OOM event does occur anyway, 50 - # strongly prefer killing nix-daemon child processes 51 - services."nix-daemon".serviceConfig.OOMScoreAdjust = 1000; 25 + system.kernel.version = "linuxPackages_6_16"; 52 26 }; 53 27 54 28 boot = {
-1
systems/x86_64-nixos/puzzlevision/hardware.nix
··· 77 77 # Kill processes before they can cause an OOM exception 78 78 earlyoom = { 79 79 enable = true; 80 - enableNotifications = true; 81 80 }; 82 81 83 82 # Enable Thermald for improved overheating protection