Flake for my NixOS devices

Remove uses of rec

bwc9876.dev 4bb9a877 7776d976

verified
+199 -164
+43 -22
flake.lock
··· 31 31 ] 32 32 }, 33 33 "locked": { 34 - "lastModified": 1760468693, 35 - "narHash": "sha256-JtXWEvA09PLiBOcNws3eUa6WSj/j1aDc1isWXka6ctk=", 34 + "lastModified": 1760692571, 35 + "narHash": "sha256-SgqC+B7F7hHDKug+zRUL83vhibCSknzhRl0+OxUYjn4=", 36 36 "owner": "catppuccin", 37 37 "repo": "nix", 38 - "rev": "2b289e5837767dd9239e4469d6ba69ca4f98038b", 38 + "rev": "8a084b86b6a4b2a1575e8cc67e07c4a687fce276", 39 39 "type": "github" 40 40 }, 41 41 "original": { ··· 303 303 ] 304 304 }, 305 305 "locked": { 306 - "lastModified": 1753707310, 307 - "narHash": "sha256-TX9dKD6VGmdBKUhvwGVmUN1Ry4cNyOmZOSMRmZlqmtc=", 306 + "lastModified": 1760359755, 307 + "narHash": "sha256-k7sJPDPio2vQuqSJ/3nOkBy6I2YqZvJYNhJJARLSxrg=", 308 308 "owner": "nix-community", 309 309 "repo": "flakelight", 310 - "rev": "02eb89638e0420f1492ec9ad6b8c2c13f9e3a2ba", 310 + "rev": "d8d6ce0774c3df8f7b58b4cd4b5cf4b63b4a9fe6", 311 311 "type": "github" 312 312 }, 313 313 "original": { ··· 381 381 "type": "github" 382 382 } 383 383 }, 384 + "hexecute": { 385 + "inputs": { 386 + "nixpkgs": [ 387 + "nixpkgs" 388 + ] 389 + }, 390 + "locked": { 391 + "lastModified": 1760538791, 392 + "narHash": "sha256-1US+u81rwdTEN0s5u45FTLB2BB6lldYdrGZDjzkeyt4=", 393 + "owner": "ThatOtherAndrew", 394 + "repo": "Hexecute", 395 + "rev": "72a14b49a61bbde0678ea37ff06974514181bb6b", 396 + "type": "github" 397 + }, 398 + "original": { 399 + "owner": "ThatOtherAndrew", 400 + "repo": "Hexecute", 401 + "type": "github" 402 + } 403 + }, 384 404 "hm": { 385 405 "inputs": { 386 406 "nixpkgs": [ ··· 388 408 ] 389 409 }, 390 410 "locked": { 391 - "lastModified": 1760479847, 392 - "narHash": "sha256-xOwdvpPSHw767aXyeo3GG8DjFbZ9YyRIVSr4TXADQ48=", 411 + "lastModified": 1760662441, 412 + "narHash": "sha256-mlDqR1Ntgs9uYYEAUR1IhamKBO0lxoNS4zGLzEZaY0A=", 393 413 "owner": "nix-community", 394 414 "repo": "home-manager", 395 - "rev": "ed1eb4cfddba1be85cb16702d7a42803d1ff55e8", 415 + "rev": "722792af097dff5790f1a66d271a47759f477755", 396 416 "type": "github" 397 417 }, 398 418 "original": { ··· 506 526 }, 507 527 "nixpkgs": { 508 528 "locked": { 509 - "lastModified": 1760284886, 510 - "narHash": "sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c=", 529 + "lastModified": 1760524057, 530 + "narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", 511 531 "owner": "NixOS", 512 532 "repo": "nixpkgs", 513 - "rev": "cf3f5c4def3c7b5f1fc012b3d839575dbe552d43", 533 + "rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", 514 534 "type": "github" 515 535 }, 516 536 "original": { ··· 530 550 "systems": "systems_2" 531 551 }, 532 552 "locked": { 533 - "lastModified": 1760472915, 534 - "narHash": "sha256-8o8VoHB5IRiK+HmO387ICkkI5npIbDAoIqaIwIAy10E=", 553 + "lastModified": 1760745926, 554 + "narHash": "sha256-JdkryG8f774tJK6BLp8386zJ5a+GRtS4dulbvhK/OQE=", 535 555 "owner": "nix-community", 536 556 "repo": "nixvim", 537 - "rev": "32a3fa118d187dc9c88f35a78e763a5b895b6227", 557 + "rev": "4c4cac6445bc92ba560433c2843d1beb1a3a14ab", 538 558 "type": "github" 539 559 }, 540 560 "original": { ··· 551 571 ] 552 572 }, 553 573 "locked": { 554 - "lastModified": 1754065413, 555 - "narHash": "sha256-nrVQSXUkWd8mOBrXwHWMumENy33NrYQv+tiplUhjElg=", 574 + "lastModified": 1760636396, 575 + "narHash": "sha256-QHYUWrSpEd040JVBAoCK873nCNemT3gHNePka37FbpU=", 556 576 "owner": "Bwc9876", 557 577 "repo": "nu_plugin_dbus", 558 - "rev": "c00d525ffdc4efd6aa80cec66dec4a8f497441e5", 578 + "rev": "090be12d30371b46b9e7cbdb8ec8906a6fe16e60", 559 579 "type": "github" 560 580 }, 561 581 "original": { ··· 670 690 "fenix": "fenix", 671 691 "flakelight": "flakelight_2", 672 692 "gh-grader-preview": "gh-grader-preview", 693 + "hexecute": "hexecute", 673 694 "hm": "hm", 674 695 "imperm": "imperm", 675 696 "lanzaboote": "lanzaboote", ··· 737 758 ] 738 759 }, 739 760 "locked": { 740 - "lastModified": 1760412458, 741 - "narHash": "sha256-lu8v3ALvCwGKsIQ01L//CUDm0QBrXTuwPmLw/CvP/8o=", 761 + "lastModified": 1760728397, 762 + "narHash": "sha256-z6naEmNTmWQaGXm6tXJtvwVyv/TaJFNhtu5HNA05xP4=", 742 763 "ref": "refs/heads/main", 743 - "rev": "6d841dac39f69d96fe15172143a06bae1263401b", 744 - "revCount": 253, 764 + "rev": "4999f91c4d6da229fc253004f449861246e92838", 765 + "revCount": 264, 745 766 "type": "git", 746 767 "url": "https://codeberg.org/spoonbaker/mono" 747 768 },
+3
flake.nix
··· 27 27 gh-grader-preview.inputs.nixpkgs.follows = "nixpkgs"; 28 28 bingus.url = "github:Bwc9876/bingus-bot"; 29 29 bingus.inputs.nixpkgs.follows = "nixpkgs"; 30 + hexecute.url = "github:ThatOtherAndrew/Hexecute"; 31 + hexecute.inputs.nixpkgs.follows = "nixpkgs"; 30 32 31 33 spoon.url = "git+https://codeberg.org/spoonbaker/mono"; 32 34 spoon.inputs = { ··· 54 56 bingus, 55 57 spoon, 56 58 gh-grader-preview, 59 + hexecute, 57 60 }: 58 61 flakelight ./. { 59 62 imports = [
+68 -65
nixosModules/base/nushell.nix
··· 1 1 { 2 2 pkgs, 3 - inputs, 4 3 lib, 4 + config, 5 5 ... 6 - }: let 7 - init-starship = pkgs.runCommand "starship-init" {} '' 6 + }: 7 + let 8 + init-starship = pkgs.runCommand "starship-init" { } '' 8 9 ${pkgs.starship}/bin/starship init nu > $out 9 10 ''; 10 - in rec { 11 - home-manager.users.bean.programs.nushell = with lib; { 12 - enable = true; 13 - shellAliases = { 14 - cd = "z"; 15 - sw = "zi"; 16 - py = "python"; 17 - cat = "bat"; 18 - pcat = "prettybat"; 19 - pbat = "prettybat"; 20 - dog = "doggo"; 21 - man = "__batman"; 22 - bgrep = "batgrep"; 23 - "🥺" = "sudo"; 24 - }; 25 - configFile.text = '' 26 - let fish_completer = {|spans| 27 - ${pkgs.fish}/bin/fish --command $'complete "--do-complete=($spans | str join " ")"' 28 - | $"value(char tab)description(char newline)" + $in 29 - | from tsv --flexible --no-infer 30 - } 31 - let zoxide_completer = {|spans| 32 - let query = $spans | skip 1 33 - let z_results = $query | zoxide query -l ...$in | lines | where {|x| $x != $env.PWD} 34 - let l_results = fish_completer $spans 35 - $l_results | append $z_results 36 - } 37 - let multiple_completers = {|spans| 38 - # if the current command is an alias, get it's expansion 39 - let expanded_alias = (scope aliases | where name == $spans.0 | get -o 0 | get -o expansion) 11 + shellAliases = { 12 + cd = "z"; 13 + sw = "zi"; 14 + py = "python"; 15 + cat = "bat"; 16 + pcat = "prettybat"; 17 + pbat = "prettybat"; 18 + dog = "doggo"; 19 + man = "__batman"; 20 + bgrep = "batgrep"; 21 + "🥺" = "sudo"; 22 + }; 23 + configFile.text = '' 24 + let fish_completer = {|spans| 25 + ${pkgs.fish}/bin/fish --command $'complete "--do-complete=($spans | str join " ")"' 26 + | $"value(char tab)description(char newline)" + $in 27 + | from tsv --flexible --no-infer 28 + } 29 + let zoxide_completer = {|spans| 30 + let query = $spans | skip 1 31 + let z_results = $query | zoxide query -l ...$in | lines | where {|x| $x != $env.PWD} 32 + let l_results = fish_completer $spans 33 + $l_results | append $z_results 34 + } 35 + let multiple_completers = {|spans| 36 + # if the current command is an alias, get it's expansion 37 + let expanded_alias = (scope aliases | where name == $spans.0 | get -o 0 | get -o expansion) 40 38 41 - # overwrite 39 + # overwrite 42 40 43 - let spans = (if $expanded_alias != null { 44 - # put the first word of the expanded alias first in the span 45 - $spans | skip 1 | prepend ($expanded_alias | split row " ") 46 - } else { $spans }) 41 + let spans = (if $expanded_alias != null { 42 + # put the first word of the expanded alias first in the span 43 + $spans | skip 1 | prepend ($expanded_alias | split row " ") 44 + } else { $spans }) 47 45 48 - match $spans.0 { 49 - z => $zoxide_completer 50 - zi => $zoxide_completer 51 - __zoxide_z => $zoxide_completer 52 - __zoxide_zi => $zoxide_completer 53 - _ => $fish_completer 54 - } | do $in $spans 55 - } 46 + match $spans.0 { 47 + z => $zoxide_completer 48 + zi => $zoxide_completer 49 + __zoxide_z => $zoxide_completer 50 + __zoxide_zi => $zoxide_completer 51 + _ => $fish_completer 52 + } | do $in $spans 53 + } 56 54 57 - let command_not_found = ${fileContents ../../res/command_not_found.nu} 55 + let command_not_found = ${lib.fileContents ../../res/command_not_found.nu} 58 56 59 - def --env __batman [...rest:string] { 60 - BAT_THEME="Monokai Extended" batman ...$rest 61 - } 57 + def --env __batman [...rest:string] { 58 + BAT_THEME="Monokai Extended" batman ...$rest 59 + } 62 60 63 - $env.config = { 64 - show_banner: false 65 - completions: { 66 - external: { 67 - enable: true 68 - completer: $multiple_completers 69 - } 70 - } 71 - hooks: { 72 - command_not_found: $command_not_found 73 - } 74 - } 61 + $env.config = { 62 + show_banner: false 63 + completions: { 64 + external: { 65 + enable: true 66 + completer: $multiple_completers 67 + } 68 + } 69 + hooks: { 70 + command_not_found: $command_not_found 71 + } 72 + } 75 73 76 - source ${init-starship} 77 - ''; 74 + source ${init-starship} 75 + ''; 76 + in 77 + { 78 + home-manager.users.bean.programs.nushell = { 79 + enable = true; 80 + inherit configFile shellAliases; 78 81 }; 79 - home-manager.users.root.programs.nushell = with home-manager.users.bean.programs.nushell; { 82 + home-manager.users.root.programs.nushell = { 80 83 enable = true; 81 84 inherit configFile shellAliases; 82 85 };
-5
nixosModules/dev/nix.nix
··· 1 1 {pkgs, ...}: { 2 - nix.settings = { 3 - substituters = ["https://cache.garnix.io"]; 4 - trusted-public-keys = ["cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="]; 5 - }; 6 - 7 2 environment.systemPackages = with pkgs; [ 8 3 alejandra 9 4 ];
+21 -7
nixosModules/graphics/fonts.nix
··· 1 - {pkgs, ...}: { 1 + { pkgs, ... }: 2 + { 2 3 fonts = { 3 4 packages = with pkgs; [ 4 5 fira-code ··· 10 11 ]; 11 12 fontconfig = { 12 13 enable = true; 13 - defaultFonts = rec { 14 - serif = sansSerif; 15 - sansSerif = ["FiraGO" "Symbols Nerd Font"]; 16 - monospace = ["Fira Code" "Symbols Nerd Font"]; 17 - emoji = ["Noto Color Emoji" "Symbols Nerd Font"]; 18 - }; 14 + defaultFonts = 15 + let 16 + mainFonts = [ 17 + "FiraGO" 18 + "Symbols Nerd Font" 19 + ]; 20 + in 21 + { 22 + serif = mainFonts; 23 + sansSerif = mainFonts; 24 + monospace = [ 25 + "Fira Code" 26 + "Symbols Nerd Font" 27 + ]; 28 + emoji = [ 29 + "Noto Color Emoji" 30 + "Symbols Nerd Font" 31 + ]; 32 + }; 19 33 }; 20 34 }; 21 35 }
+2 -2
nixosModules/graphics/hypr.nix
··· 119 119 "SUPER,F,fullscreen,1" 120 120 "SUPER SHIFT,F,fullscreen,0" 121 121 ",XF86RFKill,exec,rfkill toggle wifi" 122 - "SUPER,left,workspace,m-1" 123 - "SUPER,right,workspace,m+1" 122 + "SUPER,left,workspace,r-1" 123 + "SUPER,right,workspace,r+1" 124 124 "SUPER SHIFT,left,movetoworkspace,r-1" 125 125 "SUPER SHIFT,right,movetoworkspace,r+1" 126 126 ]
-20
nixosModules/graphics/news.nix
··· 27 27 "UCXq2nALoSbxLMehAvYTxt_A" # The Grumps 28 28 "UCBa659QWEk1AI4Tg--mrJ2A" # Tom Scott 29 29 "UCFLwN7vRu8M057qJF8TsBaA" # UpIsNotJump 30 - "UCzfyYtgvkx5mLy8nlLlayYg" # SpindleHorse 31 30 "UCPsSoOCRNIj-eo2UbXfcdAw" # xen 42 32 31 "UCYBbrJH2H6tmQZ7VHyA_esA" # Saltydkdan 33 32 "UCBZb-2BHvUtZ-WzrEj16lug" # Raicuparta ··· 143 142 tags = [ 144 143 "dev" 145 144 "linux" 146 - ]; 147 - } 148 - { 149 - title = "Windows 11 Updates"; 150 - url = "https://support.microsoft.com/en-us/feed/rss/4ec863cc-2ecd-e187-6cb3-b50c6545db92"; 151 - tags = [ 152 - "dev" 153 - ]; 154 - } 155 - { 156 - title = "Windows Server 2025 Updates"; 157 - url = "https://support.microsoft.com/en-us/feed/rss/c7b7e227-e17e-8633-fd90-9d28fb739cc5"; 158 - tags = [ 159 - "dev" 160 145 ]; 161 146 } 162 147 { ··· 358 343 { 359 344 title = "Lobste"; 360 345 url = "https://lobste.rs/rss"; 361 - tags = ["tech"]; 362 - } 363 - { 364 - title = "Y Combinator"; 365 - url = "https://news.ycombinator.com/rss"; 366 346 tags = ["tech"]; 367 347 } 368 348 ]
+4
nixosModules/graphics/shell.nix
··· 25 25 hyprlock 26 26 hyprland-qtutils 27 27 28 + # The best program ever made 29 + inputs'.hexecute.packages.hexecute 30 + 28 31 ## Waybar 29 32 qt6.qttools # For component 30 33 ··· 306 309 powerMenu = "rofi -modi 'p:${pkgs.rofi-power-menu}/bin/rofi-power-menu' -show p --symbols-font \"FiraMono Nerd Font Mono\""; 307 310 screenshot = "${pkgs.nushell}/bin/nu ${../../res/screenshot.nu}"; 308 311 in [ 312 + "SUPER,SPACE,exec,${inputs'.hexecute.packages.default}/bin/hexecute" 309 313 "SUPER,S,exec,uwsm app -- rofi -show drun -icon-theme \"candy-icons\" -show-icons" 310 314 "SUPER SHIFT,E,exec,uwsm app -- rofi -modi emoji -show emoji" 311 315 "SUPER SHIFT,D,exec,swaync-client -d"
+58 -43
systemConfigs/installer.nix
··· 1 - {outputs, ...}: { 1 + { outputs, ... }: 2 + { 2 3 system = "x86_64-linux"; 3 4 modules = [ 4 - (outputs.lib.applyRoles ["base" "latest-linux" "dev" "fun"]) 5 - ({ 6 - pkgs, 7 - lib, 8 - inputs, 9 - edition, 10 - config, 11 - modulesPath, 12 - ... 13 - }: { 14 - system.stateVersion = "25.05"; 15 - networking.hostName = "nixos-installer-bwc9876"; 5 + (outputs.lib.applyRoles [ 6 + "base" 7 + "latest-linux" 8 + "dev" 9 + "fun" 10 + ]) 11 + ( 12 + { 13 + pkgs, 14 + lib, 15 + inputs, 16 + edition, 17 + config, 18 + modulesPath, 19 + ... 20 + }: 21 + { 22 + system.stateVersion = "25.05"; 23 + networking.hostName = "nixos-installer-bwc9876"; 16 24 17 - imports = [ 18 - "${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix" 19 - ]; 20 - 21 - services.kmscon = { 22 - enable = true; 23 - autologinUser = "bean"; 24 - fonts = [ 25 - { 26 - name = "FiraMono Nerd Font Mono"; 27 - package = pkgs.nerd-fonts.fira-mono; 28 - } 25 + imports = [ 26 + "${modulesPath}/installer/cd-dvd/installation-cd-minimal.nix" 29 27 ]; 30 - }; 31 28 32 - boot = rec { 33 - initrd.systemd.enable = false; 34 - supportedFilesystems = { 35 - btrfs = true; 36 - reiserfs = lib.mkForce false; 37 - vfat = true; 38 - f2fs = true; 39 - xfs = true; 40 - ntfs = true; 41 - cifs = true; 42 - zfs = lib.mkForce false; 29 + services.kmscon = { 30 + enable = true; 31 + autologinUser = "bean"; 32 + fonts = [ 33 + { 34 + name = "FiraMono Nerd Font Mono"; 35 + package = pkgs.nerd-fonts.fira-mono; 36 + } 37 + ]; 43 38 }; 44 - initrd.supportedFilesystems = supportedFilesystems; 45 - }; 46 39 47 - environment.systemPackages = with pkgs; [ 48 - gptfdisk 49 - ]; 50 - }) 40 + boot = 41 + let 42 + supportedFilesystems = { 43 + btrfs = true; 44 + reiserfs = lib.mkForce false; 45 + vfat = true; 46 + f2fs = true; 47 + xfs = true; 48 + ntfs = true; 49 + cifs = true; 50 + zfs = lib.mkForce false; 51 + }; 52 + in 53 + { 54 + initrd.systemd.enable = false; 55 + inherit supportedFilesystems; 56 + initrd = { 57 + inherit supportedFilesystems; 58 + }; 59 + }; 60 + 61 + environment.systemPackages = with pkgs; [ 62 + gptfdisk 63 + ]; 64 + } 65 + ) 51 66 ]; 52 67 }