me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

use kaleidux and fsel

author
Sean Aye
date (Mar 22, 2026, 8:03 PM -0400) commit 460dfba7 parent a3e50b63 change-id yvknzqzl
+364 -18
+260 -10
flake.lock
··· 131 131 "fenix": { 132 132 "inputs": { 133 133 "nixpkgs": [ 134 - "trmnl-rs", 134 + "fsel", 135 + "naersk", 135 136 "nixpkgs" 136 137 ], 137 138 "rust-analyzer-src": "rust-analyzer-src" 138 139 }, 139 140 "locked": { 141 + "lastModified": 1752475459, 142 + "narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=", 143 + "owner": "nix-community", 144 + "repo": "fenix", 145 + "rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f", 146 + "type": "github" 147 + }, 148 + "original": { 149 + "owner": "nix-community", 150 + "repo": "fenix", 151 + "type": "github" 152 + } 153 + }, 154 + "fenix_2": { 155 + "inputs": { 156 + "nixpkgs": [ 157 + "kaleidux", 158 + "naersk", 159 + "nixpkgs" 160 + ], 161 + "rust-analyzer-src": "rust-analyzer-src_2" 162 + }, 163 + "locked": { 164 + "lastModified": 1752475459, 165 + "narHash": "sha256-z6QEu4ZFuHiqdOPbYss4/Q8B0BFhacR8ts6jO/F/aOU=", 166 + "owner": "nix-community", 167 + "repo": "fenix", 168 + "rev": "bf0d6f70f4c9a9cf8845f992105652173f4b617f", 169 + "type": "github" 170 + }, 171 + "original": { 172 + "owner": "nix-community", 173 + "repo": "fenix", 174 + "type": "github" 175 + } 176 + }, 177 + "fenix_3": { 178 + "inputs": { 179 + "nixpkgs": [ 180 + "trmnl-rs", 181 + "nixpkgs" 182 + ], 183 + "rust-analyzer-src": "rust-analyzer-src_3" 184 + }, 185 + "locked": { 140 186 "lastModified": 1757400094, 141 187 "narHash": "sha256-5Rcs6juMoMTaMJSR1glravl4QB9yLAFBD8s7KLi4kdQ=", 142 188 "owner": "nix-community", ··· 198 244 "type": "github" 199 245 } 200 246 }, 247 + "flake-utils_3": { 248 + "inputs": { 249 + "systems": "systems_4" 250 + }, 251 + "locked": { 252 + "lastModified": 1731533236, 253 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 254 + "owner": "numtide", 255 + "repo": "flake-utils", 256 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 257 + "type": "github" 258 + }, 259 + "original": { 260 + "owner": "numtide", 261 + "repo": "flake-utils", 262 + "type": "github" 263 + } 264 + }, 265 + "fsel": { 266 + "inputs": { 267 + "flake-utils": "flake-utils_2", 268 + "naersk": "naersk", 269 + "nixpkgs": [ 270 + "nixpkgs" 271 + ] 272 + }, 273 + "locked": { 274 + "lastModified": 1773279064, 275 + "narHash": "sha256-BLcSfp2aNm+0oDoHbvTufBRS2XwKqbIeUOXD8t58efE=", 276 + "owner": "Mjoyufull", 277 + "repo": "fsel", 278 + "rev": "7b38c6223eed6e509f98e066ff89f481bd1930d7", 279 + "type": "github" 280 + }, 281 + "original": { 282 + "owner": "Mjoyufull", 283 + "repo": "fsel", 284 + "type": "github" 285 + } 286 + }, 201 287 "home-manager": { 202 288 "inputs": { 203 289 "nixpkgs": [ ··· 261 347 "type": "github" 262 348 } 263 349 }, 350 + "kaleidux": { 351 + "inputs": { 352 + "naersk": "naersk_2", 353 + "nixpkgs": [ 354 + "nixpkgs" 355 + ], 356 + "utils": "utils" 357 + }, 358 + "locked": { 359 + "lastModified": 1771317848, 360 + "narHash": "sha256-Zq2oYebRrRMsKmX+mi9qf1ywpO7Y/jZuOFyVTpdrdFY=", 361 + "owner": "Mjoyufull", 362 + "repo": "Kaleidux", 363 + "rev": "64edb0815cbb1b4dd3055924750b5da914dfa6d6", 364 + "type": "github" 365 + }, 366 + "original": { 367 + "owner": "Mjoyufull", 368 + "repo": "Kaleidux", 369 + "type": "github" 370 + } 371 + }, 372 + "naersk": { 373 + "inputs": { 374 + "fenix": "fenix", 375 + "nixpkgs": "nixpkgs_3" 376 + }, 377 + "locked": { 378 + "lastModified": 1769799857, 379 + "narHash": "sha256-88IFXZ7Sa1vxbz5pty0Io5qEaMQMMUPMonLa3Ls/ss4=", 380 + "owner": "nix-community", 381 + "repo": "naersk", 382 + "rev": "9d4ed44d8b8cecdceb1d6fd76e74123d90ae6339", 383 + "type": "github" 384 + }, 385 + "original": { 386 + "owner": "nix-community", 387 + "repo": "naersk", 388 + "type": "github" 389 + } 390 + }, 391 + "naersk_2": { 392 + "inputs": { 393 + "fenix": "fenix_2", 394 + "nixpkgs": [ 395 + "kaleidux", 396 + "nixpkgs" 397 + ] 398 + }, 399 + "locked": { 400 + "lastModified": 1763384566, 401 + "narHash": "sha256-r+wgI+WvNaSdxQmqaM58lVNvJYJ16zoq+tKN20cLst4=", 402 + "owner": "nix-community", 403 + "repo": "naersk", 404 + "rev": "d4155d6ebb70fbe2314959842f744aa7cabbbf6a", 405 + "type": "github" 406 + }, 407 + "original": { 408 + "owner": "nix-community", 409 + "ref": "master", 410 + "repo": "naersk", 411 + "type": "github" 412 + } 413 + }, 264 414 "niri": { 265 415 "inputs": { 266 416 "niri-stable": "niri-stable", 267 417 "niri-unstable": "niri-unstable", 268 - "nixpkgs": "nixpkgs_3", 418 + "nixpkgs": "nixpkgs_4", 269 419 "nixpkgs-stable": "nixpkgs-stable", 270 420 "xwayland-satellite-stable": "xwayland-satellite-stable", 271 421 "xwayland-satellite-unstable": "xwayland-satellite-unstable" ··· 319 469 }, 320 470 "nixarr": { 321 471 "inputs": { 322 - "nixpkgs": "nixpkgs_4", 472 + "nixpkgs": "nixpkgs_5", 323 473 "vpnconfinement": "vpnconfinement", 324 474 "website-builder": "website-builder" 325 475 }, ··· 384 534 "argononed": "argononed", 385 535 "flake-compat": "flake-compat", 386 536 "nixos-images": "nixos-images", 387 - "nixpkgs": "nixpkgs_5" 537 + "nixpkgs": "nixpkgs_6" 388 538 }, 389 539 "locked": { 390 540 "lastModified": 1769297295, ··· 466 616 }, 467 617 "nixpkgs_3": { 468 618 "locked": { 619 + "lastModified": 1752077645, 620 + "narHash": "sha256-HM791ZQtXV93xtCY+ZxG1REzhQenSQO020cu6rHtAPk=", 621 + "owner": "NixOS", 622 + "repo": "nixpkgs", 623 + "rev": "be9e214982e20b8310878ac2baa063a961c1bdf6", 624 + "type": "github" 625 + }, 626 + "original": { 627 + "owner": "NixOS", 628 + "ref": "nixpkgs-unstable", 629 + "repo": "nixpkgs", 630 + "type": "github" 631 + } 632 + }, 633 + "nixpkgs_4": { 634 + "locked": { 469 635 "lastModified": 1770562336, 470 636 "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", 471 637 "owner": "NixOS", ··· 480 646 "type": "github" 481 647 } 482 648 }, 483 - "nixpkgs_4": { 649 + "nixpkgs_5": { 484 650 "locked": { 485 651 "lastModified": 1765608474, 486 652 "narHash": "sha256-9Wx53UK0z8Di5iesJID0tS1dRKwGxI4i7tsSanOHhF0=", ··· 496 662 "type": "github" 497 663 } 498 664 }, 499 - "nixpkgs_5": { 665 + "nixpkgs_6": { 500 666 "locked": { 501 667 "lastModified": 1769296100, 502 668 "narHash": "sha256-T5VGtbz2X+waw2P1dYvLa56osxj3cNZArfa5aRBVT+s=", ··· 512 678 "type": "github" 513 679 } 514 680 }, 515 - "nixpkgs_6": { 681 + "nixpkgs_7": { 516 682 "locked": { 517 683 "lastModified": 1770562336, 518 684 "narHash": "sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84=", ··· 551 717 "agenix": "agenix", 552 718 "catppuccin": "catppuccin", 553 719 "copyparty": "copyparty", 720 + "fsel": "fsel", 554 721 "home-manager": "home-manager_2", 722 + "kaleidux": "kaleidux", 555 723 "niri": "niri", 556 724 "nixarr": "nixarr", 557 725 "nixos-hardware": "nixos-hardware", 558 726 "nixos-raspberrypi": "nixos-raspberrypi", 559 - "nixpkgs": "nixpkgs_6", 727 + "nixpkgs": "nixpkgs_7", 560 728 "organelle-hello": "organelle-hello", 561 729 "trmnl-rs": "trmnl-rs", 562 730 "zen-browser": "zen-browser" ··· 565 733 "rust-analyzer-src": { 566 734 "flake": false, 567 735 "locked": { 736 + "lastModified": 1752428706, 737 + "narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=", 738 + "owner": "rust-lang", 739 + "repo": "rust-analyzer", 740 + "rev": "591e3b7624be97e4443ea7b5542c191311aa141d", 741 + "type": "github" 742 + }, 743 + "original": { 744 + "owner": "rust-lang", 745 + "ref": "nightly", 746 + "repo": "rust-analyzer", 747 + "type": "github" 748 + } 749 + }, 750 + "rust-analyzer-src_2": { 751 + "flake": false, 752 + "locked": { 753 + "lastModified": 1752428706, 754 + "narHash": "sha256-EJcdxw3aXfP8Ex1Nm3s0awyH9egQvB2Gu+QEnJn2Sfg=", 755 + "owner": "rust-lang", 756 + "repo": "rust-analyzer", 757 + "rev": "591e3b7624be97e4443ea7b5542c191311aa141d", 758 + "type": "github" 759 + }, 760 + "original": { 761 + "owner": "rust-lang", 762 + "ref": "nightly", 763 + "repo": "rust-analyzer", 764 + "type": "github" 765 + } 766 + }, 767 + "rust-analyzer-src_3": { 768 + "flake": false, 769 + "locked": { 568 770 "lastModified": 1757362324, 569 771 "narHash": "sha256-/PAhxheUq4WBrW5i/JHzcCqK5fGWwLKdH6/Lu1tyS18=", 570 772 "owner": "rust-lang", ··· 609 811 "type": "github" 610 812 } 611 813 }, 814 + "systems_3": { 815 + "locked": { 816 + "lastModified": 1681028828, 817 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 818 + "owner": "nix-systems", 819 + "repo": "default", 820 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 821 + "type": "github" 822 + }, 823 + "original": { 824 + "owner": "nix-systems", 825 + "repo": "default", 826 + "type": "github" 827 + } 828 + }, 829 + "systems_4": { 830 + "locked": { 831 + "lastModified": 1681028828, 832 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 833 + "owner": "nix-systems", 834 + "repo": "default", 835 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 836 + "type": "github" 837 + }, 838 + "original": { 839 + "owner": "nix-systems", 840 + "repo": "default", 841 + "type": "github" 842 + } 843 + }, 612 844 "trmnl-rs": { 613 845 "inputs": { 614 846 "crane": "crane_2", 615 - "fenix": "fenix", 616 - "flake-utils": "flake-utils_2", 847 + "fenix": "fenix_3", 848 + "flake-utils": "flake-utils_3", 617 849 "nixpkgs": [ 618 850 "nixpkgs" 619 851 ], ··· 630 862 "original": { 631 863 "owner": "seanaye", 632 864 "repo": "trmnl-rs", 865 + "type": "github" 866 + } 867 + }, 868 + "utils": { 869 + "inputs": { 870 + "systems": "systems_3" 871 + }, 872 + "locked": { 873 + "lastModified": 1731533236, 874 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 875 + "owner": "numtide", 876 + "repo": "flake-utils", 877 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 878 + "type": "github" 879 + }, 880 + "original": { 881 + "owner": "numtide", 882 + "repo": "flake-utils", 633 883 "type": "github" 634 884 } 635 885 },
+8
flake.nix
··· 23 23 url = "github:ryantm/agenix"; 24 24 inputs.nixpkgs.follows = "nixpkgs"; 25 25 }; 26 + kaleidux = { 27 + url = "github:Mjoyufull/Kaleidux"; 28 + inputs.nixpkgs.follows = "nixpkgs"; 29 + }; 30 + fsel = { 31 + url = "github:Mjoyufull/fsel"; 32 + inputs.nixpkgs.follows = "nixpkgs"; 33 + }; 26 34 organelle-hello = { 27 35 url = "path:/home/sean/dev/organelle-hello"; 28 36 inputs.nixpkgs.follows = "nixpkgs";
+4
hosts/common/common.nix
··· 108 108 enable = true; 109 109 control = "sufficient"; 110 110 cue = true; 111 + settings = { 112 + origin = "pam://nixos"; 113 + appid = "pam://nixos"; 114 + }; 111 115 }; 112 116 security.pam.services.sudo.u2fAuth = true; 113 117
+53 -8
hosts/common/home.nix
··· 23 23 iotop 24 24 zellij # terminal multiplexer 25 25 alacritty 26 - fuzzel # Application launcher 26 + inputs.fsel.packages.${pkgs.system}.default # App launcher / fuzzy finder 27 27 bemoji # emoji picker 28 28 networkmanager_dmenu # network picker for fuzzel 29 29 quickshell # Status bar (QML-based) 30 - swww # For setting wallpapers 30 + inputs.kaleidux.packages.${pkgs.system}.default # Dynamic wallpaper daemon 31 31 (import ../../packages/cclip.nix { inherit pkgs; }) # Clipboard history manager 32 32 pavucontrol # GUI for PulseAudio/PipeWire volume control 33 33 playerctl # MPRIS media player control ··· 118 118 }; 119 119 }; 120 120 binds = { 121 - "Mod+d".action.spawn = "fuzzel"; 121 + "Mod+d".action.spawn = [ 122 + "alacritty" 123 + "-e" 124 + "fsel" 125 + "--detach" 126 + ]; 127 + "Mod+c".action.spawn = [ 128 + "alacritty" 129 + "-e" 130 + "fsel" 131 + "--cclip" 132 + ]; 122 133 "Mod+e".action.spawn = "bemoji"; 123 134 "Mod+n".action.spawn = "networkmanager_dmenu"; 124 135 "Mod+a".action.spawn = "alacritty"; ··· 301 312 }; 302 313 spawn-at-startup = [ 303 314 { command = [ "xwayland-satellite" ]; } 304 - { command = [ "swww-daemon" ]; } 315 + { command = [ "kaleidux-daemon" ]; } 305 316 { command = [ "cclipd" ]; } 306 317 ]; 307 318 environment = { ··· 317 328 "libsoup-2.74.3" 318 329 ]; 319 330 331 + # Download wallpapers at activation time (skips dead URLs gracefully) 332 + home.activation.downloadWallpapers = 333 + let 334 + wallpapers = import ./wallpapers.nix; 335 + downloads = builtins.concatStringsSep "\n" ( 336 + map (wp: '' 337 + if [ ! -f "$DIR/${wp.filename}" ]; then 338 + echo "Downloading ${wp.filename}..." 339 + ${pkgs.curl}/bin/curl -fsSL -o "$DIR/${wp.filename}" ${ 340 + builtins.replaceStrings [ "\"" ] [ "\\\"" ] wp.url 341 + } || echo "WARNING: Failed to download ${wp.filename}, skipping" 342 + fi 343 + '') wallpapers 344 + ); 345 + in 346 + config.lib.dag.entryAfter [ "writeBoundary" ] '' 347 + DIR="${config.home.homeDirectory}/Pictures/Wallpapers" 348 + mkdir -p "$DIR" 349 + ${downloads} 350 + ''; 351 + 352 + # Kaleidux wallpaper daemon config 353 + xdg.configFile."kaleidux/config.toml".text = '' 354 + [global] 355 + monitor-behavior = "independent" 356 + video-ratio = 50 357 + sorting = "loveit" 358 + transition-time = 1000 359 + 360 + [any] 361 + path = "${config.home.homeDirectory}/Pictures/Wallpapers" 362 + duration = "15m" 363 + transition = { type = "fade" } 364 + ''; 365 + 320 366 # Quickshell status bar 321 367 xdg.configFile."quickshell/shell.qml".source = ./quickshell/shell.qml; 322 368 ··· 410 456 411 457 services.udiskie = { 412 458 enable = true; 413 - tray = "auto"; 459 + tray = "never"; 414 460 automount = true; 415 461 }; 416 462 ··· 431 477 enable = true; 432 478 flavor = "frappe"; 433 479 }; 434 - 435 - programs.fuzzel.enable = true; 436 480 437 481 programs.direnv.enable = true; 438 482 ··· 791 835 AGE-PLUGIN-YUBIKEY-1304E5QVZZD74FKSP8FMCT 792 836 ''; 793 837 838 + # yubikey sudo access 794 839 home.file.".config/Yubico/u2f_keys".text = '' 795 - sean:6sa1fnimjshdqKgadDlgQXqSXD6qQ7eSOZneMQZNAzO2OVCViQlxAZXHVf8kDOLKQ4uzcrHMj/t3889Sqi3Dyw==,1jm0HwRmNFFRMGu/DsVrwIBZc6HyNDSlvDhwQd73f0f3KWVxHo6PdSu4OUr+7GwOAfASKGakwyyetv73463CQw==,es256,+presence 840 + sean:2HY//CedY0ZSrKf57lT7abxG8+8bkPyxCfp/0HMlk/il/5W8pn4R5xLiZDcJtvL85U24h9IEIxa4CS22mpaDSA==,gcD/dpLdwvUFcGGPHS4qNsarH4lOEy1AJAT7zoC6BPlFRUYEa8DpVVKFTcvT6PotjnSHSrWWGb/f3U2k2jIOIw==,es256,+presence 796 841 ''; 797 842 798 843 # Set the state version for Home Manager
+39
hosts/common/wallpapers.nix
··· 1 + # Wallpapers fetched from URLs and placed in ~/Pictures/Wallpapers 2 + # Add entries as { url = "..."; filename = "name.jpg"; } 3 + # Downloads happen at activation time - dead URLs are skipped gracefully. 4 + # Already-downloaded files are not re-fetched. 5 + [ 6 + # Example: 7 + # { 8 + # url = "https://images.unsplash.com/photo-example"; 9 + # filename = "mountain.jpg"; 10 + # } 11 + { 12 + url = "https://w.wallhaven.cc/full/w5/wallhaven-w58mv7.png"; 13 + filename = "rockets.png"; 14 + } 15 + { 16 + url = "https://w.wallhaven.cc/full/e8/wallhaven-e8y51o.png"; 17 + filename = "frieren.png"; 18 + } 19 + { 20 + url = "https://w.wallhaven.cc/full/xe/wallhaven-xe761z.jpg"; 21 + filename = "cigarette.jpg"; 22 + } 23 + { 24 + url = "https://w.wallhaven.cc/full/21/wallhaven-21d8m6.png"; 25 + filename = "monogatari.png"; 26 + } 27 + { 28 + url = "https://w.wallhaven.cc/full/5y/wallhaven-5y57x8.png"; 29 + filename = "vortex.png"; 30 + } 31 + { 32 + url = "https://w.wallhaven.cc/full/5y/wallhaven-5y5537.png"; 33 + filename = "car.png"; 34 + } 35 + { 36 + url = "https://w.wallhaven.cc/full/85/wallhaven-852q62.png"; 37 + filename = "sunset.png"; 38 + } 39 + ]