Flake for my NixOS devices

Switch to Wezterm

bwc9876.dev 223bb2aa 9463a0ac

verified
+61 -76
+24 -24
flake.lock
··· 7 ] 8 }, 9 "locked": { 10 - "lastModified": 1739283129, 11 - "narHash": "sha256-GXJllf1wY7tOF6uei9S3PnSEghFbnJP1vkxM0kkMOoI=", 12 "owner": "catppuccin", 13 "repo": "nix", 14 - "rev": "d4e258e29075a86a82dacaf4f5e0985935ae4658", 15 "type": "github" 16 }, 17 "original": { ··· 168 ] 169 }, 170 "locked": { 171 - "lastModified": 1739191238, 172 - "narHash": "sha256-DRuhQDWscKWXAZcatFDLQ0+pMKmGZ9lEZdxygq8rVSU=", 173 "owner": "nix-community", 174 "repo": "flakelight", 175 - "rev": "5656e7f5fda93676642d199fd9eb47b970d6139e", 176 "type": "github" 177 }, 178 "original": { ··· 208 ] 209 }, 210 "locked": { 211 - "lastModified": 1739191238, 212 - "narHash": "sha256-DRuhQDWscKWXAZcatFDLQ0+pMKmGZ9lEZdxygq8rVSU=", 213 "owner": "nix-community", 214 "repo": "flakelight", 215 - "rev": "5656e7f5fda93676642d199fd9eb47b970d6139e", 216 "type": "github" 217 }, 218 "original": { ··· 361 ] 362 }, 363 "locked": { 364 - "lastModified": 1739735835, 365 - "narHash": "sha256-S4VskZCNjRX6saW7GtVb4MD3kWdfvRvLurLj9QcM4Wg=", 366 "owner": "nix-community", 367 "repo": "home-manager", 368 - "rev": "b15e9ec6769d770879759f086dd4e51fae7f2394", 369 "type": "github" 370 }, 371 "original": { ··· 485 }, 486 "nixos-hardware": { 487 "locked": { 488 - "lastModified": 1738816619, 489 - "narHash": "sha256-5yRlg48XmpcX5b5HesdGMOte+YuCy9rzQkJz+imcu6I=", 490 "owner": "NixOS", 491 "repo": "nixos-hardware", 492 - "rev": "2eccff41bab80839b1d25b303b53d339fbb07087", 493 "type": "github" 494 }, 495 "original": { ··· 500 }, 501 "nixpkgs": { 502 "locked": { 503 - "lastModified": 1739580444, 504 - "narHash": "sha256-+/bSz4EAVbqz8/HsIGLroF8aNaO8bLRL7WfACN+24g4=", 505 "owner": "NixOS", 506 "repo": "nixpkgs", 507 - "rev": "8bb37161a0488b89830168b81c48aed11569cb93", 508 "type": "github" 509 }, 510 "original": { ··· 547 "treefmt-nix": "treefmt-nix" 548 }, 549 "locked": { 550 - "lastModified": 1739708385, 551 - "narHash": "sha256-H6qPfgE8P6rYMpwj9GsmcZEry52O3U82IqJJy6hx/88=", 552 "owner": "nix-community", 553 "repo": "nixvim", 554 - "rev": "d636d254088a2fa49b585b79097a2766d4e3af80", 555 "type": "github" 556 }, 557 "original": { ··· 676 ] 677 }, 678 "locked": { 679 - "lastModified": 1739673031, 680 - "narHash": "sha256-Z/GT8ebbvc4goxN4A0A5ACj26G1HaGJO+VetrPuC5Mo=", 681 "owner": "oxalica", 682 "repo": "rust-overlay", 683 - "rev": "538528d55318e0c8af1c307dcf10b7629b988fc3", 684 "type": "github" 685 }, 686 "original": {
··· 7 ] 8 }, 9 "locked": { 10 + "lastModified": 1739934729, 11 + "narHash": "sha256-PcrLk10meIJICzUJqtCMOJxoITzbH52fZg2XAB7SSsM=", 12 "owner": "catppuccin", 13 "repo": "nix", 14 + "rev": "b1ff2a638afa827f1473498190a2c1cae1cf41cf", 15 "type": "github" 16 }, 17 "original": { ··· 168 ] 169 }, 170 "locked": { 171 + "lastModified": 1739796086, 172 + "narHash": "sha256-jxpUiVJ6O+V1YsXsvWdMgqnv8zk9TFiqF86CRdGGGH4=", 173 "owner": "nix-community", 174 "repo": "flakelight", 175 + "rev": "540efca2f9015aff7dc574c7a03404e5fa72d42f", 176 "type": "github" 177 }, 178 "original": { ··· 208 ] 209 }, 210 "locked": { 211 + "lastModified": 1739796086, 212 + "narHash": "sha256-jxpUiVJ6O+V1YsXsvWdMgqnv8zk9TFiqF86CRdGGGH4=", 213 "owner": "nix-community", 214 "repo": "flakelight", 215 + "rev": "540efca2f9015aff7dc574c7a03404e5fa72d42f", 216 "type": "github" 217 }, 218 "original": { ··· 361 ] 362 }, 363 "locked": { 364 + "lastModified": 1740161709, 365 + "narHash": "sha256-QInyU5nXiwGzzCc3qxYHJKFY/YWege8Us7aZZOCFW4Q=", 366 "owner": "nix-community", 367 "repo": "home-manager", 368 + "rev": "148a6b55651ac794f5c20bbd76780b4d8fed4334", 369 "type": "github" 370 }, 371 "original": { ··· 485 }, 486 "nixos-hardware": { 487 "locked": { 488 + "lastModified": 1740089251, 489 + "narHash": "sha256-Y78mDBWoO8CLLTjQfPfII+KXFb6lAmF9GrLbyVBsIMM=", 490 "owner": "NixOS", 491 "repo": "nixos-hardware", 492 + "rev": "18e9f9753e9ae261bcc7d3abe15745686991fd30", 493 "type": "github" 494 }, 495 "original": { ··· 500 }, 501 "nixpkgs": { 502 "locked": { 503 + "lastModified": 1739866667, 504 + "narHash": "sha256-EO1ygNKZlsAC9avfcwHkKGMsmipUk1Uc0TbrEZpkn64=", 505 "owner": "NixOS", 506 "repo": "nixpkgs", 507 + "rev": "73cf49b8ad837ade2de76f87eb53fc85ed5d4680", 508 "type": "github" 509 }, 510 "original": { ··· 547 "treefmt-nix": "treefmt-nix" 548 }, 549 "locked": { 550 + "lastModified": 1739902813, 551 + "narHash": "sha256-BgOQcKKz7VNvSHIbBllHisv32HvF3W3ALF9sdnC++V8=", 552 "owner": "nix-community", 553 "repo": "nixvim", 554 + "rev": "0ab9947137cd034ec64eb5cd9ede94e53af21f50", 555 "type": "github" 556 }, 557 "original": { ··· 676 ] 677 }, 678 "locked": { 679 + "lastModified": 1740104932, 680 + "narHash": "sha256-FaN+HBAhOW1wAjxPI/Ko1DX0ax4ucHCZoMJ0dGMxm8o=", 681 "owner": "oxalica", 682 "repo": "rust-overlay", 683 + "rev": "c932b3873a5d56126bc1f1416fb8a58315f86c17", 684 "type": "github" 685 }, 686 "original": {
+12 -6
nixosModules/dev/nvim.nix
··· 442 "path" 443 "buffer" 444 ]; 445 - mapping = lib.fix (self: { 446 "<Esc>" = "cmp.mapping.abort()"; 447 - "<CR>" = "cmp.mapping.confirm({ select = true })"; 448 "<Up>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; 449 "<Down>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; 450 - "<Tab>" = self."<Up>"; 451 - "<S-Tab>" = self."<Down>"; 452 - }); 453 }; 454 }; 455 ··· 463 lsp-format.enable = true; 464 lspkind.enable = true; 465 # jupytext.enable = true; 466 - hex.enable = true; 467 468 lspsaga = { 469 enable = true; ··· 514 bashls.enable = true; 515 nushell.enable = true; 516 taplo.enable = true; 517 rust_analyzer.enable = true; 518 rust_analyzer.installCargo = false; 519 rust_analyzer.installRustc = false;
··· 442 "path" 443 "buffer" 444 ]; 445 + mapping = { 446 "<Esc>" = "cmp.mapping.abort()"; 447 + "<Tab>" = "cmp.mapping.confirm({ select = true })"; 448 "<Up>" = "cmp.mapping(cmp.mapping.select_prev_item(), {'i', 's'})"; 449 "<Down>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})"; 450 + }; 451 }; 452 }; 453 ··· 461 lsp-format.enable = true; 462 lspkind.enable = true; 463 # jupytext.enable = true; 464 + 465 + hex = { 466 + enable = true; 467 + settings = { 468 + assemble_cmd = "xxd -r"; 469 + dump_cmd = "xxd -g 1 -u"; 470 + }; 471 + }; 472 473 lspsaga = { 474 enable = true; ··· 519 bashls.enable = true; 520 nushell.enable = true; 521 taplo.enable = true; 522 + typos_lsp.enable = true; 523 rust_analyzer.enable = true; 524 rust_analyzer.installCargo = false; 525 rust_analyzer.installRustc = false;
+1 -2
nixosModules/graphics/apps.nix
··· 4 [Desktop Entry] 5 Type=Application 6 Name=Htop 7 - Exec=kitty --title="Htop" --app-id="htop" htop 8 Icon=htop 9 ''; 10 ··· 156 157 environment.systemPackages = with pkgs; [ 158 chromium 159 - kitty 160 161 # Office 162 libreoffice-qt6
··· 4 [Desktop Entry] 5 Type=Application 6 Name=Htop 7 + Exec=wezterm start --class="htop" htop 8 Icon=htop 9 ''; 10 ··· 156 157 environment.systemPackages = with pkgs; [ 158 chromium 159 160 # Office 161 libreoffice-qt6
+2 -2
nixosModules/graphics/hypr.nix
··· 70 key_press_enables_dpms = true; 71 }; 72 env = [ 73 - "TERMINAL,kitty" 74 ]; 75 windowrulev2 = [ 76 "workspace 1 silent,class:(.*)vesktop(.*),title:(.*)[Vv]esktop(.*)" ··· 78 ]; 79 submap = "reset"; 80 bind = let 81 - openTerminal = "uwsm app -- kitty.desktop"; 82 forEachWorkspace = { 83 mod, 84 dispatch,
··· 70 key_press_enables_dpms = true; 71 }; 72 env = [ 73 + "TERMINAL,wezterm" 74 ]; 75 windowrulev2 = [ 76 "workspace 1 silent,class:(.*)vesktop(.*),title:(.*)[Vv]esktop(.*)" ··· 78 ]; 79 submap = "reset"; 80 bind = let 81 + openTerminal = "uwsm app -- org.wezfurlong.wezterm.desktop"; 82 forEachWorkspace = { 83 mod, 84 dispatch,
-16
nixosModules/graphics/kitty.nix
··· 1 - {...}: { 2 - home-manager.users.bean.programs.kitty = { 3 - enable = true; 4 - font = { 5 - name = "monospace"; 6 - size = 18; 7 - }; 8 - keybindings = { 9 - "ctrl+shift+o" = "open_url_with_hints"; 10 - }; 11 - settings = { 12 - cursor_shape = "beam"; 13 - background_opacity = 0.92; 14 - }; 15 - }; 16 - }
···
-1
nixosModules/graphics/shell.nix
··· 146 "SUPER,B,exec,uwsm app -- ${pkgs.rofi-bluetooth}/bin/rofi-bluetooth" 147 "SUPER,Tab,exec,uwsm app -- rofi -show window -show-icons" 148 "SUPER,E,exec,uwsm app -- ${pkgs.nushell}/bin/nu ${inputs.self}/res/rofi/rofi-places.nu" 149 - "SUPER SHIFT,T,exec,uwsm app -- ${pkgs.nushell}/bin/nu ${inputs.self}/res/rofi/rofi-zoxide.nu" 150 "SUPER,N,exec,uwsm app -- ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw" 151 "SUPER,A,exec,uwsm app -- pavucontrol --tab 5" 152 ''SUPER,V,exec,cliphist list | sed -r 's/\[\[ binary data (.* .iB) (.*) (.*) \]\]/ 󰋩 \2 Image (\3, \1)/g' | rofi -dmenu -display-columns 2 -p Clipboard | cliphist decode | wl-copy''
··· 146 "SUPER,B,exec,uwsm app -- ${pkgs.rofi-bluetooth}/bin/rofi-bluetooth" 147 "SUPER,Tab,exec,uwsm app -- rofi -show window -show-icons" 148 "SUPER,E,exec,uwsm app -- ${pkgs.nushell}/bin/nu ${inputs.self}/res/rofi/rofi-places.nu" 149 "SUPER,N,exec,uwsm app -- ${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw" 150 "SUPER,A,exec,uwsm app -- pavucontrol --tab 5" 151 ''SUPER,V,exec,cliphist list | sed -r 's/\[\[ binary data (.* .iB) (.*) (.*) \]\]/ 󰋩 \2 Image (\3, \1)/g' | rofi -dmenu -display-columns 2 -p Clipboard | cliphist decode | wl-copy''
-2
nixosModules/graphics/waybar.nix
··· 419 { 420 cpu = { 421 format = "󰍛 {usage}󰏰"; 422 - on-click = "kitty --title=\"Htop\" --app-id=\"htop\" htop --sort-key=PERCENT_CPU"; 423 states = { 424 critical = 95; 425 warning = 80; ··· 432 layer = "top"; 433 memory = { 434 format = " {}󰏰 ({used:0.1f}/{total:0.1f} GiB)"; 435 - on-click = "kitty --title=\"Htop\" --app-id=\"htop\" htop --sort-key=PERCENT_MEM"; 436 states = { 437 critical = 90; 438 warning = 70;
··· 419 { 420 cpu = { 421 format = "󰍛 {usage}󰏰"; 422 states = { 423 critical = 95; 424 warning = 80; ··· 431 layer = "top"; 432 memory = { 433 format = " {}󰏰 ({used:0.1f}/{total:0.1f} GiB)"; 434 states = { 435 critical = 90; 436 warning = 70;
+19
nixosModules/graphics/wezterm.nix
···
··· 1 + {...}: { 2 + home-manager.users.bean.programs.wezterm = { 3 + enable = true; 4 + extraConfig = '' 5 + return { 6 + font = wezterm.font("monospace"), 7 + font_size = 18.0, 8 + color_scheme = "Catppuccin Mocha", 9 + enable_tab_bar = false, 10 + window_background_opacity = 0.92, 11 + default_cursor_style = "SteadyBar", 12 + cursor_thickness = 2, 13 + keys = { 14 + {key="o", mods="CTRL|SHIFT", action="OpenLinkAtMouseCursor"} 15 + } 16 + } 17 + ''; 18 + }; 19 + }
+1 -1
nixosModules/graphics/xdg.nix
··· 39 "image/x-portable-graymap" = imageViewers; 40 "image/x-portable-anymap" = imageViewers; 41 "image/svg+xml" = imageViewers; 42 - "x-terminal-emulator" = ["kitty"]; 43 "x-scheme-handler/http" = browsers; 44 "x-scheme-handler/https" = browsers; 45 "x-scheme-handler/chrome" = browsers;
··· 39 "image/x-portable-graymap" = imageViewers; 40 "image/x-portable-anymap" = imageViewers; 41 "image/svg+xml" = imageViewers; 42 + "x-terminal-emulator" = ["wezterm.desktop"]; 43 "x-scheme-handler/http" = browsers; 44 "x-scheme-handler/https" = browsers; 45 "x-scheme-handler/chrome" = browsers;
+1 -7
nixosModules/ssh.nix
··· 1 { 2 lib, 3 - pkgs, 4 config, 5 ... 6 }: let ··· 10 beanPubkey 11 ]; 12 13 - environment = { 14 - enableAllTerminfo = true; 15 - systemPackages = with pkgs; [ 16 - kitty # Needed for terminfo to work over ssh 17 - ]; 18 - }; 19 20 services.openssh = { 21 enable = true;
··· 1 { 2 lib, 3 config, 4 ... 5 }: let ··· 9 beanPubkey 10 ]; 11 12 + environment.enableAllTerminfo = true; 13 14 services.openssh = { 15 enable = true;
-14
res/rofi/rofi-zoxide.nu
··· 1 - #!/usr/bin/env nu 2 - 3 - let dirs = zoxide query -l "" | lines 4 - 5 - let menu = $dirs | each {|it| $"($it | split row "/" | last) <span color=\"#A2A2A2\"><i><small>\(($it | str replace $"/home/($env.USER)" "~")\)</small></i></span>" } | str join "\n" 6 - 7 - let res = ($menu | rofi -dmenu -i -markup-rows -p "Zoxide" | complete) 8 - 9 - if $res.exit_code == 1 { 10 - echo "Cancelled" 11 - } else { 12 - let dir = $res.stdout | split row " <span color=\"#A2A2A2\"><i><small>(" | get 1 | split row ")</small>" | get 0 13 - kitty -d ($dir | str replace "~" $"/home/($env.USER)") 14 - }
···
+1 -1
res/theming/kdeglobals
··· 2 ShowDeleteCommand=false 3 4 [General] 5 - TerminalApplication=kitty 6 7 [KFileDialog Settings] 8 Allow Expansion=false
··· 2 ShowDeleteCommand=false 3 4 [General] 5 + TerminalApplication=wezterm 6 7 [KFileDialog Settings] 8 Allow Expansion=false