my nix flake.

update

vt3e.cat dc0f9bc9 e23e071c

verified
+603 -260
+211 -57
flake.lock
··· 30 30 ] 31 31 }, 32 32 "locked": { 33 - "lastModified": 1762452589, 34 - "narHash": "sha256-SZsqazkBxSLsiwup6bj4BcSFNkcP5ficCIa1/H1RKk8=", 33 + "lastModified": 1765990358, 34 + "narHash": "sha256-l8x0gU8mnYaGMl+gWrsSHKBJlZWD8KXJfHTkRlFiPI0=", 35 35 "owner": "catppuccin", 36 36 "repo": "nix", 37 - "rev": "f8268123e66838a903136b85e647069005fb0138", 37 + "rev": "de1b60ca45a578f59f7d84c8d338b346017b2161", 38 38 "type": "github" 39 39 }, 40 40 "original": { ··· 65 65 "type": "github" 66 66 } 67 67 }, 68 - "flake-parts": { 68 + "dgop": { 69 69 "inputs": { 70 - "nixpkgs-lib": "nixpkgs-lib" 70 + "nixpkgs": [ 71 + "nixpkgs" 72 + ] 71 73 }, 72 74 "locked": { 73 - "lastModified": 1762440070, 74 - "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", 75 - "owner": "hercules-ci", 76 - "repo": "flake-parts", 77 - "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", 75 + "lastModified": 1765838956, 76 + "narHash": "sha256-A3a2ZfvjirX8VIdIPI+nAyukWs6vx4vet3fU0mpr7lU=", 77 + "owner": "AvengeMedia", 78 + "repo": "dgop", 79 + "rev": "0ff697a4e3418966caa714c838fc73f1ef6ba59b", 78 80 "type": "github" 79 81 }, 80 82 "original": { 81 - "owner": "hercules-ci", 82 - "repo": "flake-parts", 83 + "owner": "AvengeMedia", 84 + "repo": "dgop", 83 85 "type": "github" 84 86 } 85 87 }, 86 - "flake-utils": { 88 + "dgop_2": { 87 89 "inputs": { 88 - "systems": "systems_3" 90 + "nixpkgs": [ 91 + "dms", 92 + "nixpkgs" 93 + ] 89 94 }, 90 95 "locked": { 91 - "lastModified": 1731533236, 92 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 93 - "owner": "numtide", 94 - "repo": "flake-utils", 95 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 96 + "lastModified": 1762835999, 97 + "narHash": "sha256-UykYGrGFOFTmDpKTLNxj1wvd1gbDG4TkqLNSbV0TYwk=", 98 + "owner": "AvengeMedia", 99 + "repo": "dgop", 100 + "rev": "799301991cd5dcea9b64245f9d500dcc76615653", 96 101 "type": "github" 97 102 }, 98 103 "original": { 99 - "owner": "numtide", 100 - "repo": "flake-utils", 104 + "owner": "AvengeMedia", 105 + "repo": "dgop", 101 106 "type": "github" 102 107 } 103 108 }, 104 - "flake-utils_2": { 109 + "dms": { 110 + "inputs": { 111 + "dgop": "dgop_2", 112 + "nixpkgs": [ 113 + "nixpkgs" 114 + ], 115 + "quickshell": "quickshell" 116 + }, 117 + "locked": { 118 + "lastModified": 1765552734, 119 + "narHash": "sha256-rWjWYu5rs3ZOJ4YJpvIscBZSYu74thJHc0VYyYKJTUc=", 120 + "owner": "AvengeMedia", 121 + "repo": "DankMaterialShell", 122 + "rev": "7fb358bada0d3a229ec5ee6aaad0f9b64f367331", 123 + "type": "github" 124 + }, 125 + "original": { 126 + "owner": "AvengeMedia", 127 + "ref": "stable", 128 + "repo": "DankMaterialShell", 129 + "type": "github" 130 + } 131 + }, 132 + "exo": { 133 + "flake": false, 134 + "locked": { 135 + "lastModified": 1766537293, 136 + "narHash": "sha256-ZkPhwoh3EUNCUFJVQPDmYFEmui6aiGN3NhI9M32qo+Q=", 137 + "owner": "debuggyo", 138 + "repo": "Exo", 139 + "rev": "a8af36423bfafed6201953425efd48f4e2947f82", 140 + "type": "github" 141 + }, 142 + "original": { 143 + "owner": "debuggyo", 144 + "repo": "Exo", 145 + "type": "github" 146 + } 147 + }, 148 + "flake-parts": { 149 + "inputs": { 150 + "nixpkgs-lib": "nixpkgs-lib" 151 + }, 152 + "locked": { 153 + "lastModified": 1765835352, 154 + "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=", 155 + "owner": "hercules-ci", 156 + "repo": "flake-parts", 157 + "rev": "a34fae9c08a15ad73f295041fec82323541400a9", 158 + "type": "github" 159 + }, 160 + "original": { 161 + "owner": "hercules-ci", 162 + "repo": "flake-parts", 163 + "type": "github" 164 + } 165 + }, 166 + "flake-utils": { 105 167 "inputs": { 106 168 "systems": "systems_4" 107 169 }, ··· 147 209 ] 148 210 }, 149 211 "locked": { 150 - "lastModified": 1762458864, 151 - "narHash": "sha256-O8NI0pOf1GxPaBRhyspWZmtXLo0tzEEvOfMxNh3/8Jo=", 212 + "lastModified": 1767048910, 213 + "narHash": "sha256-KLFTeA/xquN+F3XHLAXcserk0L0nijbhzuldxNDF1eE=", 152 214 "owner": "nix-community", 153 215 "repo": "home-manager", 154 - "rev": "f35d0cb75f0669ac8de18d774b336d3d3560bcde", 216 + "rev": "d99b4ca5debaa082c7d76015aa2b7f3fc7e8b5f7", 155 217 "type": "github" 156 218 }, 157 219 "original": { ··· 160 222 "type": "github" 161 223 } 162 224 }, 225 + "ignis": { 226 + "inputs": { 227 + "ignis-gvc": "ignis-gvc", 228 + "nixpkgs": [ 229 + "nixpkgs" 230 + ] 231 + }, 232 + "locked": { 233 + "lastModified": 1762970543, 234 + "narHash": "sha256-7ipFVC9pvI564c22b1dIEzSQ8dZXK3cxh/tF/4tX38c=", 235 + "owner": "ignis-sh", 236 + "repo": "ignis", 237 + "rev": "ba8b0e11c2462afc9fdc30ce6a72b4e94e8ee7c4", 238 + "type": "github" 239 + }, 240 + "original": { 241 + "owner": "ignis-sh", 242 + "repo": "ignis", 243 + "type": "github" 244 + } 245 + }, 246 + "ignis-gvc": { 247 + "inputs": { 248 + "nixpkgs": [ 249 + "ignis", 250 + "nixpkgs" 251 + ] 252 + }, 253 + "locked": { 254 + "lastModified": 1754064086, 255 + "narHash": "sha256-ft5KvY2OYrWF+jEsfBL/Zx8Iuo2C10C6COk8wHwZw34=", 256 + "owner": "ignis-sh", 257 + "repo": "ignis-gvc", 258 + "rev": "f2c9f10d8b49cc38106a2f07a51ea959c6aa4e63", 259 + "type": "github" 260 + }, 261 + "original": { 262 + "owner": "ignis-sh", 263 + "repo": "ignis-gvc", 264 + "type": "github" 265 + } 266 + }, 163 267 "niri": { 164 268 "inputs": { 165 269 "niri-stable": "niri-stable", ··· 172 276 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 173 277 }, 174 278 "locked": { 175 - "lastModified": 1762400608, 176 - "narHash": "sha256-cuT7sRqgERQvvsPgonz+0tu308Yy42nyNxgR2AxllEk=", 279 + "lastModified": 1767006817, 280 + "narHash": "sha256-dQwprSLwnGSX9UG6PzTLydPhpAqhtkoWRj0MZiA1h9k=", 177 281 "owner": "sodiboo", 178 282 "repo": "niri-flake", 179 - "rev": "e8402dc4d8104f8f81fd16d3d743d43d106f2f47", 283 + "rev": "e24815f0bc94b0e7134d8ac31a061f11d1a20524", 180 284 "type": "github" 181 285 }, 182 286 "original": { ··· 205 309 "niri-unstable": { 206 310 "flake": false, 207 311 "locked": { 208 - "lastModified": 1762146685, 209 - "narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=", 312 + "lastModified": 1766751930, 313 + "narHash": "sha256-83/YSW6c58i/iwGzAFApuMy6MCgoIaROeCcoIGh+ViU=", 210 314 "owner": "YaLTeR", 211 315 "repo": "niri", 212 - "rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943", 316 + "rev": "b5640d5293ad8dca06cb447692ea7cbb21680eb1", 213 317 "type": "github" 214 318 }, 215 319 "original": { ··· 220 324 }, 221 325 "nixos-hardware": { 222 326 "locked": { 223 - "lastModified": 1762427122, 224 - "narHash": "sha256-sQJuoiqsaIvKiIOmF/3FDV5dM2TGL2jBv1PeQSt83YE=", 327 + "lastModified": 1766568855, 328 + "narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=", 225 329 "owner": "NixOS", 226 330 "repo": "nixos-hardware", 227 - "rev": "24084931d8098fce300fabea9e48fa96292228d7", 331 + "rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80", 228 332 "type": "github" 229 333 }, 230 334 "original": { ··· 236 340 }, 237 341 "nixpkgs": { 238 342 "locked": { 239 - "lastModified": 1762111121, 240 - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", 343 + "lastModified": 1766902085, 344 + "narHash": "sha256-coBu0ONtFzlwwVBzmjacUQwj3G+lybcZ1oeNSQkgC0M=", 241 345 "owner": "NixOS", 242 346 "repo": "nixpkgs", 243 - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", 347 + "rev": "c0b0e0fddf73fd517c3471e546c0df87a42d53f4", 244 348 "type": "github" 245 349 }, 246 350 "original": { ··· 252 356 }, 253 357 "nixpkgs-lib": { 254 358 "locked": { 255 - "lastModified": 1761765539, 256 - "narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", 359 + "lastModified": 1765674936, 360 + "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=", 257 361 "owner": "nix-community", 258 362 "repo": "nixpkgs.lib", 259 - "rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", 363 + "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85", 260 364 "type": "github" 261 365 }, 262 366 "original": { ··· 267 371 }, 268 372 "nixpkgs-stable": { 269 373 "locked": { 270 - "lastModified": 1762233356, 271 - "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=", 374 + "lastModified": 1766885793, 375 + "narHash": "sha256-P6RVkrM9JLCW6xBjSwHfgTOQ1JwBUma5xe5LI8xAPC0=", 272 376 "owner": "NixOS", 273 377 "repo": "nixpkgs", 274 - "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8", 378 + "rev": "9ef261221d1e72399f2036786498d78c38185c46", 275 379 "type": "github" 276 380 }, 277 381 "original": { 278 382 "owner": "NixOS", 279 - "ref": "nixos-25.05", 383 + "ref": "nixos-25.11", 280 384 "repo": "nixpkgs", 281 385 "type": "github" 282 386 } ··· 311 415 "type": "indirect" 312 416 } 313 417 }, 418 + "quickshell": { 419 + "inputs": { 420 + "nixpkgs": [ 421 + "dms", 422 + "nixpkgs" 423 + ] 424 + }, 425 + "locked": { 426 + "lastModified": 1764663772, 427 + "narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=", 428 + "ref": "refs/heads/master", 429 + "rev": "26531fc46ef17e9365b03770edd3fb9206fcb460", 430 + "revCount": 713, 431 + "type": "git", 432 + "url": "https://git.outfoxxed.me/quickshell/quickshell" 433 + }, 434 + "original": { 435 + "rev": "26531fc46ef17e9365b03770edd3fb9206fcb460", 436 + "type": "git", 437 + "url": "https://git.outfoxxed.me/quickshell/quickshell" 438 + } 439 + }, 314 440 "root": { 315 441 "inputs": { 316 442 "agenix": "agenix", 317 443 "catppuccin": "catppuccin", 444 + "dgop": "dgop", 445 + "dms": "dms", 446 + "exo": "exo", 318 447 "flake-parts": "flake-parts", 319 448 "home-manager": "home-manager_2", 449 + "ignis": "ignis", 320 450 "niri": "niri", 321 451 "nixos-hardware": "nixos-hardware", 322 452 "nixpkgs": "nixpkgs", 323 453 "spicetify-nix": "spicetify-nix", 324 454 "vicinae": "vicinae", 325 - "vscode-server": "vscode-server" 455 + "vscode-server": "vscode-server", 456 + "zen-browser": "zen-browser" 326 457 } 327 458 }, 328 459 "spicetify-nix": { ··· 333 464 "systems": "systems_2" 334 465 }, 335 466 "locked": { 336 - "lastModified": 1762057664, 337 - "narHash": "sha256-mdEEvepIi8ebpGP1WWOHNvNQyd8rF0mUrKAiU6mwHCk=", 467 + "lastModified": 1767031230, 468 + "narHash": "sha256-yJhktUZYp7K1TdeAXweNsOwbTJSuBzKZagq1JnSwnVk=", 338 469 "owner": "Gerg-L", 339 470 "repo": "spicetify-nix", 340 - "rev": "4aa6e43d29e3c8acf544aa6782a1963a11369208", 471 + "rev": "442accd416df2f85ada73937996a95749f9fdeb3", 341 472 "type": "github" 342 473 }, 343 474 "original": { ··· 408 539 }, 409 540 "vicinae": { 410 541 "inputs": { 411 - "flake-utils": "flake-utils", 412 - "nixpkgs": "nixpkgs_2" 542 + "nixpkgs": "nixpkgs_2", 543 + "systems": "systems_3" 413 544 }, 414 545 "locked": { 415 - "lastModified": 1762438376, 416 - "narHash": "sha256-sO8186XCEKI5WRyvJrJOhkEEvhtluNjY5P/TagvuJ40=", 546 + "lastModified": 1766947253, 547 + "narHash": "sha256-bzdD637oY/d23QH7CKbyndBmmTBIM19HsnPtj49xCM0=", 417 548 "owner": "vicinaehq", 418 549 "repo": "vicinae", 419 - "rev": "b36b894a991aa752edb766afc78b5aa020fe7071", 550 + "rev": "68faea42c62862614e071cee329486d907b3641a", 420 551 "type": "github" 421 552 }, 422 553 "original": { ··· 427 558 }, 428 559 "vscode-server": { 429 560 "inputs": { 430 - "flake-utils": "flake-utils_2", 561 + "flake-utils": "flake-utils", 431 562 "nixpkgs": "nixpkgs_3" 432 563 }, 433 564 "locked": { ··· 464 595 "xwayland-satellite-unstable": { 465 596 "flake": false, 466 597 "locked": { 467 - "lastModified": 1762397230, 468 - "narHash": "sha256-PAV8DhLzfo6YwrESrK4ykEj+rUvBYMtbeI0N8SAlsMU=", 598 + "lastModified": 1766429945, 599 + "narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=", 469 600 "owner": "Supreeeme", 470 601 "repo": "xwayland-satellite", 471 - "rev": "56256a1340b771c71a5cfdc881525807edc3fcd2", 602 + "rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e", 472 603 "type": "github" 473 604 }, 474 605 "original": { 475 606 "owner": "Supreeeme", 476 607 "repo": "xwayland-satellite", 608 + "type": "github" 609 + } 610 + }, 611 + "zen-browser": { 612 + "inputs": { 613 + "home-manager": [ 614 + "home-manager" 615 + ], 616 + "nixpkgs": [ 617 + "nixpkgs" 618 + ] 619 + }, 620 + "locked": { 621 + "lastModified": 1766897152, 622 + "narHash": "sha256-mD1GDg1eIHYUwk536j4uJX1IfQArsLQm2SL7rTQwAPI=", 623 + "owner": "0xc000022070", 624 + "repo": "zen-browser-flake", 625 + "rev": "fe8d1a61a904b336f453d7ab5ae7d691a21c5cbf", 626 + "type": "github" 627 + }, 628 + "original": { 629 + "owner": "0xc000022070", 630 + "repo": "zen-browser-flake", 477 631 "type": "github" 478 632 } 479 633 }
+25
flake.nix
··· 34 34 inputs.nixpkgs.follows = "nixpkgs"; 35 35 }; 36 36 37 + exo = { 38 + url = "github:debuggyo/Exo"; 39 + flake = false; 40 + }; 41 + ignis = { 42 + url = "github:ignis-sh/ignis"; 43 + inputs.nixpkgs.follows = "nixpkgs"; 44 + }; 45 + 46 + dgop = { 47 + url = "github:AvengeMedia/dgop"; 48 + inputs.nixpkgs.follows = "nixpkgs"; 49 + }; 50 + dms = { 51 + url = "github:AvengeMedia/DankMaterialShell/stable"; 52 + inputs.nixpkgs.follows = "nixpkgs"; 53 + }; 54 + zen-browser = { 55 + url = "github:0xc000022070/zen-browser-flake"; 56 + inputs = { 57 + nixpkgs.follows = "nixpkgs"; 58 + home-manager.follows = "home-manager"; 59 + }; 60 + }; 61 + 37 62 vicinae.url = "github:vicinaehq/vicinae"; 38 63 vscode-server.url = "github:nix-community/nixos-vscode-server"; 39 64 };
+26
hosts/dahlia/default.nix
··· 50 50 }; 51 51 boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; 52 52 53 + nix.distributedBuilds = true; 54 + 55 + nix.buildMachines = [ 56 + { 57 + hostName = "192.168.1.107"; 58 + system = "x86_64-linux"; 59 + protocol = "ssh-ng"; 60 + sshUser = "willow"; 61 + sshKey = "/etc/nix/id_builder"; 62 + 63 + maxJobs = 20; 64 + speedFactor = 10; 65 + 66 + supportedFeatures = [ 67 + "nixos-test" 68 + "benchmark" 69 + "big-parallel" 70 + "kvm" 71 + ]; 72 + } 73 + ]; 74 + 75 + nix.extraOptions = '' 76 + builders-use-substitutes = true 77 + ''; 78 + 53 79 networking = { 54 80 networkmanager.enable = true; 55 81 hostName = "dahlia";
+1
hosts/dahlia/services.nix
··· 3 3 { 4 4 services.blueman.enable = true; 5 5 hardware.bluetooth.enable = true; 6 + networking.networkmanager.enable = true; 6 7 7 8 services.gvfs.enable = true; 8 9 services.desktopManager.gnome.enable = true;
+1 -1
hosts/default.nix
··· 42 42 ./ivy 43 43 ./ivy/_hware-config.nix 44 44 inputs.home-manager.nixosModules.home-manager 45 - inputs.vscode-server.nixosModules.default 45 + inputs.vscode-server.nixosModules.default 46 46 ]; 47 47 specialArgs = { 48 48 inherit inputs;
-13
logs
··· 1 - willow@dahlia ~/M/t/pano> cat pano-scrobbler.desktop 2 - [Desktop Entry] 3 - Type=Application 4 - Name=Pano Scrobbler 5 - Comment=Feature packed music tracker 6 - StartupWMClass=pano-scrobbler 7 - Exec= 8 - Icon= 9 - Categories=AudioVideo;Audio; 10 - Terminal=false 11 - StartupNotify=true 12 - NoDisplay=false 13 - willow@dahlia ~/M/t/pano>
+51 -20
user/apps/zed.nix
··· 4 4 ... 5 5 }: 6 6 7 - let 8 - zed = pkgs.callPackage ../packages/zed-editor.nix { }; 9 - in 10 7 { 8 + home.packages = with pkgs; [ 9 + zed-editor-fhs 10 + ]; 11 + 11 12 programs.zed-editor = { 12 13 enable = true; 13 - package = zed; 14 + package = pkgs.zed-editor-fhs; 14 15 15 16 extensions = [ 16 17 "html" 17 - "biome" 18 18 "toml" 19 19 "vue" 20 20 "scss" ··· 23 23 ]; 24 24 25 25 userSettings = { 26 + auto_update = false; 26 27 format_on_save = "on"; 28 + 29 + collaboration_panel.button = false; 30 + git.inline_blame.show_commit_summary = true; 31 + 27 32 theme = { 28 33 mode = "system"; 29 34 light = lib.mkForce "Catppuccin Latte"; 30 35 }; 31 36 37 + ui_font_family = "Maple Mono NF"; 38 + buffer_font_family = "Maple Mono NF"; 39 + buffer_font_size = 12; 40 + 41 + features.edit_prediction_provider = "copilot"; 42 + edit_predictions.mode = "subtle"; 43 + 44 + language_models = { 45 + openai_compatible = { 46 + "z.ai" = { 47 + api_url = "https://api.z.ai/api/coding/paas/v4"; 48 + available_models = [ 49 + { 50 + "display_name" = "GLM-4.7"; 51 + "name" = "glm-4.7"; 52 + "max_tokens" = 200000; 53 + } 54 + { 55 + "display_name" = "GLM-4.6"; 56 + "name" = "glm-4.6"; 57 + "max_tokens" = 200000; 58 + } 59 + { 60 + "display_name" = "GLM-4.5"; 61 + "name" = "glm-4.5"; 62 + "max_tokens" = 200000; 63 + } 64 + { 65 + "display_name" = "GLM-4.5 Air"; 66 + "name" = "glm-4.5-air"; 67 + "max_tokens" = 200000; 68 + } 69 + ]; 70 + }; 71 + }; 72 + }; 73 + 32 74 agent = { 33 - model_parameters = [ ]; 75 + use_modifier_to_send = true; 76 + default_profile = "ask"; 34 77 default_model = { 35 - provider = "copilot_chat"; 36 - model = "claude-sonnet-4"; 78 + model = "glm-4.5-air"; 79 + provider = "z.ai"; 37 80 }; 38 - version = "2"; 39 81 }; 40 - 41 - features = { 42 - edit_prediction_provider = "copilot"; 43 - }; 44 - 45 - auto_update = false; 46 - collaboration_panel.button = false; 47 - 48 - ui_font_family = "Maple Mono NF"; 49 - buffer_font_family = "Maple Mono NF"; 50 - buffer_font_size = 12; 51 82 52 83 languages = { 53 84 Nix.formatter.external = {
+3
user/desktop/config/colors.scss
··· 1 + <* for name, value in colors *> 2 + ${{name}}: {{value.default.hex}}; 3 + <* endfor *>
+75
user/desktop/config/user_settings.json
··· 1 + { 2 + "appearance": { 3 + "wallcolors": { 4 + "wallpaper_path": "/home/willow/Pictures/Wallpapers/bloom-into-you/002.webp", 5 + "color_scheme": "content", 6 + "quickselect_path": "/home/willow/Pictures/Wallpapers/bloom-into-you", 7 + "dark_mode": true, 8 + "auto_dark": { 9 + "end_hour": 5, 10 + "enabled": true, 11 + "start_hour": 20.0 12 + } 13 + } 14 + }, 15 + "interface": { 16 + "modules": { 17 + "location": { 18 + "workspaces": 0, 19 + "media": 1, 20 + "window_info": 0, 21 + "tasks": 1, 22 + "recording_indicator": 2, 23 + "systeminfotray": 2 24 + }, 25 + "visibility": { 26 + "window_info": true, 27 + "tasks": false, 28 + "launcher": false 29 + }, 30 + "bar_id": { 31 + "workspaces": 0, 32 + "tasks": 0 33 + }, 34 + "options": { 35 + "military_time": true, 36 + "day_month_swapped": true, 37 + "workspaces_style": "numbers", 38 + "fixed_workspaces_enabled": true, 39 + "show_date": true 40 + } 41 + }, 42 + "bar": { 43 + "floating": true, 44 + "side": "bottom", 45 + "vertical": false, 46 + "separation": true, 47 + "centered": false, 48 + "module_backgrounds": false, 49 + "bar_background": true, 50 + "density": 0 51 + }, 52 + "bar2": { 53 + "enabled": false, 54 + "floating": false, 55 + "side": "top", 56 + "vertical": false, 57 + "density": 1 58 + }, 59 + "notifications": { 60 + "anchor": ["bottom", "right"], 61 + "compact_popup": true 62 + }, 63 + "launcher": {}, 64 + "misc": { 65 + "shell_corners": true, 66 + "screen_corners": "always" 67 + } 68 + }, 69 + "services": { 70 + "recorder": {}, 71 + "osd": { 72 + "vertical": true 73 + } 74 + } 75 + }
+21
user/desktop/dank.nix
··· 1 + { ... }: 2 + { 3 + programs.dankMaterialShell = { 4 + enable = true; 5 + 6 + systemd = { 7 + enable = true; 8 + restartIfChanged = true; 9 + }; 10 + 11 + enableSystemMonitoring = true; 12 + enableClipboard = true; 13 + enableVPN = true; 14 + enableBrightnessControl = true; 15 + enableColorPicker = true; 16 + enableDynamicTheming = true; 17 + enableAudioWavelength = true; 18 + enableCalendarEvents = true; 19 + enableSystemSound = true; 20 + }; 21 + }
+11 -2
user/desktop/default.nix
··· 5 5 ./waybar 6 6 ./niri 7 7 ./rofi.nix 8 - ./theme-service.nix 9 8 ./wallpaper.nix 10 9 ./swaync.nix 10 + ./dank.nix 11 + ./ignis.nix 11 12 ]; 12 13 13 14 services.vicinae = { 14 15 enable = true; 15 - autoStart = true; 16 + systemd = { 17 + enable = true; 18 + autoStart = true; 19 + environment = { 20 + USE_LAYER_SHELL = 1; 21 + }; 22 + }; 23 + 16 24 settings = { 17 25 faviconService = "twenty"; 18 26 font.size = 11; ··· 25 33 }; 26 34 }; 27 35 36 + programs.zen-browser.enable = true; 28 37 home.packages = with pkgs; [ 29 38 droidcam 30 39 ];
+68
user/desktop/ignis.nix
··· 1 + { 2 + inputs, 3 + lib, 4 + pkgs, 5 + config, 6 + ... 7 + }: 8 + let 9 + userSettingsDir = pkgs.runCommand "ignis-user-settings-overlay" { } '' 10 + mkdir -p $out 11 + 12 + cp ${./config/user_settings.json} $out/user_settings.json 13 + cp ${./config/colors.scss} $out/colors.scss 14 + mkdir -p $out/styles 15 + cp ${inputs.exo}/exodefaults/preview-colors.scss $out/styles/preview-colors.scss 16 + ''; 17 + 18 + mergedIgnisConfig = pkgs.symlinkJoin { 19 + name = "ignis-config-merged"; 20 + paths = [ 21 + "${inputs.exo}/ignis" 22 + userSettingsDir 23 + ]; 24 + }; 25 + in 26 + { 27 + programs.ignis = { 28 + enable = true; 29 + services = { 30 + bluetooth.enable = true; 31 + recorder.enable = true; 32 + audio.enable = true; 33 + network.enable = true; 34 + }; 35 + sass = { 36 + enable = true; 37 + useDartSass = true; 38 + }; 39 + }; 40 + 41 + home.packages = with pkgs; [ 42 + networkmanager 43 + gnome-bluetooth 44 + dart-sass 45 + matugen 46 + material-symbols 47 + ]; 48 + 49 + home.file.".config/matugen".source = "${inputs.exo}/matugen"; 50 + 51 + home.activation.installIgnisConfig = lib.hm.dag.entryAfter [ "writeBoundary" ] '' 52 + IGNIS_CONFIG="${config.home.homeDirectory}/.config/ignis" 53 + 54 + if [ -L "$IGNIS_CONFIG" ]; then 55 + rm "$IGNIS_CONFIG" 56 + elif [ -d "$IGNIS_CONFIG" ]; then 57 + rm -rf "$IGNIS_CONFIG" 58 + fi 59 + 60 + mkdir -p "$IGNIS_CONFIG" 61 + cp -Lr "${mergedIgnisConfig}/." "$IGNIS_CONFIG/" 62 + chmod -R u+w "$IGNIS_CONFIG" 63 + ''; 64 + 65 + home.sessionVariables = { 66 + PYTHONDONTWRITEBYTECODE = "1"; 67 + }; 68 + }
+13 -7
user/desktop/niri/default.nix
··· 98 98 "-r" 99 99 ]; 100 100 } 101 - { command = [ "firefox" ]; } 101 + { command = [ "zen-twilight" ]; } 102 102 { command = [ "vesktop" ]; } 103 103 { command = [ "thunderbird" ]; } 104 104 { command = [ "foot" ]; } 105 105 { 106 106 command = [ 107 - "youtube-music" 107 + "pear-desktop" 108 108 ]; 109 109 } 110 110 { command = [ "zeditor" ]; } ··· 112 112 ]; 113 113 114 114 layout = { 115 - gaps = 4; 115 + gaps = 5; 116 + struts = { 117 + top = 5.00; 118 + bottom = 5.00; 119 + left = 5.00; 120 + right = 5.00; 121 + }; 116 122 border = { 117 123 enable = true; 118 124 width = 1; ··· 213 219 window-rules = [ 214 220 { 215 221 geometry-corner-radius = { 216 - top-left = 8.0; 217 - top-right = 8.0; 218 - bottom-left = 8.0; 219 - bottom-right = 8.0; 222 + top-left = 20.00; 223 + top-right = 20.00; 224 + bottom-left = 20.00; 225 + bottom-right = 20.00; 220 226 }; 221 227 clip-to-geometry = true; 222 228 }
-89
user/desktop/pano-scrobber.nix
··· 1 - { pkgs ? import <nixpkgs> {} 2 - , src ? . 3 - , jdk ? pkgs.openjdk17 4 - }: 5 - 6 - let 7 - lib = pkgs.lib; 8 - cleanedSrc = lib.cleanSource src; 9 - in 10 - 11 - pkgs.stdenv.mkDerivation rec { 12 - pname = "scrobble-desktop"; 13 - version = "0.1.0"; 14 - 15 - inherit cleanedSrc as src; 16 - 17 - # Tools needed for building and packaging 18 - nativeBuildInputs = [ 19 - pkgs.unzip 20 - pkgs.zip 21 - pkgs.gnumake 22 - pkgs.pkg-config 23 - pkgs.coreutils 24 - pkgs.git 25 - # If you want to create Windows installers via nsis, add pkgs.nsis here 26 - # pkgs.nsis 27 - ]; 28 - 29 - buildInputs = [ 30 - jdk 31 - ]; 32 - 33 - # Avoid running any distro tests shipped in the project 34 - doCheck = false; 35 - 36 - # Ensure reproducible-ish output 37 - SOURCE_DATE_EPOCH = "1600000000"; 38 - 39 - # build phase: use the gradle wrapper from the repo 40 - buildPhase = '' 41 - export JAVA_HOME=${jdk} 42 - export PATH="$JAVA_HOME/bin:$PATH" 43 - 44 - cd composeApp 45 - chmod +x ./gradlew 46 - 47 - ./gradlew --no-daemon packageUberJarForCurrentOS --stacktrace 48 - # ./gradlew --no-daemon packageUberJarForCurrentOS -x nativeImageTaskName 49 - ''; 50 - 51 - installPhase = '' 52 - mkdir -p $out 53 - 54 - # Copy the full gradle compose build directory so you can inspect outputs 55 - if [ -d composeApp/build ]; then 56 - cp -ra composeApp/build $out/build 57 - fi 58 - 59 - # Common produced artifacts live under various places; try a few likely ones: 60 - for p in \ 61 - composeApp/build/composeApp/outputs \ 62 - composeApp/build/libs \ 63 - composeApp/build/composeDesktop/* \ 64 - composeApp/build/* ; do 65 - if [ -e "$p" ]; then 66 - cp -ra "$p" $out/ || true 67 - fi 68 - done 69 - 70 - # If the Gradle task produced a distribution zip for the current OS, move it to $out 71 - find composeApp -type f \( -name '*uber*' -o -name '*.zip' -o -name '*.jar' \) -print -maxdepth 5 | while read f; do 72 - cp -a "$f" "$out/$(basename "$f")" || true 73 - done 74 - 75 - # Provide a simple wrapper to run the jar if found: 76 - if [ -f "$out"/*.jar ]; then 77 - echo "#!/bin/sh" > $out/run.sh 78 - echo "exec \"$JAVA_HOME/bin/java\" -jar \"\$0\" \"\$@\"" >> $out/run.sh 79 - chmod +x $out/run.sh || true 80 - fi 81 - ''; 82 - 83 - meta = with lib; { 84 - description = "Builds the Scrobble Compose desktop distribution (desktop package / uberjar)"; 85 - license = licenses.mit; # adjust to actual license 86 - maintainers = [ ]; 87 - platforms = platforms.unix; # Linux/macOS 88 - }; 89 - }
+7 -1
user/desktop/swaync.nix
··· 3 3 home.packages = with pkgs; [ 4 4 swaynotificationcenter 5 5 libnotify 6 + adw-gtk3 7 + gnome-themes-extra 8 + libadwaita 6 9 ]; 7 - services.swaync.package = pkgs.swaynotificationcenter; 10 + services.swaync = { 11 + enable = false; 12 + package = pkgs.swaynotificationcenter; 13 + }; 8 14 }
-37
user/desktop/theme-service.nix
··· 1 - { config, ... }: 2 - 3 - { 4 - systemd.user.services.theme-switch-day = { 5 - Unit.description = "switch to day theme"; 6 - Install.wantedBy = [ "default.target" ]; 7 - serviceConfig = { 8 - Type = "oneshot"; 9 - ExecStart = "${config.home.homeDirectory}/.local/bin/_toggle-theme day"; 10 - }; 11 - }; 12 - 13 - systemd.user.timers.theme-switch-day = { 14 - Install.wantedBy = [ "timers.target" ]; 15 - timerConfig = { 16 - OnCalendar = "07:00"; 17 - Persistent = "true"; 18 - }; 19 - }; 20 - 21 - systemd.user.services.theme-switch-night = { 22 - Unit.description = "switch to night theme"; 23 - Install.wantedBy = [ "default.target" ]; 24 - serviceConfig = { 25 - Type = "oneshot"; 26 - ExecStart = "${config.home.homeDirectory}/.local/bin/_toggle-theme night"; 27 - }; 28 - }; 29 - 30 - systemd.user.timers.theme-switch-night = { 31 - Install.wantedBy = [ "timers.target" ]; 32 - timerConfig = { 33 - OnCalendar = "19:00"; 34 - Persistent = "true"; 35 - }; 36 - }; 37 - }
+38 -2
user/desktop/wallpaper.nix
··· 1 - { ... }: 1 + { pkgs, ... }: 2 + 3 + let 4 + rawWallpapers = ../../assets/wallpapers; 5 + 6 + pngWallpapers = 7 + pkgs.runCommand "wallpapers-png" 8 + { 9 + nativeBuildInputs = [ 10 + pkgs.imagemagick 11 + pkgs.findutils 12 + ]; 13 + } 14 + '' 15 + mkdir -p $out 16 + mkdir -p $out/_flattened 17 + 18 + cd ${rawWallpapers} 19 + 20 + find . -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.webp" -o -iname "*.png" \) -print0 | while IFS= read -r -d "" file; do 21 + relPath="''${file#./}" 22 + basePath="''${relPath%.*}" 23 + 24 + dirPath=$(dirname "$relPath") 25 + mkdir -p "$out/$dirPath" 26 + 27 + structuredOutput="$out/$basePath.png" 28 + 29 + flatName="''${basePath//\//_}.png" 30 + flatOutput="$out/_flattened/$flatName" 31 + 32 + echo "converting $relPath..." 33 + magick "$file" "$structuredOutput" 34 + cp "$structuredOutput" "$flatOutput" 35 + done 36 + ''; 37 + in 2 38 { 3 - home.file."Pictures/Wallpapers".source = ../../assets/wallpapers; 39 + home.file."Pictures/Wallpapers".source = pngWallpapers; 4 40 }
+28 -20
user/home.nix
··· 2 2 hostname, 3 3 pkgs, 4 4 lib, 5 + config, 5 6 inputs, 6 7 ... 7 8 }: ··· 22 23 ./ctp.nix 23 24 ./desktop 24 25 inputs.vicinae.homeManagerModules.default 26 + inputs.ignis.homeManagerModules.default 27 + inputs.dms.homeModules.dankMaterialShell.default 28 + inputs.zen-browser.homeModules.twilight-official 25 29 ] 26 30 else 27 31 [ ] ··· 39 43 size = 24; 40 44 x11 = { 41 45 enable = true; 42 - defaultCursor = "Adwaita"; 46 + defaultCursor = pkgs.bibata-cursors; 43 47 }; 44 48 }; 45 49 sessionVariables = lib.mkIf isDesktop { ··· 50 54 file.".ssh/allowed_signers".text = '' 51 55 willow ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPWD6wk95qNhk/36vEH34qIRp/TPCcQ+D+u5Xd9/N0m1 52 56 ''; 57 + 53 58 }; 54 59 55 60 dconf.settings = lib.mkIf isDesktop { ··· 74 79 }; 75 80 }; 76 81 77 - # xdg = { 78 - # enable = true; 79 - # portal.config = { 80 - # niri = { 81 - # default = [ 82 - # "gnome" 83 - # "gtk" 84 - # ]; 85 - # "org.freedesktop.impl.portal.FileChooser" = [ "gnome" ]; 86 - # }; 87 - # common = { 88 - # default = [ 89 - # "gnome" 90 - # "gtk" 91 - # ]; 92 - # "org.freedesktop.impl.portal.FileChooser" = [ "gnome" ]; 93 - # }; 94 - # }; 95 - # }; 82 + programs.ssh = { 83 + enable = true; 84 + }; 85 + programs.ssh.enableDefaultConfig = false; 86 + home.activation.writeSSHConfig = lib.hm.dag.entryAfter [ "writeBoundary" ] '' 87 + rm -f $HOME/.ssh/config 88 + cat > $HOME/.ssh/config <<EOF 89 + Host tangled-handle 90 + IdentitiesOnly yes 91 + User git 92 + HostName tangled.sh 93 + IdentityFile ~/.ssh/id_ed25519_handle 94 + 95 + Host tangled.sh 96 + IdentitiesOnly yes 97 + User git 98 + HostName tangled.sh 99 + IdentityFile ~/.ssh/id_ed25519 100 + EOF 101 + chmod 600 $HOME/.ssh/config 102 + ''; 103 + 96 104 fonts.fontconfig.enable = true; 97 105 }
+3 -2
user/packages/default.nix
··· 10 10 11 11 home.packages = with pkgs; [ 12 12 (pkgs.callPackage ./helium.nix { }) 13 - (pkgs.callPackage ./zen-browser.nix { }) 13 + # (pkgs.callPackage ./zen-browser.nix { }) 14 14 (pkgs.callPackage ./pano-scrobbler.nix { }) 15 15 (runCommandLocal "nautilus-portal" { } '' 16 16 mkdir -p $out/share/xdg-desktop-portal/portals ··· 20 20 Interfaces=org.freedesktop.impl.portal.FileChooser 21 21 EOF 22 22 '') 23 + signal-desktop 23 24 typespec 24 25 zellij 25 26 dmenu ··· 30 31 qtscrcpy 31 32 customScrcpy 32 33 appimage-run 33 - youtube-music 34 + pear-desktop 34 35 35 36 quickemu 36 37 grim
+2 -2
user/packages/zed-editor.nix
··· 14 14 15 15 stdenv.mkDerivation rec { 16 16 pname = "zeditor"; 17 - version = "0.207.4"; 17 + version = "0.217.3"; 18 18 19 19 src = fetchurl { 20 20 url = "https://github.com/zed-industries/zed/releases/download/v${version}/zed-linux-x86_64.tar.gz"; 21 - sha256 = "sha256-maCJcN10gstetNdD4E8qxmlI5btgHhhKCpDCP5FV6xw="; 21 + sha256 = "sha256-IRT+sWIraOvoZ12XPU8LR3XJZ83Fpvv8X3NTPwUDOO0="; 22 22 }; 23 23 24 24 nativeBuildInputs = [ makeWrapper ];
+19 -7
user/programs/git.nix
··· 8 8 enable = true; 9 9 10 10 settings = { 11 - difftastic.enable = true; 12 - user = { 13 - email = "hai@wlo.moe"; 14 - name = "willow"; 15 - }; 16 - 17 11 gpg.format = "ssh"; 18 12 gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; 19 13 init.defaultBranch = "main"; 20 14 rebase.autostash = true; 21 15 push.autoSetupRemote = true; 22 16 pull.rebase = true; 17 + 18 + user = { 19 + email = "v@vt3e.cat"; 20 + name = "vi"; 21 + }; 23 22 }; 24 23 25 24 signing = { 26 - key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPWD6wk95qNhk/36vEH34qIRp/TPCcQ+D+u5Xd9/N0m1 hai@wlo.moe"; 25 + key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICbBhjcuU3Q/+AjDgk3uQO5z9aoZPIEguphJKEESTugj v@vt3e.cat"; 27 26 signByDefault = true; 28 27 }; 28 + 29 + includes = [ 30 + { 31 + condition = "gitdir:~/Me/handle/"; 32 + contents = { 33 + user = { 34 + name = "handle"; 35 + signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEimZGd/E3LCFiahkkruLpW4hbsOOwrqlD43+NjjOoCh did:plc:73gqgbnvpx5syidcponjrics"; 36 + email = "did:plc:73gqgbnvpx5syidcponjrics"; 37 + }; 38 + }; 39 + } 40 + ]; 29 41 }; 30 42 31 43 programs.gh = {