| author | |
| committer | |
| log | fa74ed1f5790f39b336d899857206e47c31160cb |
| tree | 78d0cf9c94098d24a8bf844facaf447ed4a32188 |
| parent | 6188561b16c8653053cf504aeae3e9411eb3050e |
| parent | 4ce547cd1090c98735622fc88e72ab9bf7e34b5a |
| signature | Commit is signed but in an unrecognized format. |
43 files changed, 2791 insertions(+), 277 deletions(-)
flake.lock+675-100| ... | ... | @@ -9,11 +9,11 @@ |
| 9 | 9 | ] |
| 10 | 10 | }, |
| 11 | 11 | "locked": { |
| 12 | "lastModified": 1755807717, | |
| 13 | "narHash": "sha256-x/IcOa+p9VFYlwXmuNhbZ8ce9As24rqy6uABv+tKacU=", | |
| 12 | "lastModified": 1767990299, | |
| 13 | "narHash": "sha256-Jz+cp9Ln4++1XiKw9KvZEM2dJ9AdOvayk97ybi9g7zc=", | |
| 14 | 14 | "owner": "tadfisher", |
| 15 | 15 | "repo": "android-nixpkgs", |
| 16 | "rev": "4316f29f7f3b34c41f2639ae190022fbed60b850", | |
| 16 | "rev": "449f2cadee7cb7b665aea209a67f8ecf30176653", | |
| 17 | 17 | "type": "github" |
| 18 | 18 | }, |
| 19 | 19 | "original": { |
| ... | ... | @@ -38,11 +38,11 @@ |
| 38 | 38 | "sf-pro": "sf-pro" |
| 39 | 39 | }, |
| 40 | 40 | "locked": { |
| 41 | "lastModified": 1752383772, | |
| 42 | "narHash": "sha256-I5Y0gUJS85lGEuuKr+tKSRUpJWeKavE+WmiAHRcyBaU=", | |
| 41 | "lastModified": 1758228441, | |
| 42 | "narHash": "sha256-3mA9oFuhJ1EHyhPd17g/EuJi4jDYPGhyxkEitdh3Kmc=", | |
| 43 | 43 | "owner": "Lyndeno", |
| 44 | 44 | "repo": "apple-fonts.nix", |
| 45 | "rev": "875c694d7f0ec2020d7511264907a1f0e3262931", | |
| 45 | "rev": "aba9944f6606a69ebedf7bfb723316139eec3f72", | |
| 46 | 46 | "type": "github" |
| 47 | 47 | }, |
| 48 | 48 | "original": { |
| ... | ... | @@ -51,6 +51,39 @@ |
| 51 | 51 | "type": "github" |
| 52 | 52 | } |
| 53 | 53 | }, |
| 54 | "aquamarine": { | |
| 55 | "inputs": { | |
| 56 | "hyprutils": [ | |
| 57 | "hyprland", | |
| 58 | "hyprutils" | |
| 59 | ], | |
| 60 | "hyprwayland-scanner": [ | |
| 61 | "hyprland", | |
| 62 | "hyprwayland-scanner" | |
| 63 | ], | |
| 64 | "nixpkgs": [ | |
| 65 | "hyprland", | |
| 66 | "nixpkgs" | |
| 67 | ], | |
| 68 | "systems": [ | |
| 69 | "hyprland", | |
| 70 | "systems" | |
| 71 | ] | |
| 72 | }, | |
| 73 | "locked": { | |
| 74 | "lastModified": 1767024902, | |
| 75 | "narHash": "sha256-sMdk6QkMDhIOnvULXKUM8WW8iyi551SWw2i6KQHbrrU=", | |
| 76 | "owner": "hyprwm", | |
| 77 | "repo": "aquamarine", | |
| 78 | "rev": "b8a0c5ba5a9fbd2c660be7dd98bdde0ff3798556", | |
| 79 | "type": "github" | |
| 80 | }, | |
| 81 | "original": { | |
| 82 | "owner": "hyprwm", | |
| 83 | "repo": "aquamarine", | |
| 84 | "type": "github" | |
| 85 | } | |
| 86 | }, | |
| 54 | 87 | "darwin": { |
| 55 | 88 | "inputs": { |
| 56 | 89 | "nixpkgs": [ |
| ... | ... | @@ -58,11 +91,11 @@ |
| 58 | 91 | ] |
| 59 | 92 | }, |
| 60 | 93 | "locked": { |
| 61 | "lastModified": 1755825449, | |
| 62 | "narHash": "sha256-XkiN4NM9Xdy59h69Pc+Vg4PxkSm9EWl6u7k6D5FZ5cM=", | |
| 94 | "lastModified": 1767718503, | |
| 95 | "narHash": "sha256-V+VkFs0aSG0ca8p/N3gib7FAf4cq9jyr5Gm+ZBrHQpo=", | |
| 63 | 96 | "owner": "lnl7", |
| 64 | 97 | "repo": "nix-darwin", |
| 65 | "rev": "8df64f819698c1fee0c2969696f54a843b2231e8", | |
| 98 | "rev": "9f48ffaca1f44b3e590976b4da8666a9e86e6eb1", | |
| 66 | 99 | "type": "github" |
| 67 | 100 | }, |
| 68 | 101 | "original": { |
| ... | ... | @@ -80,11 +113,11 @@ |
| 80 | 113 | ] |
| 81 | 114 | }, |
| 82 | 115 | "locked": { |
| 83 | "lastModified": 1741473158, | |
| 84 | "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", | |
| 116 | "lastModified": 1764011051, | |
| 117 | "narHash": "sha256-M7SZyPZiqZUR/EiiBJnmyUbOi5oE/03tCeFrTiUZchI=", | |
| 85 | 118 | "owner": "numtide", |
| 86 | 119 | "repo": "devshell", |
| 87 | "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", | |
| 120 | "rev": "17ed8d9744ebe70424659b0ef74ad6d41fc87071", | |
| 88 | 121 | "type": "github" |
| 89 | 122 | }, |
| 90 | 123 | "original": { |
| ... | ... | @@ -94,6 +127,22 @@ |
| 94 | 127 | } |
| 95 | 128 | }, |
| 96 | 129 | "flake-compat": { |
| 130 | "flake": false, | |
| 131 | "locked": { | |
| 132 | "lastModified": 1767039857, | |
| 133 | "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", | |
| 134 | "owner": "NixOS", | |
| 135 | "repo": "flake-compat", | |
| 136 | "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", | |
| 137 | "type": "github" | |
| 138 | }, | |
| 139 | "original": { | |
| 140 | "owner": "NixOS", | |
| 141 | "repo": "flake-compat", | |
| 142 | "type": "github" | |
| 143 | } | |
| 144 | }, | |
| 145 | "flake-compat_2": { | |
| 97 | 146 | "flake": false, |
| 98 | 147 | "locked": { |
| 99 | 148 | "lastModified": 1751685974, |
| ... | ... | @@ -109,7 +158,7 @@ |
| 109 | 158 | "url": "https://git.lix.systems/lix-project/flake-compat.git" |
| 110 | 159 | } |
| 111 | 160 | }, |
| 112 | "flake-compat_2": { | |
| 161 | "flake-compat_3": { | |
| 113 | 162 | "flake": false, |
| 114 | 163 | "locked": { |
| 115 | 164 | "lastModified": 1696426674, |
| ... | ... | @@ -125,7 +174,7 @@ |
| 125 | 174 | "type": "github" |
| 126 | 175 | } |
| 127 | 176 | }, |
| 128 | "flake-compat_3": { | |
| 177 | "flake-compat_4": { | |
| 129 | 178 | "flake": false, |
| 130 | 179 | "locked": { |
| 131 | 180 | "lastModified": 1696426674, |
| ... | ... | @@ -149,11 +198,11 @@ |
| 149 | 198 | ] |
| 150 | 199 | }, |
| 151 | 200 | "locked": { |
| 152 | "lastModified": 1754487366, | |
| 153 | "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", | |
| 201 | "lastModified": 1760948891, | |
| 202 | "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", | |
| 154 | 203 | "owner": "hercules-ci", |
| 155 | 204 | "repo": "flake-parts", |
| 156 | "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", | |
| 205 | "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", | |
| 157 | 206 | "type": "github" |
| 158 | 207 | }, |
| 159 | 208 | "original": { |
| ... | ... | @@ -181,24 +230,6 @@ |
| 181 | 230 | } |
| 182 | 231 | }, |
| 183 | 232 | "flake-utils_2": { |
| 184 | "inputs": { | |
| 185 | "systems": "systems_2" | |
| 186 | }, | |
| 187 | "locked": { | |
| 188 | "lastModified": 1701680307, | |
| 189 | "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", | |
| 190 | "owner": "numtide", | |
| 191 | "repo": "flake-utils", | |
| 192 | "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", | |
| 193 | "type": "github" | |
| 194 | }, | |
| 195 | "original": { | |
| 196 | "owner": "numtide", | |
| 197 | "repo": "flake-utils", | |
| 198 | "type": "github" | |
| 199 | } | |
| 200 | }, | |
| 201 | "flake-utils_3": { | |
| 202 | 233 | "inputs": { |
| 203 | 234 | "systems": "systems_3" |
| 204 | 235 | }, |
| ... | ... | @@ -216,9 +247,9 @@ |
| 216 | 247 | "type": "github" |
| 217 | 248 | } |
| 218 | 249 | }, |
| 219 | "flake-utils_4": { | |
| 250 | "flake-utils_3": { | |
| 220 | 251 | "inputs": { |
| 221 | "systems": "systems_5" | |
| 252 | "systems": "systems_6" | |
| 222 | 253 | }, |
| 223 | 254 | "locked": { |
| 224 | 255 | "lastModified": 1705309234, |
| ... | ... | @@ -234,9 +265,9 @@ |
| 234 | 265 | "type": "github" |
| 235 | 266 | } |
| 236 | 267 | }, |
| 237 | "flake-utils_5": { | |
| 268 | "flake-utils_4": { | |
| 238 | 269 | "inputs": { |
| 239 | "systems": "systems_6" | |
| 270 | "systems": "systems_7" | |
| 240 | 271 | }, |
| 241 | 272 | "locked": { |
| 242 | 273 | "lastModified": 1710146030, |
| ... | ... | @@ -252,9 +283,9 @@ |
| 252 | 283 | "type": "github" |
| 253 | 284 | } |
| 254 | 285 | }, |
| 255 | "flake-utils_6": { | |
| 286 | "flake-utils_5": { | |
| 256 | 287 | "inputs": { |
| 257 | "systems": "systems_7" | |
| 288 | "systems": "systems_8" | |
| 258 | 289 | }, |
| 259 | 290 | "locked": { |
| 260 | 291 | "lastModified": 1705309234, |
| ... | ... | @@ -271,7 +302,13 @@ |
| 271 | 302 | } |
| 272 | 303 | }, |
| 273 | 304 | "gitignore": { |
| 274 | "flake": false, | |
| 305 | "inputs": { | |
| 306 | "nixpkgs": [ | |
| 307 | "hyprland", | |
| 308 | "pre-commit-hooks", | |
| 309 | "nixpkgs" | |
| 310 | ] | |
| 311 | }, | |
| 275 | 312 | "locked": { |
| 276 | 313 | "lastModified": 1709087332, |
| 277 | 314 | "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", |
| ... | ... | @@ -287,6 +324,22 @@ |
| 287 | 324 | } |
| 288 | 325 | }, |
| 289 | 326 | "gitignore_2": { |
| 327 | "flake": false, | |
| 328 | "locked": { | |
| 329 | "lastModified": 1762808025, | |
| 330 | "narHash": "sha256-XmjITeZNMTQXGhhww6ed/Wacy2KzD6svioyCX7pkUu4=", | |
| 331 | "owner": "hercules-ci", | |
| 332 | "repo": "gitignore.nix", | |
| 333 | "rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c", | |
| 334 | "type": "github" | |
| 335 | }, | |
| 336 | "original": { | |
| 337 | "owner": "hercules-ci", | |
| 338 | "repo": "gitignore.nix", | |
| 339 | "type": "github" | |
| 340 | } | |
| 341 | }, | |
| 342 | "gitignore_3": { | |
| 290 | 343 | "inputs": { |
| 291 | 344 | "nixpkgs": [ |
| 292 | 345 | "zls", |
| ... | ... | @@ -314,11 +367,11 @@ |
| 314 | 367 | ] |
| 315 | 368 | }, |
| 316 | 369 | "locked": { |
| 317 | "lastModified": 1755810213, | |
| 318 | "narHash": "sha256-QdenO8f0PTg+tC6HuSvngKcbRZA5oZKmjUT+MXKOLQg=", | |
| 370 | "lastModified": 1768018810, | |
| 371 | "narHash": "sha256-WREj1ZQ2wSGtyPAhQJ3SX/7PJ29PNKv04h/7NgqUS+M=", | |
| 319 | 372 | "owner": "nix-community", |
| 320 | 373 | "repo": "home-manager", |
| 321 | "rev": "6911d3e7f475f7b3558b4f5a6aba90fa86099baa", | |
| 374 | "rev": "7c5d9345ad7cc38832cd4007f5cd03daad64d75b", | |
| 322 | 375 | "type": "github" |
| 323 | 376 | }, |
| 324 | 377 | "original": { |
| ... | ... | @@ -328,6 +381,325 @@ |
| 328 | 381 | "type": "github" |
| 329 | 382 | } |
| 330 | 383 | }, |
| 384 | "hyprcursor": { | |
| 385 | "inputs": { | |
| 386 | "hyprlang": [ | |
| 387 | "hyprland", | |
| 388 | "hyprlang" | |
| 389 | ], | |
| 390 | "nixpkgs": [ | |
| 391 | "hyprland", | |
| 392 | "nixpkgs" | |
| 393 | ], | |
| 394 | "systems": [ | |
| 395 | "hyprland", | |
| 396 | "systems" | |
| 397 | ] | |
| 398 | }, | |
| 399 | "locked": { | |
| 400 | "lastModified": 1753964049, | |
| 401 | "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", | |
| 402 | "owner": "hyprwm", | |
| 403 | "repo": "hyprcursor", | |
| 404 | "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", | |
| 405 | "type": "github" | |
| 406 | }, | |
| 407 | "original": { | |
| 408 | "owner": "hyprwm", | |
| 409 | "repo": "hyprcursor", | |
| 410 | "type": "github" | |
| 411 | } | |
| 412 | }, | |
| 413 | "hyprgraphics": { | |
| 414 | "inputs": { | |
| 415 | "hyprutils": [ | |
| 416 | "hyprland", | |
| 417 | "hyprutils" | |
| 418 | ], | |
| 419 | "nixpkgs": [ | |
| 420 | "hyprland", | |
| 421 | "nixpkgs" | |
| 422 | ], | |
| 423 | "systems": [ | |
| 424 | "hyprland", | |
| 425 | "systems" | |
| 426 | ] | |
| 427 | }, | |
| 428 | "locked": { | |
| 429 | "lastModified": 1766946335, | |
| 430 | "narHash": "sha256-MRD+Jr2bY11MzNDfenENhiK6pvN+nHygxdHoHbZ1HtE=", | |
| 431 | "owner": "hyprwm", | |
| 432 | "repo": "hyprgraphics", | |
| 433 | "rev": "4af02a3925b454deb1c36603843da528b67ded6c", | |
| 434 | "type": "github" | |
| 435 | }, | |
| 436 | "original": { | |
| 437 | "owner": "hyprwm", | |
| 438 | "repo": "hyprgraphics", | |
| 439 | "type": "github" | |
| 440 | } | |
| 441 | }, | |
| 442 | "hyprland": { | |
| 443 | "inputs": { | |
| 444 | "aquamarine": "aquamarine", | |
| 445 | "hyprcursor": "hyprcursor", | |
| 446 | "hyprgraphics": "hyprgraphics", | |
| 447 | "hyprland-guiutils": "hyprland-guiutils", | |
| 448 | "hyprland-protocols": "hyprland-protocols", | |
| 449 | "hyprlang": "hyprlang", | |
| 450 | "hyprutils": "hyprutils", | |
| 451 | "hyprwayland-scanner": "hyprwayland-scanner", | |
| 452 | "hyprwire": "hyprwire", | |
| 453 | "nixpkgs": "nixpkgs", | |
| 454 | "pre-commit-hooks": "pre-commit-hooks", | |
| 455 | "systems": "systems_2", | |
| 456 | "xdph": "xdph" | |
| 457 | }, | |
| 458 | "locked": { | |
| 459 | "lastModified": 1768000181, | |
| 460 | "narHash": "sha256-/E66+tcVBnvJcOFL/CjnjBfKew6A2e+28EZrcRHioBw=", | |
| 461 | "owner": "hyprwm", | |
| 462 | "repo": "Hyprland", | |
| 463 | "rev": "81e7498ec27156ee97aabba6fe4993412d98d1ab", | |
| 464 | "type": "github" | |
| 465 | }, | |
| 466 | "original": { | |
| 467 | "owner": "hyprwm", | |
| 468 | "repo": "Hyprland", | |
| 469 | "type": "github" | |
| 470 | } | |
| 471 | }, | |
| 472 | "hyprland-guiutils": { | |
| 473 | "inputs": { | |
| 474 | "aquamarine": [ | |
| 475 | "hyprland", | |
| 476 | "aquamarine" | |
| 477 | ], | |
| 478 | "hyprgraphics": [ | |
| 479 | "hyprland", | |
| 480 | "hyprgraphics" | |
| 481 | ], | |
| 482 | "hyprlang": [ | |
| 483 | "hyprland", | |
| 484 | "hyprlang" | |
| 485 | ], | |
| 486 | "hyprtoolkit": "hyprtoolkit", | |
| 487 | "hyprutils": [ | |
| 488 | "hyprland", | |
| 489 | "hyprutils" | |
| 490 | ], | |
| 491 | "hyprwayland-scanner": [ | |
| 492 | "hyprland", | |
| 493 | "hyprwayland-scanner" | |
| 494 | ], | |
| 495 | "nixpkgs": [ | |
| 496 | "hyprland", | |
| 497 | "nixpkgs" | |
| 498 | ], | |
| 499 | "systems": [ | |
| 500 | "hyprland", | |
| 501 | "systems" | |
| 502 | ] | |
| 503 | }, | |
| 504 | "locked": { | |
| 505 | "lastModified": 1767023960, | |
| 506 | "narHash": "sha256-R2HgtVS1G3KSIKAQ77aOZ+Q0HituOmPgXW9nBNkpp3Q=", | |
| 507 | "owner": "hyprwm", | |
| 508 | "repo": "hyprland-guiutils", | |
| 509 | "rev": "c2e906261142f5dd1ee0bfc44abba23e2754c660", | |
| 510 | "type": "github" | |
| 511 | }, | |
| 512 | "original": { | |
| 513 | "owner": "hyprwm", | |
| 514 | "repo": "hyprland-guiutils", | |
| 515 | "type": "github" | |
| 516 | } | |
| 517 | }, | |
| 518 | "hyprland-protocols": { | |
| 519 | "inputs": { | |
| 520 | "nixpkgs": [ | |
| 521 | "hyprland", | |
| 522 | "nixpkgs" | |
| 523 | ], | |
| 524 | "systems": [ | |
| 525 | "hyprland", | |
| 526 | "systems" | |
| 527 | ] | |
| 528 | }, | |
| 529 | "locked": { | |
| 530 | "lastModified": 1765214753, | |
| 531 | "narHash": "sha256-P9zdGXOzToJJgu5sVjv7oeOGPIIwrd9hAUAP3PsmBBs=", | |
| 532 | "owner": "hyprwm", | |
| 533 | "repo": "hyprland-protocols", | |
| 534 | "rev": "3f3860b869014c00e8b9e0528c7b4ddc335c21ab", | |
| 535 | "type": "github" | |
| 536 | }, | |
| 537 | "original": { | |
| 538 | "owner": "hyprwm", | |
| 539 | "repo": "hyprland-protocols", | |
| 540 | "type": "github" | |
| 541 | } | |
| 542 | }, | |
| 543 | "hyprlang": { | |
| 544 | "inputs": { | |
| 545 | "hyprutils": [ | |
| 546 | "hyprland", | |
| 547 | "hyprutils" | |
| 548 | ], | |
| 549 | "nixpkgs": [ | |
| 550 | "hyprland", | |
| 551 | "nixpkgs" | |
| 552 | ], | |
| 553 | "systems": [ | |
| 554 | "hyprland", | |
| 555 | "systems" | |
| 556 | ] | |
| 557 | }, | |
| 558 | "locked": { | |
| 559 | "lastModified": 1764612430, | |
| 560 | "narHash": "sha256-54ltTSbI6W+qYGMchAgCR6QnC1kOdKXN6X6pJhOWxFg=", | |
| 561 | "owner": "hyprwm", | |
| 562 | "repo": "hyprlang", | |
| 563 | "rev": "0d00dc118981531aa731150b6ea551ef037acddd", | |
| 564 | "type": "github" | |
| 565 | }, | |
| 566 | "original": { | |
| 567 | "owner": "hyprwm", | |
| 568 | "repo": "hyprlang", | |
| 569 | "type": "github" | |
| 570 | } | |
| 571 | }, | |
| 572 | "hyprtoolkit": { | |
| 573 | "inputs": { | |
| 574 | "aquamarine": [ | |
| 575 | "hyprland", | |
| 576 | "hyprland-guiutils", | |
| 577 | "aquamarine" | |
| 578 | ], | |
| 579 | "hyprgraphics": [ | |
| 580 | "hyprland", | |
| 581 | "hyprland-guiutils", | |
| 582 | "hyprgraphics" | |
| 583 | ], | |
| 584 | "hyprlang": [ | |
| 585 | "hyprland", | |
| 586 | "hyprland-guiutils", | |
| 587 | "hyprlang" | |
| 588 | ], | |
| 589 | "hyprutils": [ | |
| 590 | "hyprland", | |
| 591 | "hyprland-guiutils", | |
| 592 | "hyprutils" | |
| 593 | ], | |
| 594 | "hyprwayland-scanner": [ | |
| 595 | "hyprland", | |
| 596 | "hyprland-guiutils", | |
| 597 | "hyprwayland-scanner" | |
| 598 | ], | |
| 599 | "nixpkgs": [ | |
| 600 | "hyprland", | |
| 601 | "hyprland-guiutils", | |
| 602 | "nixpkgs" | |
| 603 | ], | |
| 604 | "systems": [ | |
| 605 | "hyprland", | |
| 606 | "hyprland-guiutils", | |
| 607 | "systems" | |
| 608 | ] | |
| 609 | }, | |
| 610 | "locked": { | |
| 611 | "lastModified": 1764592794, | |
| 612 | "narHash": "sha256-7CcO+wbTJ1L1NBQHierHzheQGPWwkIQug/w+fhTAVuU=", | |
| 613 | "owner": "hyprwm", | |
| 614 | "repo": "hyprtoolkit", | |
| 615 | "rev": "5cfe0743f0e608e1462972303778d8a0859ee63e", | |
| 616 | "type": "github" | |
| 617 | }, | |
| 618 | "original": { | |
| 619 | "owner": "hyprwm", | |
| 620 | "repo": "hyprtoolkit", | |
| 621 | "type": "github" | |
| 622 | } | |
| 623 | }, | |
| 624 | "hyprutils": { | |
| 625 | "inputs": { | |
| 626 | "nixpkgs": [ | |
| 627 | "hyprland", | |
| 628 | "nixpkgs" | |
| 629 | ], | |
| 630 | "systems": [ | |
| 631 | "hyprland", | |
| 632 | "systems" | |
| 633 | ] | |
| 634 | }, | |
| 635 | "locked": { | |
| 636 | "lastModified": 1766253372, | |
| 637 | "narHash": "sha256-1+p4Kw8HdtMoFSmJtfdwjxM4bPxDK9yg27SlvUMpzWA=", | |
| 638 | "owner": "hyprwm", | |
| 639 | "repo": "hyprutils", | |
| 640 | "rev": "51a4f93ce8572e7b12b7284eb9e6e8ebf16b4be9", | |
| 641 | "type": "github" | |
| 642 | }, | |
| 643 | "original": { | |
| 644 | "owner": "hyprwm", | |
| 645 | "repo": "hyprutils", | |
| 646 | "type": "github" | |
| 647 | } | |
| 648 | }, | |
| 649 | "hyprwayland-scanner": { | |
| 650 | "inputs": { | |
| 651 | "nixpkgs": [ | |
| 652 | "hyprland", | |
| 653 | "nixpkgs" | |
| 654 | ], | |
| 655 | "systems": [ | |
| 656 | "hyprland", | |
| 657 | "systems" | |
| 658 | ] | |
| 659 | }, | |
| 660 | "locked": { | |
| 661 | "lastModified": 1763640274, | |
| 662 | "narHash": "sha256-Uan1Nl9i4TF/kyFoHnTq1bd/rsWh4GAK/9/jDqLbY5A=", | |
| 663 | "owner": "hyprwm", | |
| 664 | "repo": "hyprwayland-scanner", | |
| 665 | "rev": "f6cf414ca0e16a4d30198fd670ec86df3c89f671", | |
| 666 | "type": "github" | |
| 667 | }, | |
| 668 | "original": { | |
| 669 | "owner": "hyprwm", | |
| 670 | "repo": "hyprwayland-scanner", | |
| 671 | "type": "github" | |
| 672 | } | |
| 673 | }, | |
| 674 | "hyprwire": { | |
| 675 | "inputs": { | |
| 676 | "hyprutils": [ | |
| 677 | "hyprland", | |
| 678 | "hyprutils" | |
| 679 | ], | |
| 680 | "nixpkgs": [ | |
| 681 | "hyprland", | |
| 682 | "nixpkgs" | |
| 683 | ], | |
| 684 | "systems": [ | |
| 685 | "hyprland", | |
| 686 | "systems" | |
| 687 | ] | |
| 688 | }, | |
| 689 | "locked": { | |
| 690 | "lastModified": 1767473322, | |
| 691 | "narHash": "sha256-RGOeG+wQHeJ6BKcsSB8r0ZU77g9mDvoQzoTKj2dFHwA=", | |
| 692 | "owner": "hyprwm", | |
| 693 | "repo": "hyprwire", | |
| 694 | "rev": "d5e7d6b49fe780353c1cf9a1cf39fa8970bd9d11", | |
| 695 | "type": "github" | |
| 696 | }, | |
| 697 | "original": { | |
| 698 | "owner": "hyprwm", | |
| 699 | "repo": "hyprwire", | |
| 700 | "type": "github" | |
| 701 | } | |
| 702 | }, | |
| 331 | 703 | "langref": { |
| 332 | 704 | "flake": false, |
| 333 | 705 | "locked": { |
| ... | ... | @@ -342,11 +714,11 @@ |
| 342 | 714 | }, |
| 343 | 715 | "mnw": { |
| 344 | 716 | "locked": { |
| 345 | "lastModified": 1748710831, | |
| 346 | "narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=", | |
| 717 | "lastModified": 1758834834, | |
| 718 | "narHash": "sha256-Y7IvY4F8vajZyp3WGf+KaiIVwondEkMFkt92Cr9NZmg=", | |
| 347 | 719 | "owner": "Gerg-L", |
| 348 | 720 | "repo": "mnw", |
| 349 | "rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d", | |
| 721 | "rev": "cfbc7d1cc832e318d0863a5fc91d940a96034001", | |
| 350 | 722 | "type": "github" |
| 351 | 723 | }, |
| 352 | 724 | "original": { |
| ... | ... | @@ -357,17 +729,16 @@ |
| 357 | 729 | }, |
| 358 | 730 | "moonlight": { |
| 359 | 731 | "inputs": { |
| 360 | "flake-utils": "flake-utils_2", | |
| 361 | 732 | "nixpkgs": [ |
| 362 | 733 | "nixpkgs" |
| 363 | 734 | ] |
| 364 | 735 | }, |
| 365 | 736 | "locked": { |
| 366 | "lastModified": 1754439168, | |
| 367 | "narHash": "sha256-NcwRidwb/ask65LE86os4RkhyoPQo5sLu0sJs/NboK4=", | |
| 737 | "lastModified": 1765916709, | |
| 738 | "narHash": "sha256-qc4m7v8hGOMb9BVLuiQZAbgzHoKfVwEY7HUl9fsY/hE=", | |
| 368 | 739 | "owner": "moonlight-mod", |
| 369 | 740 | "repo": "moonlight", |
| 370 | "rev": "66b81b113afd6654a88c9adb7edb7fe92839fe84", | |
| 741 | "rev": "d0ad754cf0b9c5a34d7f69595f407c8199f988ce", | |
| 371 | 742 | "type": "github" |
| 372 | 743 | }, |
| 373 | 744 | "original": { |
| ... | ... | @@ -376,6 +747,39 @@ |
| 376 | 747 | "type": "github" |
| 377 | 748 | } |
| 378 | 749 | }, |
| 750 | "ndg": { | |
| 751 | "inputs": { | |
| 752 | "nixpkgs": "nixpkgs_4" | |
| 753 | }, | |
| 754 | "locked": { | |
| 755 | "lastModified": 1765435293, | |
| 756 | "narHash": "sha256-HRp4g6qBCb8vpJ17s2FacMRXRszM73uBiR56aILMELA=", | |
| 757 | "owner": "feel-co", | |
| 758 | "repo": "ndg", | |
| 759 | "rev": "65bf834b332d5f8b28d95ea14c7974be7c272971", | |
| 760 | "type": "github" | |
| 761 | }, | |
| 762 | "original": { | |
| 763 | "owner": "feel-co", | |
| 764 | "repo": "ndg", | |
| 765 | "type": "github" | |
| 766 | } | |
| 767 | }, | |
| 768 | "nix-filter": { | |
| 769 | "locked": { | |
| 770 | "lastModified": 1693833173, | |
| 771 | "narHash": "sha256-hlMABKrGbEiJD5dwUSfnw1CQ3bG7KKwDV+Nx3bEZd7U=", | |
| 772 | "owner": "numtide", | |
| 773 | "repo": "nix-filter", | |
| 774 | "rev": "ac030bd9ba98e318e1f4c4328d60766ade8ebe8b", | |
| 775 | "type": "github" | |
| 776 | }, | |
| 777 | "original": { | |
| 778 | "owner": "numtide", | |
| 779 | "repo": "nix-filter", | |
| 780 | "type": "github" | |
| 781 | } | |
| 782 | }, | |
| 379 | 783 | "nix-index-database": { |
| 380 | 784 | "inputs": { |
| 381 | 785 | "nixpkgs": [ |
| ... | ... | @@ -383,11 +787,11 @@ |
| 383 | 787 | ] |
| 384 | 788 | }, |
| 385 | 789 | "locked": { |
| 386 | "lastModified": 1755404379, | |
| 387 | "narHash": "sha256-Q6ZxZDBmD/B988Jjbx7/NchxOKIpOKBBrx9Yb0zMzpQ=", | |
| 790 | "lastModified": 1765267181, | |
| 791 | "narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=", | |
| 388 | 792 | "owner": "nix-community", |
| 389 | 793 | "repo": "nix-index-database", |
| 390 | "rev": "ebbc1c05f786ae39bb5e04e57bf2c10c44a649e3", | |
| 794 | "rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f", | |
| 391 | 795 | "type": "github" |
| 392 | 796 | }, |
| 393 | 797 | "original": { |
| ... | ... | @@ -398,16 +802,16 @@ |
| 398 | 802 | }, |
| 399 | 803 | "nix-options-search": { |
| 400 | 804 | "inputs": { |
| 401 | "flake-utils": "flake-utils_3", | |
| 402 | "gitignore": "gitignore", | |
| 403 | "nixpkgs": "nixpkgs" | |
| 805 | "flake-utils": "flake-utils_2", | |
| 806 | "gitignore": "gitignore_2", | |
| 807 | "nixpkgs": "nixpkgs_2" | |
| 404 | 808 | }, |
| 405 | 809 | "locked": { |
| 406 | "lastModified": 1743876182, | |
| 407 | "narHash": "sha256-qfiVewr5huupheLqStX60JSbjBEm9/PDncLQXE0dsXo=", | |
| 810 | "lastModified": 1765642879, | |
| 811 | "narHash": "sha256-LIKEZW++qgg8FSpJtAayv6yfIF3CO42GpryyeJ4pk7M=", | |
| 408 | 812 | "owner": "madsbv", |
| 409 | 813 | "repo": "nix-options-search", |
| 410 | "rev": "f52dc6986161570a2ffffdf337c88b503e9a58fb", | |
| 814 | "rev": "b91e3ad2b4f3afbf0ceadb140fb9a0d342733b2e", | |
| 411 | 815 | "type": "github" |
| 412 | 816 | }, |
| 413 | 817 | "original": { |
| ... | ... | @@ -418,11 +822,27 @@ |
| 418 | 822 | }, |
| 419 | 823 | "nixpkgs": { |
| 420 | 824 | "locked": { |
| 421 | "lastModified": 1736012469, | |
| 422 | "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=", | |
| 825 | "lastModified": 1767379071, | |
| 826 | "narHash": "sha256-EgE0pxsrW9jp9YFMkHL9JMXxcqi/OoumPJYwf+Okucw=", | |
| 827 | "owner": "NixOS", | |
| 828 | "repo": "nixpkgs", | |
| 829 | "rev": "fb7944c166a3b630f177938e478f0378e64ce108", | |
| 830 | "type": "github" | |
| 831 | }, | |
| 832 | "original": { | |
| 833 | "owner": "NixOS", | |
| 834 | "ref": "nixos-unstable", | |
| 835 | "repo": "nixpkgs", | |
| 836 | "type": "github" | |
| 837 | } | |
| 838 | }, | |
| 839 | "nixpkgs_2": { | |
| 840 | "locked": { | |
| 841 | "lastModified": 1762977756, | |
| 842 | "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", | |
| 423 | 843 | "owner": "nixos", |
| 424 | 844 | "repo": "nixpkgs", |
| 425 | "rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d", | |
| 845 | "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", | |
| 426 | 846 | "type": "github" |
| 427 | 847 | }, |
| 428 | 848 | "original": { |
| ... | ... | @@ -432,22 +852,54 @@ |
| 432 | 852 | "type": "github" |
| 433 | 853 | } |
| 434 | 854 | }, |
| 435 | "nixpkgs_2": { | |
| 855 | "nixpkgs_3": { | |
| 436 | 856 | "locked": { |
| 437 | "lastModified": 1755615617, | |
| 438 | "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", | |
| 857 | "lastModified": 1767966113, | |
| 858 | "narHash": "sha256-mSTsvXa4WveSRJexsmCbm9dY17B1fKp7NLpJxllpQw4=", | |
| 439 | 859 | "owner": "NixOS", |
| 440 | 860 | "repo": "nixpkgs", |
| 441 | "rev": "20075955deac2583bb12f07151c2df830ef346b4", | |
| 861 | "rev": "5f02c91314c8ba4afe83b256b023756412218535", | |
| 442 | 862 | "type": "github" |
| 443 | 863 | }, |
| 444 | 864 | "original": { |
| 445 | 865 | "id": "nixpkgs", |
| 446 | "ref": "nixos-unstable", | |
| 866 | "ref": "nixpkgs-unstable", | |
| 447 | 867 | "type": "indirect" |
| 448 | 868 | } |
| 449 | 869 | }, |
| 450 | "nixpkgs_3": { | |
| 870 | "nixpkgs_4": { | |
| 871 | "locked": { | |
| 872 | "lastModified": 1764242076, | |
| 873 | "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", | |
| 874 | "owner": "NixOS", | |
| 875 | "repo": "nixpkgs", | |
| 876 | "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", | |
| 877 | "type": "github" | |
| 878 | }, | |
| 879 | "original": { | |
| 880 | "owner": "NixOS", | |
| 881 | "ref": "nixos-unstable", | |
| 882 | "repo": "nixpkgs", | |
| 883 | "type": "github" | |
| 884 | } | |
| 885 | }, | |
| 886 | "nixpkgs_5": { | |
| 887 | "locked": { | |
| 888 | "lastModified": 1762111121, | |
| 889 | "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", | |
| 890 | "owner": "NixOS", | |
| 891 | "repo": "nixpkgs", | |
| 892 | "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", | |
| 893 | "type": "github" | |
| 894 | }, | |
| 895 | "original": { | |
| 896 | "owner": "NixOS", | |
| 897 | "ref": "nixos-unstable", | |
| 898 | "repo": "nixpkgs", | |
| 899 | "type": "github" | |
| 900 | } | |
| 901 | }, | |
| 902 | "nixpkgs_6": { | |
| 451 | 903 | "locked": { |
| 452 | 904 | "lastModified": 1708161998, |
| 453 | 905 | "narHash": "sha256-6KnemmUorCvlcAvGziFosAVkrlWZGIc6UNT9GUYr0jQ=", |
| ... | ... | @@ -463,7 +915,7 @@ |
| 463 | 915 | "type": "github" |
| 464 | 916 | } |
| 465 | 917 | }, |
| 466 | "nixpkgs_4": { | |
| 918 | "nixpkgs_7": { | |
| 467 | 919 | "locked": { |
| 468 | 920 | "lastModified": 1717696253, |
| 469 | 921 | "narHash": "sha256-1+ua0ggXlYYPLTmMl3YeYYsBXDSCqT+Gw3u6l4gvMhA=", |
| ... | ... | @@ -481,20 +933,21 @@ |
| 481 | 933 | }, |
| 482 | 934 | "nvf": { |
| 483 | 935 | "inputs": { |
| 484 | "flake-compat": "flake-compat", | |
| 936 | "flake-compat": "flake-compat_2", | |
| 485 | 937 | "flake-parts": "flake-parts", |
| 486 | 938 | "mnw": "mnw", |
| 939 | "ndg": "ndg", | |
| 487 | 940 | "nixpkgs": [ |
| 488 | 941 | "nixpkgs" |
| 489 | 942 | ], |
| 490 | 943 | "systems": "systems_4" |
| 491 | 944 | }, |
| 492 | 945 | "locked": { |
| 493 | "lastModified": 1755843058, | |
| 494 | "narHash": "sha256-oAajTGcyTzuND7AAlaRXO+wF7ytAMOnrE4sYUjRonB8=", | |
| 946 | "lastModified": 1765537745, | |
| 947 | "narHash": "sha256-EaFYxx2aSuM2xx+l+E55YNMCJOoQBl2tJybxyF0pPqw=", | |
| 495 | 948 | "owner": "notashelf", |
| 496 | 949 | "repo": "nvf", |
| 497 | "rev": "d36996c8ba5c8d68b5def1b660e06d281ef0a3a8", | |
| 950 | "rev": "8e031476d0d7f326b63c9c5522f840e2f8b724c0", | |
| 498 | 951 | "type": "github" |
| 499 | 952 | }, |
| 500 | 953 | "original": { |
| ... | ... | @@ -516,18 +969,44 @@ |
| 516 | 969 | "url": "https://devimages-cdn.apple.com/design/resources/download/NY.dmg" |
| 517 | 970 | } |
| 518 | 971 | }, |
| 972 | "pre-commit-hooks": { | |
| 973 | "inputs": { | |
| 974 | "flake-compat": "flake-compat", | |
| 975 | "gitignore": "gitignore", | |
| 976 | "nixpkgs": [ | |
| 977 | "hyprland", | |
| 978 | "nixpkgs" | |
| 979 | ] | |
| 980 | }, | |
| 981 | "locked": { | |
| 982 | "lastModified": 1767281941, | |
| 983 | "narHash": "sha256-6MkqajPICgugsuZ92OMoQcgSHnD6sJHwk8AxvMcIgTE=", | |
| 984 | "owner": "cachix", | |
| 985 | "repo": "git-hooks.nix", | |
| 986 | "rev": "f0927703b7b1c8d97511c4116eb9b4ec6645a0fa", | |
| 987 | "type": "github" | |
| 988 | }, | |
| 989 | "original": { | |
| 990 | "owner": "cachix", | |
| 991 | "repo": "git-hooks.nix", | |
| 992 | "type": "github" | |
| 993 | } | |
| 994 | }, | |
| 519 | 995 | "root": { |
| 520 | 996 | "inputs": { |
| 521 | 997 | "android-nixpkgs": "android-nixpkgs", |
| 522 | 998 | "apple-fonts": "apple-fonts", |
| 523 | 999 | "darwin": "darwin", |
| 524 | 1000 | "home-manager": "home-manager", |
| 1001 | "hyprland": "hyprland", | |
| 525 | 1002 | "moonlight": "moonlight", |
| 526 | 1003 | "nix-index-database": "nix-index-database", |
| 527 | 1004 | "nix-options-search": "nix-options-search", |
| 528 | "nixpkgs": "nixpkgs_2", | |
| 1005 | "nixpkgs": "nixpkgs_3", | |
| 529 | 1006 | "nvf": "nvf", |
| 530 | 1007 | "rust-overlay": "rust-overlay", |
| 1008 | "split-monitor-workspaces": "split-monitor-workspaces", | |
| 1009 | "vicinae": "vicinae", | |
| 531 | 1010 | "zen-browser": "zen-browser", |
| 532 | 1011 | "zig": "zig", |
| 533 | 1012 | "zls": "zls" |
| ... | ... | @@ -540,11 +1019,11 @@ |
| 540 | 1019 | ] |
| 541 | 1020 | }, |
| 542 | 1021 | "locked": { |
| 543 | "lastModified": 1755830208, | |
| 544 | "narHash": "sha256-fMa/Hcg+4O2h+kl3gNPjtGSWPI8NtCl3LYMsejK6qGA=", | |
| 1022 | "lastModified": 1768012928, | |
| 1023 | "narHash": "sha256-HFFVQaux1JoOjEvgBT0ASk1Je+jsipyO5c91FoLMed8=", | |
| 545 | 1024 | "owner": "oxalica", |
| 546 | 1025 | "repo": "rust-overlay", |
| 547 | "rev": "802a7b97f8ff672ba2dec70c9e354f51f844e796", | |
| 1026 | "rev": "312b4371e72f644ffcff25b23615195e3b390643", | |
| 548 | 1027 | "type": "github" |
| 549 | 1028 | }, |
| 550 | 1029 | "original": { |
| ... | ... | @@ -580,7 +1059,7 @@ |
| 580 | 1059 | "sf-compact": { |
| 581 | 1060 | "flake": false, |
| 582 | 1061 | "locked": { |
| 583 | "narHash": "sha256-VMCf2Mhmx/qhLRQxlTAsQWxtonS27kPW+oTYBBRWHMg=", | |
| 1062 | "narHash": "sha256-WeqT80cdK/XzTLSaJs5DHodzxoeAzwL/xTgdq0YwQbM=", | |
| 584 | 1063 | "type": "file", |
| 585 | 1064 | "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Compact.dmg" |
| 586 | 1065 | }, |
| ... | ... | @@ -628,7 +1107,7 @@ |
| 628 | 1107 | "sf-pro": { |
| 629 | 1108 | "flake": false, |
| 630 | 1109 | "locked": { |
| 631 | "narHash": "sha256-RX6X2ltVE88Hp1g9tpSywMT3UfdLpRxgw92KRpiAues=", | |
| 1110 | "narHash": "sha256-vprahHpCUf9O8RualBrEuLEfuLfzI/2d8AQmwlCGPPk=", | |
| 632 | 1111 | "type": "file", |
| 633 | 1112 | "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg" |
| 634 | 1113 | }, |
| ... | ... | @@ -637,6 +1116,27 @@ |
| 637 | 1116 | "url": "https://devimages-cdn.apple.com/design/resources/download/SF-Pro.dmg" |
| 638 | 1117 | } |
| 639 | 1118 | }, |
| 1119 | "split-monitor-workspaces": { | |
| 1120 | "inputs": { | |
| 1121 | "hyprland": [ | |
| 1122 | "hyprland" | |
| 1123 | ], | |
| 1124 | "nix-filter": "nix-filter" | |
| 1125 | }, | |
| 1126 | "locked": { | |
| 1127 | "lastModified": 1767711026, | |
| 1128 | "narHash": "sha256-yTuyde8TpBR3NhNnOcK4uOGukvMCwrH3otP8E04e9X0=", | |
| 1129 | "owner": "Duckonaut", | |
| 1130 | "repo": "split-monitor-workspaces", | |
| 1131 | "rev": "764548c3aa22c9f4cb436ec7243d21795eb6ebec", | |
| 1132 | "type": "github" | |
| 1133 | }, | |
| 1134 | "original": { | |
| 1135 | "owner": "Duckonaut", | |
| 1136 | "repo": "split-monitor-workspaces", | |
| 1137 | "type": "github" | |
| 1138 | } | |
| 1139 | }, | |
| 640 | 1140 | "systems": { |
| 641 | 1141 | "locked": { |
| 642 | 1142 | "lastModified": 1681028828, |
| ... | ... | @@ -654,16 +1154,16 @@ |
| 654 | 1154 | }, |
| 655 | 1155 | "systems_2": { |
| 656 | 1156 | "locked": { |
| 657 | "lastModified": 1681028828, | |
| 658 | "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | |
| 1157 | "lastModified": 1689347949, | |
| 1158 | "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", | |
| 659 | 1159 | "owner": "nix-systems", |
| 660 | "repo": "default", | |
| 661 | "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | |
| 1160 | "repo": "default-linux", | |
| 1161 | "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", | |
| 662 | 1162 | "type": "github" |
| 663 | 1163 | }, |
| 664 | 1164 | "original": { |
| 665 | 1165 | "owner": "nix-systems", |
| 666 | "repo": "default", | |
| 1166 | "repo": "default-linux", | |
| 667 | 1167 | "type": "github" |
| 668 | 1168 | } |
| 669 | 1169 | }, |
| ... | ... | @@ -742,6 +1242,81 @@ |
| 742 | 1242 | "type": "github" |
| 743 | 1243 | } |
| 744 | 1244 | }, |
| 1245 | "systems_8": { | |
| 1246 | "locked": { | |
| 1247 | "lastModified": 1681028828, | |
| 1248 | "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | |
| 1249 | "owner": "nix-systems", | |
| 1250 | "repo": "default", | |
| 1251 | "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | |
| 1252 | "type": "github" | |
| 1253 | }, | |
| 1254 | "original": { | |
| 1255 | "owner": "nix-systems", | |
| 1256 | "repo": "default", | |
| 1257 | "type": "github" | |
| 1258 | } | |
| 1259 | }, | |
| 1260 | "vicinae": { | |
| 1261 | "inputs": { | |
| 1262 | "nixpkgs": "nixpkgs_5", | |
| 1263 | "systems": "systems_5" | |
| 1264 | }, | |
| 1265 | "locked": { | |
| 1266 | "lastModified": 1767958732, | |
| 1267 | "narHash": "sha256-Jy7Px8fWfZgRRWcv5d8XTddPDaHRJ1o4mG3yTlEkXTo=", | |
| 1268 | "owner": "vicinaehq", | |
| 1269 | "repo": "vicinae", | |
| 1270 | "rev": "c80929ea3f44d540a5063ad1262799aa32a7929c", | |
| 1271 | "type": "github" | |
| 1272 | }, | |
| 1273 | "original": { | |
| 1274 | "owner": "vicinaehq", | |
| 1275 | "repo": "vicinae", | |
| 1276 | "type": "github" | |
| 1277 | } | |
| 1278 | }, | |
| 1279 | "xdph": { | |
| 1280 | "inputs": { | |
| 1281 | "hyprland-protocols": [ | |
| 1282 | "hyprland", | |
| 1283 | "hyprland-protocols" | |
| 1284 | ], | |
| 1285 | "hyprlang": [ | |
| 1286 | "hyprland", | |
| 1287 | "hyprlang" | |
| 1288 | ], | |
| 1289 | "hyprutils": [ | |
| 1290 | "hyprland", | |
| 1291 | "hyprutils" | |
| 1292 | ], | |
| 1293 | "hyprwayland-scanner": [ | |
| 1294 | "hyprland", | |
| 1295 | "hyprwayland-scanner" | |
| 1296 | ], | |
| 1297 | "nixpkgs": [ | |
| 1298 | "hyprland", | |
| 1299 | "nixpkgs" | |
| 1300 | ], | |
| 1301 | "systems": [ | |
| 1302 | "hyprland", | |
| 1303 | "systems" | |
| 1304 | ] | |
| 1305 | }, | |
| 1306 | "locked": { | |
| 1307 | "lastModified": 1761431178, | |
| 1308 | "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", | |
| 1309 | "owner": "hyprwm", | |
| 1310 | "repo": "xdg-desktop-portal-hyprland", | |
| 1311 | "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", | |
| 1312 | "type": "github" | |
| 1313 | }, | |
| 1314 | "original": { | |
| 1315 | "owner": "hyprwm", | |
| 1316 | "repo": "xdg-desktop-portal-hyprland", | |
| 1317 | "type": "github" | |
| 1318 | } | |
| 1319 | }, | |
| 745 | 1320 | "zen-browser": { |
| 746 | 1321 | "inputs": { |
| 747 | 1322 | "nixpkgs": [ |
| ... | ... | @@ -749,11 +1324,11 @@ |
| 749 | 1324 | ] |
| 750 | 1325 | }, |
| 751 | 1326 | "locked": { |
| 752 | "lastModified": 1754886070, | |
| 753 | "narHash": "sha256-MZDmxOkVKL1HY72bliN8Gxh0SYkHUa3W/1fTU2ke36I=", | |
| 1327 | "lastModified": 1767618227, | |
| 1328 | "narHash": "sha256-9+XVF47E9NCVs249SSsDtr7YdG/23/lCJmWAjQvOfqI=", | |
| 754 | 1329 | "owner": "youwen5", |
| 755 | 1330 | "repo": "zen-browser-flake", |
| 756 | "rev": "e37d2b326311320c8571111b3ef89b29d26d4b64", | |
| 1331 | "rev": "1586e49b3908b058e221f11d843eb46392dba17b", | |
| 757 | 1332 | "type": "github" |
| 758 | 1333 | }, |
| 759 | 1334 | "original": { |
| ... | ... | @@ -764,16 +1339,16 @@ |
| 764 | 1339 | }, |
| 765 | 1340 | "zig": { |
| 766 | 1341 | "inputs": { |
| 767 | "flake-compat": "flake-compat_2", | |
| 768 | "flake-utils": "flake-utils_4", | |
| 769 | "nixpkgs": "nixpkgs_3" | |
| 1342 | "flake-compat": "flake-compat_3", | |
| 1343 | "flake-utils": "flake-utils_3", | |
| 1344 | "nixpkgs": "nixpkgs_6" | |
| 770 | 1345 | }, |
| 771 | 1346 | "locked": { |
| 772 | "lastModified": 1755605615, | |
| 773 | "narHash": "sha256-J0Cxren2QLeI0ZvRZw4XGcMm4q3uPIZHM+eJnaZfXX8=", | |
| 1347 | "lastModified": 1767919086, | |
| 1348 | "narHash": "sha256-t9Z7r8yJDbRqoAhm7vsohHAhMGF373NCWt/XeHlZAWw=", | |
| 774 | 1349 | "owner": "mitchellh", |
| 775 | 1350 | "repo": "zig-overlay", |
| 776 | "rev": "714fae26049a263ff2e4641ce7c973f371f4b005", | |
| 1351 | "rev": "d7671671de8bd3afcabffefc77c75ed9777b249b", | |
| 777 | 1352 | "type": "github" |
| 778 | 1353 | }, |
| 779 | 1354 | "original": { |
| ... | ... | @@ -784,8 +1359,8 @@ |
| 784 | 1359 | }, |
| 785 | 1360 | "zig-overlay": { |
| 786 | 1361 | "inputs": { |
| 787 | "flake-compat": "flake-compat_3", | |
| 788 | "flake-utils": "flake-utils_6", | |
| 1362 | "flake-compat": "flake-compat_4", | |
| 1363 | "flake-utils": "flake-utils_5", | |
| 789 | 1364 | "nixpkgs": [ |
| 790 | 1365 | "zls", |
| 791 | 1366 | "nixpkgs" |
| ... | ... | @@ -807,10 +1382,10 @@ |
| 807 | 1382 | }, |
| 808 | 1383 | "zls": { |
| 809 | 1384 | "inputs": { |
| 810 | "flake-utils": "flake-utils_5", | |
| 811 | "gitignore": "gitignore_2", | |
| 1385 | "flake-utils": "flake-utils_4", | |
| 1386 | "gitignore": "gitignore_3", | |
| 812 | 1387 | "langref": "langref", |
| 813 | "nixpkgs": "nixpkgs_4", | |
| 1388 | "nixpkgs": "nixpkgs_7", | |
| 814 | 1389 | "zig-overlay": "zig-overlay" |
| 815 | 1390 | }, |
| 816 | 1391 | "locked": { |
flake.nix+11-1| ... | ... | @@ -1,7 +1,7 @@ |
| 1 | 1 | { |
| 2 | 2 | description = "multi device configuration flake"; |
| 3 | 3 | inputs = { |
| 4 | nixpkgs.url = "nixpkgs/nixos-unstable"; | |
| 4 | nixpkgs.url = "nixpkgs/nixpkgs-unstable"; | |
| 5 | 5 | |
| 6 | 6 | home-manager.url = "github:nix-community/home-manager/master"; |
| 7 | 7 | home-manager.inputs.nixpkgs.follows = "nixpkgs"; |
| ... | ... | @@ -24,6 +24,14 @@ |
| 24 | 24 | moonlight.url = "github:moonlight-mod/moonlight"; # Add `/develop` to the flake URL to use nightly. |
| 25 | 25 | moonlight.inputs.nixpkgs.follows = "nixpkgs"; |
| 26 | 26 | |
| 27 | hyprland.url = "github:hyprwm/Hyprland"; | |
| 28 | split-monitor-workspaces = { | |
| 29 | url = "github:Duckonaut/split-monitor-workspaces"; | |
| 30 | inputs.hyprland.follows = "hyprland"; | |
| 31 | }; | |
| 32 | ||
| 33 | vicinae.url = "github:vicinaehq/vicinae"; | |
| 34 | ||
| 27 | 35 | zen-browser = { |
| 28 | 36 | url = "github:youwen5/zen-browser-flake"; |
| 29 | 37 | inputs.nixpkgs.follows = "nixpkgs"; |
| ... | ... | @@ -70,6 +78,8 @@ |
| 70 | 78 | # custom packages |
| 71 | 79 | (_: pkgs: { |
| 72 | 80 | autofmt = pkgs.callPackage ./packages/autofmt { }; |
| 81 | exiled_exchange_2 = pkgs.callPackage ./packages/exiled_exchange_2 { }; | |
| 82 | awakened_poe_trade = pkgs.callPackage ./packages/awakened_poe_trade { }; | |
| 73 | 83 | }) |
| 74 | 84 | ]; |
| 75 | 85 |
lib/mkSystem.nix+1| ... | ... | @@ -76,6 +76,7 @@ let |
| 76 | 76 | ) |
| 77 | 77 | inputs.nvf.homeManagerModules.default |
| 78 | 78 | inputs.android-nixpkgs.hmModule |
| 79 | inputs.vicinae.homeManagerModules.default | |
| 79 | 80 | ]; |
| 80 | 81 | in |
| 81 | 82 | systemFunc { |
modules/home/default.nix+19-15| ... | ... | @@ -35,12 +35,12 @@ in |
| 35 | 35 | sdk: |
| 36 | 36 | with sdk; |
| 37 | 37 | [ |
| 38 | build-tools-35-0-0 | |
| 38 | build-tools-36-0-0 | |
| 39 | 39 | cmdline-tools-latest |
| 40 | 40 | emulator |
| 41 | 41 | platform-tools |
| 42 | platforms-android-35 | |
| 43 | sources-android-35 | |
| 42 | platforms-android-36 | |
| 43 | sources-android-36 | |
| 44 | 44 | ndk-27-1-12297006 |
| 45 | 45 | cmake-3-22-1 |
| 46 | 46 | ] |
| ... | ... | @@ -49,8 +49,8 @@ in |
| 49 | 49 | system-images-android-35-google-apis-playstore-arm64-v8a |
| 50 | 50 | ] |
| 51 | 51 | ++ lib.optionals host.linux [ |
| 52 | system-images-android-35-google-apis-x86-64 | |
| 53 | system-images-android-35-google-apis-playstore-x86-64 | |
| 52 | system-images-android-36-google-apis-x86-64 | |
| 53 | system-images-android-36-google-apis-playstore-x86-64 | |
| 54 | 54 | ]; |
| 55 | 55 | }; |
| 56 | 56 | xdg = { |
| ... | ... | @@ -69,8 +69,10 @@ in |
| 69 | 69 | |
| 70 | 70 | git = { |
| 71 | 71 | enable = true; |
| 72 | userName = lib.mkDefault user.name; | |
| 73 | userEmail = lib.mkDefault user.email; | |
| 72 | settings.user = { | |
| 73 | name = lib.mkDefault user.name; | |
| 74 | email = lib.mkDefault user.email; | |
| 75 | }; | |
| 74 | 76 | ignores = [ |
| 75 | 77 | (lib.mkIf host.darwin ".DS_Store") # When using Finder |
| 76 | 78 | (lib.mkIf host.darwin "._*") # When using non-APFS drives |
| ... | ... | @@ -89,7 +91,7 @@ in |
| 89 | 91 | extraPackages = with pkgs.bat-extras; [ |
| 90 | 92 | batdiff |
| 91 | 93 | batman |
| 92 | batgrep | |
| 94 | # batgrep | |
| 93 | 95 | batwatch |
| 94 | 96 | batpipe |
| 95 | 97 | prettybat |
| ... | ... | @@ -138,17 +140,19 @@ in |
| 138 | 140 | jujutsu = { |
| 139 | 141 | settings = { |
| 140 | 142 | user = { |
| 141 | email = config.programs.git.userEmail; | |
| 142 | name = config.programs.git.userName; | |
| 143 | inherit (config.programs.git.settings.user) name email; | |
| 143 | 144 | }; |
| 144 | signing = { | |
| 145 | behavior = "own"; | |
| 146 | backend = "ssh"; | |
| 145 | signing = lib.mkIf (config.programs.git.signing.format != null) { | |
| 146 | backend = config.programs.git.signing.format; | |
| 147 | 147 | key = "~/.ssh/id_ed25519.pub"; |
| 148 | # signatures are slow, compute them on push instead of on change. | |
| 149 | behavior = "drop"; | |
| 148 | 150 | }; |
| 149 | 151 | git = { |
| 150 | sign-on-push = true; | |
| 151 | push-new-bookmarks = true; | |
| 152 | sign-on-push = config.programs.git.signing.key != null; | |
| 153 | }; | |
| 154 | remotes.origin = { | |
| 155 | auto-track-bookmarks = "glob:*"; | |
| 152 | 156 | }; |
| 153 | 157 | ui = { |
| 154 | 158 | default-command = "log"; |
modules/neovim/default.nix+4-4| ... | ... | @@ -82,7 +82,7 @@ |
| 82 | 82 | servers.nixd.init_options.autoArchive = true; |
| 83 | 83 | }; |
| 84 | 84 | treesitter = { |
| 85 | enable = true; | |
| 85 | enable = false; | |
| 86 | 86 | addDefaultGrammars = true; |
| 87 | 87 | # this is buggy and keybind.nix overwrites its keymaps anyways |
| 88 | 88 | incrementalSelection.enable = false; |
| ... | ... | @@ -99,7 +99,7 @@ |
| 99 | 99 | }; |
| 100 | 100 | languages = { |
| 101 | 101 | enableFormat = true; |
| 102 | enableTreesitter = true; | |
| 102 | enableTreesitter = false; | |
| 103 | 103 | enableExtraDiagnostics = true; |
| 104 | 104 | # enable debug adapter protocol by default |
| 105 | 105 | enableDAP = true; |
| ... | ... | @@ -111,13 +111,13 @@ |
| 111 | 111 | html.enable = true; |
| 112 | 112 | nix.enable = true; |
| 113 | 113 | python.enable = true; |
| 114 | rust.crates.enable = true; | |
| 115 | 114 | rust.enable = true; |
| 116 | 115 | ts.enable = true; |
| 117 | 116 | zig.enable = true; |
| 118 | 117 | # sort-lines: off |
| 119 | 118 | |
| 120 | nix.lsp.servers = "nixd"; | |
| 119 | nix.lsp.servers = [ "nixd" ]; | |
| 120 | rust.extensions.crates-nvim.enable = true; | |
| 121 | 121 | }; |
| 122 | 122 | filetree.neo-tree = { |
| 123 | 123 | enable = true; |
modules/nixos/ld.nix+1| ... | ... | @@ -6,6 +6,7 @@ |
| 6 | 6 | programs.nix-ld.libraries = with pkgs; [ |
| 7 | 7 | # common requirement for several games |
| 8 | 8 | stdenv.cc.cc.lib |
| 9 | libxcrypt | |
| 9 | 10 | |
| 10 | 11 | # from https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/games/steam/fhsenv.nix#L72-L79 |
| 11 | 12 | xorg.libXcomposite |
modules/nixos/services.nix+17| ... | ... | @@ -22,6 +22,23 @@ |
| 22 | 22 | }; |
| 23 | 23 | }; |
| 24 | 24 | |
| 25 | gvfs.enable = true; | |
| 26 | ||
| 27 | gnome = { | |
| 28 | tinysparql.enable = true; | |
| 29 | gnome-keyring.enable = true; | |
| 30 | }; | |
| 31 | ||
| 32 | fstrim.enable = true; | |
| 33 | ||
| 34 | dbus = { | |
| 35 | enable = true; | |
| 36 | packages = [ | |
| 37 | pkgs.gcr | |
| 38 | pkgs.gnome-settings-daemon | |
| 39 | ]; | |
| 40 | }; | |
| 41 | ||
| 25 | 42 | # Auto mount devices |
| 26 | 43 | udisks2 = { |
| 27 | 44 | enable = true; |
modules/shared/nix.nix+4| ... | ... | @@ -28,11 +28,15 @@ |
| 28 | 28 | "https://nix-community.cachix.org" |
| 29 | 29 | # For haskell |
| 30 | 30 | "https://cache.iog.io" |
| 31 | #vicinae | |
| 32 | "https://vicinae.cachix.org" | |
| 31 | 33 | ]; |
| 32 | 34 | trusted-public-keys = [ |
| 33 | 35 | "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" |
| 34 | 36 | # For haskell |
| 35 | 37 | "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" |
| 38 | #vicinae | |
| 39 | "vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc=" | |
| 36 | 40 | ]; |
| 37 | 41 | }; |
| 38 | 42 | gc = { |
packages/autofmt/default.nix+1-1| ... | ... | @@ -6,7 +6,7 @@ pkgs.writeShellApplication { |
| 6 | 6 | clang-tools |
| 7 | 7 | deno |
| 8 | 8 | dprint |
| 9 | nixfmt-rfc-style | |
| 9 | nixfmt | |
| 10 | 10 | prettierd # autofmt only runs on a local build of prettier |
| 11 | 11 | rustfmt |
| 12 | 12 | zig |
packages/awakened_poe_trade/default.nix created+35| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | { pkgs, lib, ... }: | |
| 2 | ||
| 3 | let | |
| 4 | pname = "awakened-poe-trade"; | |
| 5 | version = "3.26.102"; | |
| 6 | name = "${pname}-${version}"; | |
| 7 | ||
| 8 | src = pkgs.fetchurl { | |
| 9 | url = "https://github.com/SnosMe/awakened-poe-trade/releases/download/v${version}/Awakened-PoE-Trade-${version}.AppImage"; | |
| 10 | sha256 = "sha256-kWMRZvAZKzGFXX7QJJN7eIs88ZDGWU8sMuyQhLgPQCY= | |
| 11 | "; | |
| 12 | }; | |
| 13 | ||
| 14 | appimageContents = pkgs.appimageTools.extract { inherit pname version src; }; | |
| 15 | in | |
| 16 | pkgs.appimageTools.wrapType2 rec { | |
| 17 | inherit pname version src; | |
| 18 | ||
| 19 | extraInstallCommands = '' | |
| 20 | install -m 444 -D ${appimageContents}/awakened-poe-trade.desktop $out/share/applications/${pname}.desktop | |
| 21 | ||
| 22 | install -m 444 -D ${appimageContents}/${pname}.png $out/share/icons/hicolor/512x512/apps/${pname}.png | |
| 23 | ||
| 24 | substituteInPlace $out/share/applications/${pname}.desktop \ | |
| 25 | 	--replace 'Exec=AppRun --no-sandbox %U' 'Exec=${pname} %U' | |
| 26 | ''; | |
| 27 | ||
| 28 | meta = with lib; { | |
| 29 | description = "Awakened-PoE-Trade"; | |
| 30 | homepage = "https://github.com/SnosMe/awakened-poe-trade"; | |
| 31 | license = licenses.mit; | |
| 32 | maintainers = [ ]; | |
| 33 | platforms = [ "x86_64-linux" ]; | |
| 34 | }; | |
| 35 | } |
packages/exiled_exchange_2/default.nix created+34| ... | ... | @@ -0,0 +1,34 @@ |
| 1 | { pkgs, lib, ... }: | |
| 2 | ||
| 3 | let | |
| 4 | pname = "exiled-exchange-2"; | |
| 5 | version = "0.12.6"; | |
| 6 | name = "${pname}-${version}"; | |
| 7 | ||
| 8 | src = pkgs.fetchurl { | |
| 9 | url = "https://github.com/Kvan7/Exiled-Exchange-2/releases/download/v${version}/Exiled-Exchange-2-${version}.AppImage"; | |
| 10 | sha256 = "sha256-2CBdsLQ0EHTINd05ABv8NyCYt2ipYfwmkcpw0SLZRwc=="; | |
| 11 | }; | |
| 12 | ||
| 13 | appimageContents = pkgs.appimageTools.extract { inherit pname version src; }; | |
| 14 | in | |
| 15 | pkgs.appimageTools.wrapType2 rec { | |
| 16 | inherit pname version src; | |
| 17 | ||
| 18 | extraInstallCommands = '' | |
| 19 | install -m 444 -D ${appimageContents}/exiled-exchange-2.desktop $out/share/applications/${pname}.desktop | |
| 20 | ||
| 21 | install -m 444 -D ${appimageContents}/${pname}.png $out/share/icons/hicolor/512x512/apps/${pname}.png | |
| 22 | ||
| 23 | substituteInPlace $out/share/applications/${pname}.desktop \ | |
| 24 | 	--replace 'Exec=AppRun --no-sandbox %U' 'Exec=${pname} %U' | |
| 25 | ''; | |
| 26 | ||
| 27 | meta = with lib; { | |
| 28 | description = "Exiled Exchange 2"; | |
| 29 | homepage = "https://kvan7.github.io/Exiled-Exchange-2/"; | |
| 30 | license = licenses.mit; | |
| 31 | maintainers = [ ]; | |
| 32 | platforms = [ "x86_64-linux" ]; | |
| 33 | }; | |
| 34 | } |
switch+5-4| ... | ... | @@ -1,16 +1,17 @@ |
| 1 | 1 | #!/bin/sh |
| 2 | set -e | |
| 3 | cd "$(dirname "$0")" | |
| 2 | 4 | nh_subcommand="os" |
| 3 | 5 | fallback_command="nixos-rebuild" |
| 4 | hostname_file="$(dirname "$0")/.hostname" | |
| 5 | 6 | if [ -n "$1" ]; then |
| 6 | 7 | hostname="$1" |
| 7 | elif [ -f "$hostname_file" ]; then | |
| 8 | hostname=$(cat "$hostname_file") | |
| 8 | elif [ -f ".hostname" ]; then | |
| 9 | hostname=$(cat .hostname) | |
| 9 | 10 | fi |
| 10 | 11 | if [ -z "$hostname" ]; then |
| 11 | 12 | hostname="$(hostname)" |
| 12 | 13 | fi |
| 13 | printf "%s" "$hostname" >"$hostname_file" | |
| 14 | printf "%s" "$hostname" >.hostname | |
| 14 | 15 | if [ "$(uname -o)" = "Darwin" ]; then |
| 15 | 16 | nh_subcommand="darwin" |
| 16 | 17 | fallback_command="nix run .#darwin-rebuild" |
users/clover/configuration.nix+8| ... | ... | @@ -17,6 +17,14 @@ |
| 17 | 17 | ]; |
| 18 | 18 | }; |
| 19 | 19 | |
| 20 | homebrew = { | |
| 21 | enable = true; | |
| 22 | casks = [ | |
| 23 | "db-browser-for-sqlite" | |
| 24 | "alt-tab" | |
| 25 | ]; | |
| 26 | }; | |
| 27 | ||
| 20 | 28 | # system preferences |
| 21 | 29 | system.defaults = { |
| 22 | 30 | NSGlobalDomain = { |
users/clover/home.nix+82-133| ... | ... | @@ -1,4 +1,9 @@ |
| 1 | { pkgs, host, ... }: | |
| 1 | { | |
| 2 | config, | |
| 3 | pkgs, | |
| 4 | host, | |
| 5 | ... | |
| 6 | }: | |
| 2 | 7 | let |
| 3 | 8 | hostServer = false; |
| 4 | 9 | in |
| ... | ... | @@ -14,23 +19,19 @@ in |
| 14 | 19 | ripgrep |
| 15 | 20 | uv |
| 16 | 21 | nh |
| 17 | pkgs.autofmt | |
| 22 | autofmt | |
| 23 | gnupg | |
| 24 | nodejs_24 | |
| 18 | 25 | ]; |
| 19 | 26 | # packages to install for desktop environments (non-server) |
| 20 | 27 | desktop = [ |
| 21 | git-town | |
| 22 | lazygit | |
| 23 | jjui | |
| 24 | 28 | ]; |
| 25 | 29 | # packages to install on all servers |
| 26 | 30 | server = [ ]; |
| 27 | 31 | # packages to install on macOS desktops |
| 28 | darwin = [ | |
| 29 | raycast | |
| 30 | ]; | |
| 32 | darwin = [ ]; | |
| 31 | 33 | # packages to install on linux desktops |
| 32 | 34 | linux = [ |
| 33 | reaper # TODO: why does this break on macOS | |
| 34 | 35 | ]; |
| 35 | 36 | in |
| 36 | 37 | all ++ (if host.darwin then darwin else linux) ++ (if hostServer then server else desktop); |
| ... | ... | @@ -50,23 +51,32 @@ in |
| 50 | 51 | settings = { |
| 51 | 52 | theme = "light:Farmhouse Light,dark:Challenger Deep"; |
| 52 | 53 | font-family = "AT Name Mono"; |
| 53 | adjust-cursor-thickness = 1; | |
| 54 | background-opacity = 0.9; | |
| 54 | adjust-cursor-thickness = 2; | |
| 55 | background-opacity = 0.95; | |
| 55 | 56 | background-blur = true; |
| 57 | unfocused-split-opacity = 1; | |
| 56 | 58 | }; |
| 57 | 59 | }; |
| 58 | 60 | |
| 59 | 61 | # zsh is the shell i use |
| 60 | 62 | zsh = { |
| 61 | 63 | enable = true; |
| 64 | dotDir = "${config.xdg.configHome}/zsh"; | |
| 62 | 65 | shellAliases = { |
| 63 | 66 | switch = "~/config/switch"; |
| 64 | gg = "lazygit"; | |
| 65 | ga = "git add"; | |
| 66 | g = "git status"; | |
| 67 | gp = "git pull --rebase && git push"; | |
| 67 | ||
| 68 | # move a bookmark from the previous commit | |
| 69 | jf = "jj git fetch"; | |
| 70 | e = "jj edit"; | |
| 71 | d = "jj desc"; | |
| 72 | bup = "jj b m --from 'heads(::@- & bookmarks())' --to '@'"; | |
| 73 | moveself = "jj rebase -r @ -d"; | |
| 74 | logall = "jj log -r 'all()'"; | |
| 75 | cherry = "jj git fetch && jj split -i -p -m 'SPLIT_CHANGES' && jj edit -r 'description(\"SPLIT_CHANGES\")' && jj desc -m '' --edit"; | |
| 68 | 76 | }; |
| 69 | profileExtra = '' | |
| 77 | initContent = '' | |
| 78 | export PS1="%{$(tput setaf 207)%}%m%{$(tput setaf 15)%}:%{$(tput setaf 87)%}%~ %{$(tput sgr0)%}$ " | |
| 79 | ||
| 70 | 80 | function python() { |
| 71 | 81 | dirname=$(dirname $1 2>/dev/null) |
| 72 | 82 | if [ -z "$dirname" ]; then |
| ... | ... | @@ -74,11 +84,44 @@ in |
| 74 | 84 | fi |
| 75 | 85 | uv run --project "$dirname" "$@" |
| 76 | 86 | } |
| 87 | ||
| 88 | function bun() { | |
| 89 | if [[ "$1" = "build" ]]; then | |
| 90 | command bun run "$@" | |
| 91 | elif [[ "$1" = "bundle" ]]; then | |
| 92 | shift | |
| 93 | command bun build "$@" | |
| 94 | else | |
| 95 | command bun "$@" | |
| 96 | fi | |
| 97 | } | |
| 98 | ||
| 99 | function jj() { | |
| 100 | if [[ "$*" = "git push"* ]] && [[ "$*" != *"--dry-run"* ]]; then | |
| 101 | command jj "$@" --dry-run | |
| 102 | printf "Press any key to continue... " | |
| 103 | read -r | |
| 104 | command jj "$@" | |
| 105 | else | |
| 106 | command jj "$@" | |
| 107 | fi | |
| 108 | } | |
| 77 | 109 | ''; |
| 78 | 110 | }; |
| 79 | 111 | |
| 80 | # use a git-specific email | |
| 81 | git.userEmail = "git@paperclover.net"; | |
| 112 | git = { | |
| 113 | # use a git-specific email | |
| 114 | settings.user.email = "git@paperclover.net"; | |
| 115 | settings.gpg.ssh.allowedSignersFile = "${pkgs.writeText "allowed_signers" '' | |
| 116 | git@paperclover.net ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAVa1aq1LEj/VXHJYlR5HJpK65lS/9jOL/dAB9ZS1chd | |
| 117 | ''}"; | |
| 118 | # signing | |
| 119 | signing = { | |
| 120 | signByDefault = true; | |
| 121 | key = "~/.ssh/id_ed25519"; | |
| 122 | format = "ssh"; | |
| 123 | }; | |
| 124 | }; | |
| 82 | 125 | |
| 83 | 126 | jujutsu = { |
| 84 | 127 | enable = true; |
| ... | ... | @@ -148,133 +191,39 @@ in |
| 148 | 191 | }; |
| 149 | 192 | # ui.graph.style = "square"; |
| 150 | 193 | revsets = { |
| 151 | log = "ancestors(description(regex:\"^(WIP:|\\\\s*$)\"), 3) | ancestors(immutable_heads(), 2) | ancestors(visible_heads(), 2)"; | |
| 152 | 194 | short-prefixes = "(trunk()..@)::"; |
| 153 | 195 | }; |
| 154 | templates.log = "hl_wip(self)"; | |
| 155 | ||
| 156 | template-aliases = { | |
| 157 | # log template, highlighting the WIP commits by making everything else faded out | |
| 158 | "hl_wip(commit)" = '' | |
| 159 | if(commit.root(), format_root_commit(commit), | |
| 160 | label("__commit__", | |
| 161 | format_short_commit_header(commit) ++ "\n" ++ | |
| 162 | format_commit_description(commit) | |
| 163 | ) | |
| 164 | ) | |
| 165 | ''; | |
| 166 | ||
| 167 | "format_commit_description(commit)" = '' | |
| 168 | label("desc", format_commit_firstline(commit.description().first_line())) ++ | |
| 169 | "\n" ++ if( | |
| 170 | commit.description().starts_with("WIP:") || commit.current_working_copy(), | |
| 171 | commit.description().remove_prefix(commit.description().first_line()).remove_prefix("\n").trim_end() ++ "\n ", | |
| 172 | if(commit.description().remove_prefix(commit.description().first_line()).trim().len() > 0, | |
| 173 | label("muted", lines_collapsed(commit.description().lines().filter(|x| x.trim().len() > 0).len() - 1)), | |
| 174 | " " | |
| 175 | ) | |
| 176 | ) | |
| 177 | ''; | |
| 178 | "lines_collapsed(count)" = | |
| 179 | ''("[" ++ stringify(count ++ " line" ++ if(count == 1, "", "s")) ++ " collapsed]\n")''; | |
| 180 | "format_commit_firstline(line)" = '' | |
| 181 | if(line.starts_with("WIP:"), | |
| 182 | label("cc_wip", " WIP ") ++ " " ++ format_commit_firstline_a_wip(line.remove_prefix("WIP:").trim()), | |
| 183 | format_commit_firstline_a_wip(line) | |
| 184 | ) | |
| 185 | ''; | |
| 186 | "format_commit_firstline_a_wip(line)" = '' | |
| 187 | if(line.starts_with("feat:") || line.starts_with("feat("), | |
| 188 | label("cc_feat", "feat") ++ format_commit_firstline_a_cc_type(line.remove_prefix("feat")), | |
| 189 | if(line.starts_with("fix:") || line.starts_with("fix("), | |
| 190 | label("cc_fix", "fix") ++ format_commit_firstline_a_cc_type(line.remove_prefix("fix")), | |
| 191 | if(line.starts_with("hotfix:") || line.starts_with("hotfix("), | |
| 192 | label("cc_hotfix", "hotfix") ++ format_commit_firstline_a_cc_type(line.remove_prefix("hotfix")), | |
| 193 | if(line.starts_with("chore:") || line.starts_with("chore("), | |
| 194 | label("cc_chore", "chore") ++ format_commit_firstline_a_cc_type(line.remove_prefix("chore")), | |
| 195 | if(line.starts_with("test:") || line.starts_with("test("), | |
| 196 | label("cc_other", "test") ++ format_commit_firstline_a_cc_type(line.remove_prefix("test")), | |
| 197 | if(line.starts_with("refactor:") || line.starts_with("refactor("), | |
| 198 | label("cc_other", "refactor") ++ format_commit_firstline_a_cc_type(line.remove_prefix("refactor")), | |
| 199 | if(line.starts_with("perf:") || line.starts_with("perf("), | |
| 200 | label("cc_other", "perf") ++ format_commit_firstline_a_cc_type(line.remove_prefix("perf")), | |
| 201 | if(line.starts_with("lib:") || line.starts_with("lib("), | |
| 202 | label("cc_other", "lib") ++ format_commit_firstline_a_cc_type(line.remove_prefix("lib")), | |
| 203 | label("cc_header", line) | |
| 204 | )))))))) | |
| 205 | ''; | |
| 206 | "format_commit_firstline_a_cc_type(rest)" = '' | |
| 207 | if(rest.starts_with("(") && rest.contains(")"), | |
| 208 | format_firstline_cc_scope(rest, index_of_close_paren(rest)), | |
| 209 | format_firstline_a_cc(rest)) | |
| 210 | ''; | |
| 211 | "format_firstline_cc_scope(rest, index)" = '' | |
| 212 | label("cc_scope", rest.substr(0, index)) ++ format_firstline_a_cc(rest.substr(index, rest.len())) | |
| 213 | ''; | |
| 214 | "format_firstline_a_cc(rest)" = '' | |
| 215 | if(rest.starts_with(":"), | |
| 216 | label("muted", ":") ++ label("cc_header", rest.remove_prefix(":")), | |
| 217 | label("cc_header", rest) | |
| 218 | ) | |
| 219 | ''; | |
| 220 | # sorry! | |
| 221 | "index_of_close_paren(line)" = '' | |
| 222 | stringify(if(line.substr(1, 2) == ")", "A", | |
| 223 | if(line.substr(2, 3) == ")", "AA", | |
| 224 | if(line.substr(3, 4) == ")", "AAA", | |
| 225 | if(line.substr(4, 5) == ")", "AAAA", | |
| 226 | if(line.substr(5, 6) == ")", "AAAAA", | |
| 227 | if(line.substr(6, 7) == ")", "AAAAAA", | |
| 228 | if(line.substr(7, 8) == ")", "AAAAAAA", | |
| 229 | if(line.substr(8, 9) == ")", "AAAAAAAA", | |
| 230 | if(line.substr(9, 10) == ")","AAAAAAAAA", | |
| 231 | if(line.substr(10, 11) == ")", "AAAAAAAAAA", | |
| 232 | if(line.substr(11, 12) == ")", "AAAAAAAAAAA", | |
| 233 | if(line.substr(12, 13) == ")", "AAAAAAAAAAAA", | |
| 234 | if(line.substr(13, 14) == ")", "AAAAAAAAAAAAA", | |
| 235 | if(line.substr(14, 15) == ")", "AAAAAAAAAAAAAA", | |
| 236 | if(line.substr(15, 16) == ")", "AAAAAAAAAAAAAAA", | |
| 237 | if(line.substr(16, 17) == ")", "AAAAAAAAAAAAAAAA", | |
| 238 | if(line.substr(17, 18) == ")", "AAAAAAAAAAAAAAAAA", | |
| 239 | if(line.substr(18, 19) == ")", "AAAAAAAAAAAAAAAAAA", | |
| 240 | if(line.substr(19, 20) == ")", "AAAAAAAAAAAAAAAAAAA", | |
| 241 | if(line.substr(20, 21) == ")", "AAAAAAAAAAAAAAAAAAAA", | |
| 242 | "AAAAAAAAAAAAAAAAAAAAA" | |
| 243 | ))))))))))))))))))))).len() + 1 | |
| 244 | ''; | |
| 245 | ||
| 246 | "format_short_signature(signature)" = "signature.name()"; | |
| 247 | "format_timestamp(timestamp)" = "timestamp.ago()"; | |
| 248 | "format_short_commit_header(commit)" = '' | |
| 249 | separate(" ", | |
| 250 | if(commit.current_working_copy(), label("active_marker", " ACTIVE ")), | |
| 251 | if(commit.conflict(), label("conflict_marker", " CONFLICT ")), | |
| 252 | format_short_change_id_with_hidden_and_divergent_info(commit), | |
| 253 | format_short_signature(commit.author()), | |
| 254 | label("muted", "|"), | |
| 255 | if(commit.description().trim().len() > 0, label("muted", format_timestamp(commit_timestamp(commit)))), | |
| 256 | commit.bookmarks(), | |
| 257 | commit.tags(), | |
| 258 | commit.working_copies(), | |
| 259 | label("muted", "(") ++ | |
| 260 | format_short_commit_id(commit.commit_id()) ++ | |
| 261 | label("muted", ")"), | |
| 262 | if(config("ui.show-cryptographic-signatures").as_boolean(), | |
| 263 | format_short_cryptographic_signature(commit.signature())), | |
| 264 | ) | |
| 265 | ''; | |
| 196 | aliases = { | |
| 197 | "ab" = [ "abandon" ]; | |
| 198 | # "ai" = [ | |
| 199 | # "util" | |
| 200 | # "exec" | |
| 201 | # "--" | |
| 202 | # "~/jj-ai-sync.sh" | |
| 203 | # ]; | |
| 266 | 204 | }; |
| 267 | 205 | }; |
| 268 | 206 | }; |
| 269 | 207 | |
| 270 | 208 | ssh = { |
| 271 | 209 | enable = true; |
| 210 | enableDefaultConfig = false; | |
| 211 | extraConfig = '' | |
| 212 | Include ~/.orbstack/ssh/config* | |
| 213 | ||
| 214 | SetEnv TERM=xterm-256color | |
| 215 | ''; | |
| 272 | 216 | matchBlocks = rec { |
| 217 | "*" = { }; | |
| 273 | 218 | zenith = { |
| 274 | 219 | user = "clo"; |
| 275 | port = 222; | |
| 220 | port = 22; | |
| 221 | }; | |
| 222 | "git.paperclover.net" = zenith; | |
| 223 | "paperclover.net" = { | |
| 224 | user = "clo"; | |
| 225 | port = 22; | |
| 276 | 226 | }; |
| 277 | "nas.paperclover.net" = zenith; | |
| 278 | 227 | }; |
| 279 | 228 | }; |
| 280 | 229 | }; |
users/clover/paperback/configuration.nix-6| ... | ... | @@ -1,8 +1,2 @@ |
| 1 | 1 | _: { |
| 2 | homebrew = { | |
| 3 | enable = true; | |
| 4 | casks = [ | |
| 5 | "db-browser-for-sqlite" | |
| 6 | ]; | |
| 7 | }; | |
| 8 | 2 | } |
users/clover/paperback/home.nix-1| ... | ... | @@ -12,7 +12,6 @@ |
| 12 | 12 | }; |
| 13 | 13 | home.packages = with pkgs; [ |
| 14 | 14 | deno |
| 15 | nodejs_22 | |
| 16 | 15 | rustup |
| 17 | 16 | typescript |
| 18 | 17 | pm2 |
users/clover/work/home.nix+3-3| ... | ... | @@ -8,17 +8,17 @@ |
| 8 | 8 | } |
| 9 | 9 | ''; |
| 10 | 10 | }; |
| 11 | programs.git.signing.key = "CE485807AE4068AF8508C8DC5CBB21841C7920AD"; | |
| 11 | 12 | home.packages = with pkgs; [ |
| 12 | 13 | (bun.overrideAttrs (_: rec { |
| 13 | version = "1.1.17"; | |
| 14 | version = "1.3.0"; | |
| 14 | 15 | src = fetchurl { |
| 15 | 16 | url = "https://github.com/oven-sh/bun/releases/download/bun-v${version}/bun-darwin-aarch64.zip"; |
| 16 | hash = "sha256-aULgRZ9evcGUhKJ6slLJOg3IEzUeNfIkJF8RDP3YUlo="; | |
| 17 | hash = "sha256-hYSOP5ZIHvyr51pQD9O5S5u5VoaretCjiSl2x74VA2o="; | |
| 17 | 18 | }; |
| 18 | 19 | })) |
| 19 | 20 | doppler |
| 20 | 21 | deno |
| 21 | nodejs_24 | |
| 22 | 22 | rustup |
| 23 | 23 | typescript |
| 24 | 24 | ssm-session-manager-plugin |
users/natalie/desktop/configuration.nix+37-6| ... | ... | @@ -10,7 +10,19 @@ |
| 10 | 10 | ./hardware-configuration.nix |
| 11 | 11 | ]; |
| 12 | 12 | documentation.man.generateCaches = false; |
| 13 | services.displayManager = { | |
| 14 | enable = true; | |
| 15 | sddm = { | |
| 16 | enable = true; | |
| 17 | wayland.enable = true; | |
| 18 | }; | |
| 19 | }; | |
| 20 | ||
| 13 | 21 | programs = { |
| 22 | hyprland = { | |
| 23 | enable = true; | |
| 24 | withUWSM = true; | |
| 25 | }; | |
| 14 | 26 | gamemode.enable = true; |
| 15 | 27 | |
| 16 | 28 | _1password.enable = true; |
| ... | ... | @@ -35,7 +47,19 @@ |
| 35 | 47 | |
| 36 | 48 | steam = { |
| 37 | 49 | enable = true; |
| 38 | package = with pkgs; steam.override { extraPkgs = pkgs: [ attr ]; }; | |
| 50 | remotePlay.openFirewall = true; | |
| 51 | ||
| 52 | gamescopeSession.enable = true; | |
| 53 | extraCompatPackages = [ pkgs.proton-ge-bin ]; | |
| 54 | }; | |
| 55 | ||
| 56 | gamescope = { | |
| 57 | enable = true; | |
| 58 | capSysNice = true; | |
| 59 | args = [ | |
| 60 | "--rt" | |
| 61 | "--expose-wayland" | |
| 62 | ]; | |
| 39 | 63 | }; |
| 40 | 64 | |
| 41 | 65 | git = { |
| ... | ... | @@ -56,12 +80,23 @@ |
| 56 | 80 | }; |
| 57 | 81 | |
| 58 | 82 | hardware.bluetooth.enable = true; |
| 83 | hardware.graphics.enable = true; | |
| 59 | 84 | |
| 60 | 85 | xdg.portal = { |
| 61 | 86 | enable = true; |
| 87 | xdgOpenUsePortal = true; | |
| 88 | config = { | |
| 89 | common.default = [ "gtk" ]; | |
| 90 | hyprland.default = [ | |
| 91 | "gtk" | |
| 92 | "hyprland" | |
| 93 | ]; | |
| 94 | }; | |
| 95 | ||
| 62 | 96 | extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; |
| 63 | 97 | }; |
| 64 | 98 | virtualisation = { |
| 99 | waydroid.enable = true; | |
| 65 | 100 | containers.enable = true; |
| 66 | 101 | podman = { |
| 67 | 102 | enable = true; |
| ... | ... | @@ -83,6 +118,7 @@ |
| 83 | 118 | hibernate.enable = false; |
| 84 | 119 | hybrid-sleep.enable = false; |
| 85 | 120 | }; |
| 121 | settings.Manager.DefaultTimeoutStopSec = "10s"; | |
| 86 | 122 | |
| 87 | 123 | services.monitord.wantedBy = [ "multi-user.target" ]; |
| 88 | 124 | }; |
| ... | ... | @@ -121,11 +157,6 @@ |
| 121 | 157 | |
| 122 | 158 | # Enable sound with pipewire. |
| 123 | 159 | security.rtkit.enable = true; |
| 124 | services = { | |
| 125 | desktopManager.cosmic.enable = true; | |
| 126 | displayManager.cosmic-greeter.enable = true; | |
| 127 | desktopManager.cosmic.xwayland.enable = true; | |
| 128 | }; | |
| 129 | 160 | |
| 130 | 161 | # Enable touchpad support (enabled default in most desktopManager). |
| 131 | 162 | # services.xserver.libinput.enable = true; |
users/natalie/desktop/home.nix+4-2| ... | ... | @@ -15,8 +15,7 @@ |
| 15 | 15 | packages = with pkgs; [ |
| 16 | 16 | #building macos apps hard :( |
| 17 | 17 | ghostty |
| 18 | stremio | |
| 19 | julia | |
| 18 | #stremio broken qtwebengine | |
| 20 | 19 | qbittorrent |
| 21 | 20 | |
| 22 | 21 | #gaming |
| ... | ... | @@ -34,6 +33,9 @@ |
| 34 | 33 | limo |
| 35 | 34 | nexusmods-app-unfree |
| 36 | 35 | protontricks |
| 36 | (pkgs.callPackage ../../../packages/exiled_exchange_2 { }) | |
| 37 | awakened_poe_trade | |
| 38 | fuse-overlayfs | |
| 37 | 39 | |
| 38 | 40 | #window manager stuff |
| 39 | 41 | wofi |
users/natalie/home.nix+7| ... | ... | @@ -5,6 +5,9 @@ |
| 5 | 5 | ... |
| 6 | 6 | }@args: |
| 7 | 7 | { |
| 8 | imports = [ | |
| 9 | ./home | |
| 10 | ]; | |
| 8 | 11 | programs = { |
| 9 | 12 | # sort-lines:start |
| 10 | 13 | atuin.enable = true; |
| ... | ... | @@ -28,6 +31,10 @@ |
| 28 | 31 | }; |
| 29 | 32 | }; |
| 30 | 33 | # sort-lines:end |
| 34 | ghostty = { | |
| 35 | enable = true; | |
| 36 | settings.theme = "Catppuccin Mocha"; | |
| 37 | }; | |
| 31 | 38 | |
| 32 | 39 | fish = { |
| 33 | 40 | shellAliases = |
users/natalie/home/default.nix created+12| ... | ... | @@ -0,0 +1,12 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | imports = [ | |
| 4 | ./tmux.nix | |
| 5 | ./hyprland | |
| 6 | ./vicinae.nix | |
| 7 | ./swaync.nix | |
| 8 | ./gtk.nix | |
| 9 | ./waybar | |
| 10 | ./scripts | |
| 11 | ]; | |
| 12 | } |
users/natalie/home/gtk.nix created+35| ... | ... | @@ -0,0 +1,35 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | ||
| 4 | gtk = { | |
| 5 | enable = true; | |
| 6 | ||
| 7 | font = { | |
| 8 | name = "Maple Mono"; | |
| 9 | size = 12; | |
| 10 | }; | |
| 11 | theme = { | |
| 12 | name = "Catppuccin-GTK-Dark"; | |
| 13 | package = pkgs.magnetic-catppuccin-gtk.override { | |
| 14 | tweaks = [ | |
| 15 | "float" | |
| 16 | ]; | |
| 17 | }; | |
| 18 | }; | |
| 19 | iconTheme = { | |
| 20 | name = "Papirus-Dark"; | |
| 21 | package = pkgs.papirus-icon-theme; | |
| 22 | }; | |
| 23 | cursorTheme = { | |
| 24 | name = "Bibata-Modern-Ice"; | |
| 25 | package = pkgs.bibata-cursors; | |
| 26 | size = 24; | |
| 27 | }; | |
| 28 | }; | |
| 29 | ||
| 30 | home.pointerCursor = { | |
| 31 | name = "Bibata-Modern-Ice"; | |
| 32 | package = pkgs.bibata-cursors; | |
| 33 | size = 24; | |
| 34 | }; | |
| 35 | } |
users/natalie/home/hyprland/binds.nix created+158| ... | ... | @@ -0,0 +1,158 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland.settings = { | |
| 4 | binds = { | |
| 5 | movefocus_cycles_fullscreen = true; | |
| 6 | }; | |
| 7 | ||
| 8 | bind = [ | |
| 9 | # show keybinds list | |
| 10 | "$mainMod, F1, exec, show-keybinds" | |
| 11 | ||
| 12 | # keybindings | |
| 13 | "$mainMod, Return, exec, ${pkgs.ghostty}/bin/ghostty --gtk-single-instance=true" | |
| 14 | "$mainMod, P, pseudo," | |
| 15 | "$mainMod, C, killactive," | |
| 16 | "$mainMod, M, exit, " | |
| 17 | "$mainMod, E, exec, $fileManager" | |
| 18 | "$mainMod, F, togglefloating," | |
| 19 | "$mainMod, R, exec, $menu " | |
| 20 | "$mainMod, J, togglesplit " | |
| 21 | "$mainMod, Space, exec, vicinae vicinae://toggle" | |
| 22 | # "ALT, Return, exec, [float; size 1111 700] ghostty" | |
| 23 | # "$mainMod SHIFT, Return, exec, [fullscreen] ghostty" | |
| 24 | # "$mainMod, B, exec, [workspace 1 silent] zen-beta" | |
| 25 | # "$mainMod, Q, killactive," | |
| 26 | # "$mainMod, F, fullscreen, 0" | |
| 27 | # "$mainMod SHIFT, F, fullscreen, 1" | |
| 28 | # "$mainMod, Space, exec, toggle-float" | |
| 29 | # "$mainMod SHIFT, D, exec, webcord --enable-features=UseOzonePlatform --ozone-platform=wayland" | |
| 30 | # "$mainMod SHIFT, S, exec, hyprctl dispatch exec '[workspace 5 silent] SoundWireServer'" | |
| 31 | # "$mainMod, Escape, exec, swaylock" | |
| 32 | # "ALT, Escape, exec, hyprlock" | |
| 33 | # "$mainMod SHIFT, Escape, exec, power-menu" | |
| 34 | # "$mainMod, X, togglesplit," | |
| 35 | # "$mainMod, T, exec, toggle-oppacity" | |
| 36 | # "$mainMod, E, exec, nemo" | |
| 37 | # "ALT, E, exec, hyprctl dispatch exec '[float; size 1111 700] nemo'" | |
| 38 | # "$mainMod SHIFT, B, exec, toggle-waybar" | |
| 39 | # "$mainMod, C ,exec, hyprpicker -a" | |
| 40 | # "$mainMod, W,exec, wallpaper-picker" | |
| 41 | # "$mainMod SHIFT, W,exec, hyprctl dispatch exec '[float; size 925 615] waypaper'" | |
| 42 | # "$mainMod, N, exec, swaync-client -t -sw" | |
| 43 | # "CTRL SHIFT, Escape, exec, hyprctl dispatch exec '[workspace 9] missioncenter'" | |
| 44 | # "$mainMod, equal, exec, woomer" | |
| 45 | # "$mainMod SHIFT, W, exec, vm-start" | |
| 46 | ||
| 47 | # screenshot | |
| 48 | ",Print, exec, screenshot --copy" | |
| 49 | "$mainMod, Print, exec, screenshot --save" | |
| 50 | "$mainMod SHIFT, Print, exec, screenshot --swappy" | |
| 51 | ||
| 52 | # switch focus | |
| 53 | "$mainMod, left, movefocus, l" | |
| 54 | "$mainMod, right, movefocus, r" | |
| 55 | "$mainMod, up, movefocus, u" | |
| 56 | "$mainMod, down, movefocus, d" | |
| 57 | "$mainMod, h, movefocus, l" | |
| 58 | "$mainMod, j, movefocus, d" | |
| 59 | "$mainMod, k, movefocus, u" | |
| 60 | "$mainMod, l, movefocus, r" | |
| 61 | ||
| 62 | "$mainMod, left, alterzorder, top" | |
| 63 | "$mainMod, right, alterzorder, top" | |
| 64 | "$mainMod, up, alterzorder, top" | |
| 65 | "$mainMod, down, alterzorder, top" | |
| 66 | "$mainMod, h, alterzorder, top" | |
| 67 | "$mainMod, j, alterzorder, top" | |
| 68 | "$mainMod, k, alterzorder, top" | |
| 69 | "$mainMod, l, alterzorder, top" | |
| 70 | ||
| 71 | "CTRL ALT, up, exec, hyprctl dispatch focuswindow floating" | |
| 72 | "CTRL ALT, down, exec, hyprctl dispatch focuswindow tiled" | |
| 73 | ||
| 74 | # switch workspace | |
| 75 | "$mainMod, 1, split-workspace, 1" | |
| 76 | "$mainMod, 2, split-workspace, 2" | |
| 77 | "$mainMod, 3, split-workspace, 3" | |
| 78 | "$mainMod, 4, split-workspace, 4" | |
| 79 | "$mainMod, 5, split-workspace, 5" | |
| 80 | "$mainMod, 6, split-workspace, 6" | |
| 81 | "$mainMod, 7, split-workspace, 7" | |
| 82 | "$mainMod, 8, split-workspace, 8" | |
| 83 | "$mainMod, 9, split-workspace, 9" | |
| 84 | "$mainMod, 0, split-workspace, 10" | |
| 85 | ||
| 86 | # same as above, but switch to the workspace | |
| 87 | "$mainMod SHIFT, 1, split-movetoworkspacesilent, 1" # movetoworkspacesilent | |
| 88 | "$mainMod SHIFT, 2, split-movetoworkspacesilent, 2" | |
| 89 | "$mainMod SHIFT, 3, split-movetoworkspacesilent, 3" | |
| 90 | "$mainMod SHIFT, 4, split-movetoworkspacesilent, 4" | |
| 91 | "$mainMod SHIFT, 5, split-movetoworkspacesilent, 5" | |
| 92 | "$mainMod SHIFT, 6, split-movetoworkspacesilent, 6" | |
| 93 | "$mainMod SHIFT, 7, split-movetoworkspacesilent, 7" | |
| 94 | "$mainMod SHIFT, 8, split-movetoworkspacesilent, 8" | |
| 95 | "$mainMod SHIFT, 9, split-movetoworkspacesilent, 9" | |
| 96 | "$mainMod SHIFT, 0, split-movetoworkspacesilent, 10" | |
| 97 | "$mainMod CTRL, c, split-movetoworkspace, empty" | |
| 98 | ||
| 99 | # window control | |
| 100 | "$mainMod SHIFT, left, movewindow, l" | |
| 101 | "$mainMod SHIFT, right, movewindow, r" | |
| 102 | "$mainMod SHIFT, up, movewindow, u" | |
| 103 | "$mainMod SHIFT, down, movewindow, d" | |
| 104 | "$mainMod SHIFT, h, movewindow, l" | |
| 105 | "$mainMod SHIFT, j, movewindow, d" | |
| 106 | "$mainMod SHIFT, k, movewindow, u" | |
| 107 | "$mainMod SHIFT, l, movewindow, r" | |
| 108 | ||
| 109 | "$mainMod CTRL, left, resizeactive, -80 0" | |
| 110 | "$mainMod CTRL, right, resizeactive, 80 0" | |
| 111 | "$mainMod CTRL, up, resizeactive, 0 -80" | |
| 112 | "$mainMod CTRL, down, resizeactive, 0 80" | |
| 113 | "$mainMod CTRL, h, resizeactive, -80 0" | |
| 114 | "$mainMod CTRL, j, resizeactive, 0 80" | |
| 115 | "$mainMod CTRL, k, resizeactive, 0 -80" | |
| 116 | "$mainMod CTRL, l, resizeactive, 80 0" | |
| 117 | ||
| 118 | "$mainMod ALT, left, moveactive, -80 0" | |
| 119 | "$mainMod ALT, right, moveactive, 80 0" | |
| 120 | "$mainMod ALT, up, moveactive, 0 -80" | |
| 121 | "$mainMod ALT, down, moveactive, 0 80" | |
| 122 | "$mainMod ALT, h, moveactive, -80 0" | |
| 123 | "$mainMod ALT, j, moveactive, 0 80" | |
| 124 | "$mainMod ALT, k, moveactive, 0 -80" | |
| 125 | "$mainMod ALT, l, moveactive, 80 0" | |
| 126 | ||
| 127 | # media and volume controls | |
| 128 | # ",XF86AudioMute,exec, pamixer -t" | |
| 129 | ",XF86AudioPlay,exec, playerctl play-pause" | |
| 130 | ",XF86AudioNext,exec, playerctl next" | |
| 131 | ",XF86AudioPrev,exec, playerctl previous" | |
| 132 | ",XF86AudioStop,exec, playerctl stop" | |
| 133 | ||
| 134 | "$mainMod, mouse_down, split-workspace, e-1" | |
| 135 | "$mainMod, mouse_up, split-workspace, e+1" | |
| 136 | ||
| 137 | # clipboard manager | |
| 138 | "$mainMod, V, exec, vicinae vicinae://extensions/vicinae/clipboard/history" | |
| 139 | #awakened-poe-trade | |
| 140 | # "SHIFT,Space,pass,class:^(awakened-poe-trade)$" | |
| 141 | # "CTRL,D,pass,class:^(awakened-poe-trade)$" | |
| 142 | # "CTRL ALT,D,pass,class:^(awakened-poe-trade)$" | |
| 143 | ]; | |
| 144 | ||
| 145 | bindel = [ | |
| 146 | ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" | |
| 147 | ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" | |
| 148 | ",XF86AudioMute, exec, pctl set-mute @DEFAULT_AUDIO_SINK@ toggle" | |
| 149 | ",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle" | |
| 150 | ]; | |
| 151 | ||
| 152 | # mouse binding | |
| 153 | bindm = [ | |
| 154 | "$mainMod, mouse:272, movewindow" | |
| 155 | "$mainMod, mouse:273, resizewindow" | |
| 156 | ]; | |
| 157 | }; | |
| 158 | } |
users/natalie/home/hyprland/default.nix created+14| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | imports = [ | |
| 4 | ./hyprland.nix | |
| 5 | ./exec-once.nix | |
| 6 | ./monitors.nix | |
| 7 | ./settings.nix | |
| 8 | ./binds.nix | |
| 9 | ./windowrules.nix | |
| 10 | ./hyprlock.nix | |
| 11 | ./variables.nix | |
| 12 | ./plugins.nix | |
| 13 | ]; | |
| 14 | } |
users/natalie/home/hyprland/exec-once.nix created+31| ... | ... | @@ -0,0 +1,31 @@ |
| 1 | { | |
| 2 | pkgs, | |
| 3 | inputs, | |
| 4 | currentSystem, | |
| 5 | ... | |
| 6 | }: | |
| 7 | { | |
| 8 | wayland.windowManager.hyprland.settings.exec-once = [ | |
| 9 | # "hash dbus-update-activation-environment 2>/dev/null" | |
| 10 | "dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" | |
| 11 | "systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP" | |
| 12 | ||
| 13 | "${pkgs.hyprlock}/bin/hyprlock" | |
| 14 | ||
| 15 | "${pkgs.networkmanagerapplet}/bin/nm-applet &" | |
| 16 | "${pkgs.wl-clip-persist}/bin/wl-clip-persist --clipboard both &" | |
| 17 | "${pkgs.wl-clipboard}/bin/wl-paste --watch cliphist store &" | |
| 18 | # "${pkgs.waybar}/bin/waybar &" | |
| 19 | "${pkgs.swaynotificationcenter}/bin/swaync &" | |
| 20 | "${inputs.vicinae.packages.${currentSystem}.default}/bin/vicinae server &" | |
| 21 | "${pkgs.udiskie}/bin/udiskie --automount --notify --smart-tray &" | |
| 22 | "${pkgs.hyprland}/bin/hyprctl setcursor Bibata-Modern-Ice 24 &" | |
| 23 | "${pkgs.tmux}/bin/tmux setenv -g HYPRLAND_INSTANCE_SIGNATURE '$HYPRLAND_INSTANCE_SIGNATURE'" | |
| 24 | "systemctl --user start hyprpolkitagent" | |
| 25 | # "init-wallpaper &" | |
| 26 | # | |
| 27 | # "ghostty --gtk-single-instance=true --quit-after-last-window-closed=false --initial-window=false" | |
| 28 | # "[workspace 1 silent] zen-beta" | |
| 29 | # "[workspace 2 silent] ghostty" | |
| 30 | ]; | |
| 31 | } |
users/natalie/home/hyprland/hyprland.nix created+37| ... | ... | @@ -0,0 +1,37 @@ |
| 1 | { config, pkgs, ... }: | |
| 2 | { | |
| 3 | home.packages = with pkgs; [ | |
| 4 | swww | |
| 5 | grimblast | |
| 6 | hyprpicker | |
| 7 | grim | |
| 8 | slurp | |
| 9 | wl-clip-persist | |
| 10 | wl-clipboard | |
| 11 | cliphist | |
| 12 | wf-recorder | |
| 13 | glib | |
| 14 | wayland | |
| 15 | playerctl | |
| 16 | waybar | |
| 17 | networkmanagerapplet | |
| 18 | hyprpolkitagent | |
| 19 | swappy | |
| 20 | ]; | |
| 21 | # systemd.user.targets.hyprland-session.Unit.Wants = [ | |
| 22 | # "xdg-desktop-autostart.target" | |
| 23 | # ]; | |
| 24 | wayland.windowManager.hyprland = { | |
| 25 | enable = true; | |
| 26 | package = null; | |
| 27 | portalPackage = null; | |
| 28 | ||
| 29 | xwayland = { | |
| 30 | enable = true; | |
| 31 | }; | |
| 32 | systemd.enable = false; | |
| 33 | }; | |
| 34 | # https://wiki.hypr.land/Nix/Hyprland-on-Home-Manager/#nixos-uwsm | |
| 35 | xdg.configFile."uwsm/env".source = | |
| 36 | "${config.home.sessionVariablesPackage}/etc/profile.d/hm-session-vars.sh"; | |
| 37 | } |
users/natalie/home/hyprland/hyprlock.nix created+112| ... | ... | @@ -0,0 +1,112 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | programs.hyprlock = { | |
| 4 | enable = false; | |
| 5 | ||
| 6 | settings = { | |
| 7 | general = { | |
| 8 | hide_cursor = true; | |
| 9 | ignore_empty_input = true; | |
| 10 | fractional_scaling = 0; | |
| 11 | }; | |
| 12 | ||
| 13 | background = [ | |
| 14 | { | |
| 15 | color = "rgba(29, 32, 33, 255)"; | |
| 16 | blur_passes = 2; | |
| 17 | vibrancy_darkness = 0.0; | |
| 18 | } | |
| 19 | ]; | |
| 20 | # | |
| 21 | # shape = [ | |
| 22 | # # User box | |
| 23 | # { | |
| 24 | # size = "300, 50"; | |
| 25 | # | |
| 26 | # rounding = 0; | |
| 27 | # border_size = 2; | |
| 28 | # color = "rgba(102, 92, 84, 0.33)"; | |
| 29 | # border_color = "rgba(168, 153, 132, 0.95)"; | |
| 30 | # | |
| 31 | # position = "0, ${if host == "laptop" then "120" else "270"}"; | |
| 32 | # halign = "center"; | |
| 33 | # valign = "bottom"; | |
| 34 | # } | |
| 35 | # ]; | |
| 36 | # | |
| 37 | # label = [ | |
| 38 | # # Time | |
| 39 | # { | |
| 40 | # text = ''cmd[update:1000] echo "$(date +'%k:%M')"''; | |
| 41 | # | |
| 42 | # font_size = 115; | |
| 43 | # font_family = "Maple Mono Bold"; | |
| 44 | # | |
| 45 | # shadow_passes = 3; | |
| 46 | # color = "rgba(235, 219, 178, 0.9)"; | |
| 47 | # | |
| 48 | # position = "0, ${if host == "laptop" then "-25" else "-150"}"; | |
| 49 | # halign = "center"; | |
| 50 | # valign = "top"; | |
| 51 | # } | |
| 52 | # # Date | |
| 53 | # { | |
| 54 | # text = ''cmd[update:1000] echo "- $(date +'%A, %B %d') -" ''; | |
| 55 | # | |
| 56 | # font_size = 18; | |
| 57 | # font_family = "Maple Mono"; | |
| 58 | # | |
| 59 | # shadow_passes = 3; | |
| 60 | # color = "rgba(235, 219, 178, 0.9)"; | |
| 61 | # | |
| 62 | # position = "0, ${if host == "laptop" then "-225" else "-350"}"; | |
| 63 | # halign = "center"; | |
| 64 | # valign = "top"; | |
| 65 | # } | |
| 66 | # # Username | |
| 67 | # { | |
| 68 | # text = " $USER"; | |
| 69 | # | |
| 70 | # font_size = 15; | |
| 71 | # font_family = "Maple Mono Bold"; | |
| 72 | # | |
| 73 | # color = "rgba(235, 219, 178, 1)"; | |
| 74 | # | |
| 75 | # position = "0, ${if host == "laptop" then "134" else "284"}"; | |
| 76 | # halign = "center"; | |
| 77 | # valign = "bottom"; | |
| 78 | # } | |
| 79 | # ]; | |
| 80 | # | |
| 81 | # input-field = [ | |
| 82 | # { | |
| 83 | # size = "300, 50"; | |
| 84 | # rounding = 0; | |
| 85 | # outline_thickness = 2; | |
| 86 | # | |
| 87 | # dots_spacing = 0.4; | |
| 88 | # | |
| 89 | # font_color = "rgba(235, 219, 178, 0.9)"; | |
| 90 | # font_family = "Maple Mono Bold"; | |
| 91 | # | |
| 92 | # outer_color = "rgba(168, 153, 132, 0.95)"; | |
| 93 | # inner_color = "rgba(102, 92, 84, 0.33)"; | |
| 94 | # check_color = "rgba(152, 151, 26, 0.95)"; | |
| 95 | # fail_color = "rgba(204, 36, 29, 0.95)"; | |
| 96 | # capslock_color = "rgba(215, 153, 33, 0.95)"; | |
| 97 | # bothlock_color = "rgba(215, 153, 33, 0.95)"; | |
| 98 | # | |
| 99 | # hide_input = false; | |
| 100 | # fade_on_empty = false; | |
| 101 | # placeholder_text = ''<i><span foreground="##fbf1c7">Enter Password</span></i>''; | |
| 102 | # | |
| 103 | # position = "0, ${if host == "laptop" then "50" else "200"}"; | |
| 104 | # halign = "center"; | |
| 105 | # valign = "bottom"; | |
| 106 | # } | |
| 107 | # ]; | |
| 108 | # | |
| 109 | # animation = [ "inputFieldColors, 0" ]; | |
| 110 | }; | |
| 111 | }; | |
| 112 | } |
users/natalie/home/hyprland/monitors.nix created+18| ... | ... | @@ -0,0 +1,18 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland = { | |
| 4 | settings.monitor = [ | |
| 5 | "desc:Dell Inc. S2719DGF 1LCYBY2,2560x1440@154.85,1920x0,1.0" | |
| 6 | "desc:Ancor Communications Inc VN279 HALMQS156672,1920x1080@60.0,0x0,1.0" | |
| 7 | ]; | |
| 8 | ||
| 9 | # extraConfig = '' | |
| 10 | # # hyprlang noerror true | |
| 11 | # source = ~/.config/hypr/monitors.conf | |
| 12 | # source = ~/.config/hypr/workspaces.conf | |
| 13 | # # hyprlang noerror false | |
| 14 | # ''; | |
| 15 | }; | |
| 16 | ||
| 17 | home.packages = with pkgs; [ nwg-displays ]; | |
| 18 | } |
users/natalie/home/hyprland/plugins.nix created+16| ... | ... | @@ -0,0 +1,16 @@ |
| 1 | { pkgs, inputs, ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland = { | |
| 4 | plugins = [ | |
| 5 | inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces | |
| 6 | ]; | |
| 7 | settings = { | |
| 8 | plugin = { | |
| 9 | split-monitor-workspaces = { | |
| 10 | count = 5; | |
| 11 | keep_focused = 0; | |
| 12 | }; | |
| 13 | }; | |
| 14 | }; | |
| 15 | }; | |
| 16 | } |
users/natalie/home/hyprland/settings.nix created+123| ... | ... | @@ -0,0 +1,123 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland.settings = { | |
| 4 | # see: https://wiki.hypr.land/Configuring/Variables/#input | |
| 5 | input = { | |
| 6 | kb_layout = "us"; | |
| 7 | repeat_delay = 300; | |
| 8 | follow_mouse = 1; | |
| 9 | }; | |
| 10 | # https://wiki.hypr.land/Configuring/Variables/#general | |
| 11 | general = { | |
| 12 | "$mainMod" = "SUPER"; | |
| 13 | layout = "dwindle"; | |
| 14 | no_border_on_floating = false; | |
| 15 | ||
| 16 | }; | |
| 17 | # https://wiki.hypr.land/Configuring/Variables/#misc | |
| 18 | misc = { | |
| 19 | disable_hyprland_logo = true; | |
| 20 | always_follow_on_dnd = true; | |
| 21 | layers_hog_keyboard_focus = true; | |
| 22 | animate_manual_resizes = false; | |
| 23 | enable_swallow = true; | |
| 24 | swallow_regex = "^(ghostty)$"; | |
| 25 | focus_on_activate = true; | |
| 26 | new_window_takes_over_fullscreen = 2; | |
| 27 | middle_click_paste = false; | |
| 28 | }; | |
| 29 | ||
| 30 | # https://wiki.hypr.land/Configuring/Dwindle-Layout/ | |
| 31 | dwindle = { | |
| 32 | pseudotile = false; | |
| 33 | force_split = 2; | |
| 34 | preserve_split = true; | |
| 35 | }; | |
| 36 | # https://wiki.hypr.land/Configuring/Variables/#decoration | |
| 37 | decoration = { | |
| 38 | rounding = 0; | |
| 39 | rounding_power = 2.0; | |
| 40 | active_opacity = 1.0; | |
| 41 | inactive_opacity = 1.0; | |
| 42 | fullscreen_opacity = 1.0; | |
| 43 | dim_modal = true; | |
| 44 | dim_inactive = false; | |
| 45 | dim_strength = 0.5; | |
| 46 | dim_special = 0.2; | |
| 47 | dim_around = 0.4; | |
| 48 | screen_shader = ""; | |
| 49 | border_part_of_window = true; | |
| 50 | blur = { | |
| 51 | enabled = true; | |
| 52 | size = 8; | |
| 53 | passes = 1; | |
| 54 | brightness = 0.8172; | |
| 55 | contrast = 0.8916; | |
| 56 | ignore_opacity = true; | |
| 57 | noise = 0.0117; | |
| 58 | new_optimizations = true; | |
| 59 | xray = true; | |
| 60 | vibrancy = 0.1696; | |
| 61 | vibrancy_darkness = 0.0; | |
| 62 | special = false; | |
| 63 | popups = false; | |
| 64 | popups_ignorealpha = 0.2; | |
| 65 | input_methods = false; | |
| 66 | input_methods_ignorealpha = 0.2; | |
| 67 | }; | |
| 68 | ||
| 69 | shadow = { | |
| 70 | enabled = true; | |
| 71 | range = 4; | |
| 72 | render_power = 3; | |
| 73 | sharp = false; | |
| 74 | ignore_window = true; | |
| 75 | color = "0xee1a1a1a"; | |
| 76 | offset = "0 2"; | |
| 77 | scale = 1.0; | |
| 78 | }; | |
| 79 | ||
| 80 | }; | |
| 81 | # https://wiki.hypr.land/Configuring/Animations/ | |
| 82 | animations = { | |
| 83 | enabled = true; | |
| 84 | ||
| 85 | bezier = [ | |
| 86 | "easeOutQuint, 0.23, 1, 0.32, 1" | |
| 87 | "easeInOutCubic, 0.65, 0.05, 0.36, 1" | |
| 88 | "linear, 0, 0, 1, 1" | |
| 89 | "almostLinear, 0.5, 0.5, 0.75, 1" | |
| 90 | "quick, 0.15, 0, 0.1, 1" | |
| 91 | ]; | |
| 92 | ||
| 93 | animation = [ | |
| 94 | "global, 1, 10, default" | |
| 95 | "border, 1, 5.39, easeOutQuint" | |
| 96 | "windows, 1, 4.79, easeOutQuint" | |
| 97 | "windowsIn, 1, 4.1, easeOutQuint, popin 87%" | |
| 98 | "windowsOut, 1, 1.49, linear, popin 87%" | |
| 99 | "fadeIn, 1, 1.73, almostLinear" | |
| 100 | "fadeOut, 1, 1.46, almostLinear" | |
| 101 | "fade, 1, 3.03, quick" | |
| 102 | "layers, 1, 3.81, easeOutQuint" | |
| 103 | "layersIn, 1, 4, easeOutQuint, fade" | |
| 104 | "layersOut, 1, 1.5, linear, fade" | |
| 105 | "fadeLayersIn, 1, 1.79, almostLinear" | |
| 106 | "fadeLayersOut, 1, 1.39, almostLinear" | |
| 107 | "workspaces, 1, 1.94, almostLinear, fade" | |
| 108 | "workspacesIn, 1, 1.21, almostLinear, fade" | |
| 109 | "workspacesOut, 1, 1.94, almostLinear, fade" | |
| 110 | "zoomFactor, 1, 7, quick" | |
| 111 | ]; | |
| 112 | ||
| 113 | }; | |
| 114 | # https://wiki.hypr.land/Configuring/XWayland/ | |
| 115 | xwayland = { | |
| 116 | force_zero_scaling = true; | |
| 117 | }; | |
| 118 | debug = { | |
| 119 | disable_logs = false; | |
| 120 | }; | |
| 121 | }; | |
| 122 | ||
| 123 | } |
users/natalie/home/hyprland/variables.nix created+29| ... | ... | @@ -0,0 +1,29 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | home.sessionVariables = { | |
| 4 | NIXOS_OZONE_WL = 1; | |
| 5 | __GL_GSYNC_ALLOWED = 0; | |
| 6 | __GL_VRR_ALLOWED = 0; | |
| 7 | # SSH_AUTH_SOCK = "/run/user/1000/ssh-agent"; | |
| 8 | DISABLE_QT5_COMPAT = 0; | |
| 9 | GDK_BACKEND = "wayland"; | |
| 10 | # ANKI_WAYLAND = 1; | |
| 11 | WLR_DRM_NO_ATOMIC = 1; | |
| 12 | # QT_AUTO_SCREEN_SCALE_FACTOR = 1; | |
| 13 | # QT_WAYLAND_DISABLE_WINDOWDECORATION = 1; | |
| 14 | QT_QPA_PLATFORM = "wayland"; | |
| 15 | QT_QPA_PLATFORMTHEME = "qt5ct"; | |
| 16 | # QT_STYLE_OVERRIDE = "kvantum"; | |
| 17 | MOZ_ENABLE_WAYLAND = 1; | |
| 18 | WLR_BACKEND = "vulkan"; | |
| 19 | WLR_RENDERER = "vulkan"; | |
| 20 | WLR_NO_HARDWARE_CURSORS = 1; | |
| 21 | XDG_CURRENT_DESKTOP = "Hyprland"; | |
| 22 | XDG_SESSION_TYPE = "wayland"; | |
| 23 | XDG_SESSION_DESKTOP = "Hyprland"; | |
| 24 | SDL_VIDEODRIVER = "wayland"; | |
| 25 | CLUTTER_BACKEND = "wayland"; | |
| 26 | # GTK_THEME = "Colloid-Green-Dark-Gruvbox"; | |
| 27 | # GRIMBLAST_HIDE_CURSOR = 0; | |
| 28 | }; | |
| 29 | } |
users/natalie/home/hyprland/windowrules.nix created+115| ... | ... | @@ -0,0 +1,115 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | wayland.windowManager.hyprland.settings = { | |
| 4 | # https://wiki.hypr.land/Configuring/Window-Rules/#layer-rules | |
| 5 | windowrule = [ | |
| 6 | "float,class:^(mpv)$" | |
| 7 | "pin,class:^(rofi)$" | |
| 8 | "pin,class:^(waypaper)$" | |
| 9 | "float,title:^(Volume Control)$" | |
| 10 | ||
| 11 | #awakened-poe-trade | |
| 12 | # https://github.com/SnosMe/awakened-poe-trade/issues/1137#issuecomment-2992606569 | |
| 13 | "tag +apt, class:^(awakened-poe-trade)$" | |
| 14 | "tag +apt, title:(Awakened PoE Trade)" | |
| 15 | "float, tag:apt" | |
| 16 | "noblur, tag:apt" | |
| 17 | "nofocus, tag:apt" | |
| 18 | "noshadow, tag:apt" | |
| 19 | "noborder, tag:apt" | |
| 20 | "pin, tag:apt" | |
| 21 | "renderunfocused, tag:apt" | |
| 22 | "size 100% 100%, tag:apt" | |
| 23 | "center, tag:apt" | |
| 24 | ||
| 25 | #POE | |
| 26 | "tag +poe, title:(Path of Exile)" | |
| 27 | "tag +poe class:(steam_app_238960)" | |
| 28 | "fullscreen, tag:poe$" | |
| 29 | # https://github.com/SnosMe/awakened-poe-trade/issues/1137#issuecomment-3037816727 | |
| 30 | # "tag +fakefullscreen, title:(Path of Exile),class:(steam_app_238960)" | |
| 31 | # "tile, tag:fakefullscreen" | |
| 32 | # "noborder, tag:fakefullscreen" | |
| 33 | # "float,title:^(Firefox — Sharing Indicator)$" | |
| 34 | # "move 0 0,title:^(Firefox — Sharing Indicator)$" | |
| 35 | # "size 700 450,title:^(Volume Control)$" | |
| 36 | # "move 40 55%,title:^(Volume Control)$" | |
| 37 | #"float, title:^(Picture-in-Picture)$" | |
| 38 | # "opacity 1.0 override 1.0 override, title:^(Picture-in-Picture)$" | |
| 39 | # "pin, title:^(Picture-in-Picture)$" | |
| 40 | # "opacity 1.0 override 1.0 override, title:^(.*imv.*)$" | |
| 41 | # "opacity 1.0 override 1.0 override, title:^(.*mpv.*)$" | |
| 42 | # "opacity 1.0 override 1.0 override, class:(Aseprite)" | |
| 43 | # "opacity 1.0 override 1.0 override, class:(Unity)" | |
| 44 | # "opacity 1.0 override 1.0 override, class:(zen)" | |
| 45 | # "opacity 1.0 override 1.0 override, class:(evince)" | |
| 46 | # "workspace 1, class:^(zen-beta)$" | |
| 47 | # "workspace 3, class:^(evince)$" | |
| 48 | # "workspace 4, class:^(Gimp-2.10)$" | |
| 49 | # "workspace 4, class:^(Aseprite)$" | |
| 50 | # "workspace 5, class:^(Audacious)$" | |
| 51 | # "workspace 5, class:^(Spotify)$" | |
| 52 | # "workspace 8, class:^(com.obsproject.Studio)$" | |
| 53 | # "workspace 10, class:^(discord)$" | |
| 54 | # "workspace 10, class:^(WebCord)$" | |
| 55 | # "idleinhibit focus, class:^(mpv)$" | |
| 56 | # "idleinhibit fullscreen, class:^(firefox)$" | |
| 57 | # "float,class:^(org.gnome.Calculator)$" | |
| 58 | # "float,class:^(waypaper)$" | |
| 59 | # "float,class:^(zenity)$" | |
| 60 | # "size 850 500,class:^(zenity)$" | |
| 61 | # "size 725 330,class:^(SoundWireServer)$" | |
| 62 | # "float,class:^(org.gnome.FileRoller)$" | |
| 63 | # "float,class:^(org.pulseaudio.pavucontrol)$" | |
| 64 | # "float,class:^(SoundWireServer)$" | |
| 65 | # "float,class:^(.sameboy-wrapped)$" | |
| 66 | # "float,class:^(file_progress)$" | |
| 67 | # "float,class:^(confirm)$" | |
| 68 | # "float,class:^(dialog)$" | |
| 69 | # "float,class:^(download)$" | |
| 70 | # "float,class:^(notification)$" | |
| 71 | # "float,class:^(error)$" | |
| 72 | # "float,class:^(confirmreset)$" | |
| 73 | # "float,title:^(Open File)$" | |
| 74 | # "float,title:^(File Upload)$" | |
| 75 | # "float,title:^(branchdialog)$" | |
| 76 | # "float,title:^(Confirm to replace files)$" | |
| 77 | # "float,title:^(File Operation Progress)$" | |
| 78 | # | |
| 79 | # "opacity 0.0 override,class:^(xwaylandvideobridge)$" | |
| 80 | # "noanim,class:^(xwaylandvideobridge)$" | |
| 81 | # "noinitialfocus,class:^(xwaylandvideobridge)$" | |
| 82 | # "maxsize 1 1,class:^(xwaylandvideobridge)$" | |
| 83 | # "noblur,class:^(xwaylandvideobridge)$" | |
| 84 | # | |
| 85 | # # No gaps when only | |
| 86 | # "bordersize 0, floating:0, onworkspace:w[t1]" | |
| 87 | # "rounding 0, floating:0, onworkspace:w[t1]" | |
| 88 | # "bordersize 0, floating:0, onworkspace:w[tg1]" | |
| 89 | # "rounding 0, floating:0, onworkspace:w[tg1]" | |
| 90 | # "bordersize 0, floating:0, onworkspace:f[1]" | |
| 91 | # "rounding 0, floating:0, onworkspace:f[1]" | |
| 92 | # Remove context menu transparency in chromium based apps | |
| 93 | # "opaque,class:^()$,title:^()$" | |
| 94 | # "noshadow,class:^()$,title:^()$" | |
| 95 | # "noblur,class:^()$,title:^()$" | |
| 96 | ]; | |
| 97 | ||
| 98 | # https://wiki.hypr.land/Configuring/Window-Rules/#layer-rules | |
| 99 | layerrule = [ | |
| 100 | "blur, vicinae" | |
| 101 | "ignorealpha 0, vicinae" | |
| 102 | "noanim, vicinae" | |
| 103 | # "dimaround, rofi" | |
| 104 | # "dimaround, swaync-control-center" | |
| 105 | ]; | |
| 106 | ||
| 107 | # https://wiki.hypr.land/Configuring/Workspace-Rules/ | |
| 108 | # No gaps when only | |
| 109 | workspace = [ | |
| 110 | "w[t1], gapsout:0, gapsin:0" | |
| 111 | "w[tg1], gapsout:0, gapsin:0" | |
| 112 | "f[1], gapsout:0, gapsin:0" | |
| 113 | ]; | |
| 114 | }; | |
| 115 | } |
users/natalie/home/scripts/default.nix created+26| ... | ... | @@ -0,0 +1,26 @@ |
| 1 | { pkgs, ... }: | |
| 2 | let | |
| 3 | scriptDir = ./scripts; | |
| 4 | ||
| 5 | mkScript = name: { | |
| 6 | inherit name; | |
| 7 | value = pkgs.writeScriptBin (builtins.replaceStrings [ ".sh" ] [ "" ] name) ( | |
| 8 | builtins.readFile (scriptDir + "/${name}") | |
| 9 | ); | |
| 10 | }; | |
| 11 | ||
| 12 | scriptsSet = builtins.listToAttrs ( | |
| 13 | map mkScript ( | |
| 14 | builtins.attrNames ( | |
| 15 | pkgs.lib.filterAttrs (n: v: v == "regular" && (pkgs.lib.hasSuffix ".sh" n)) ( | |
| 16 | builtins.readDir ./scripts | |
| 17 | ) | |
| 18 | ) | |
| 19 | ) | |
| 20 | ); | |
| 21 | scripts = builtins.attrValues scriptsSet; | |
| 22 | ||
| 23 | in | |
| 24 | { | |
| 25 | home.packages = scripts; | |
| 26 | } |
users/natalie/home/scripts/scripts/fakefullscreen.sh created+44| ... | ... | @@ -0,0 +1,44 @@ |
| 1 | #!/usr/bin/env nix-shell | |
| 2 | #! nix-shell -i bash -p bash socat jq killall | |
| 3 | # shellcheck disable=all | |
| 4 | ||
| 5 | RUNDIR=/run/user/$EUID/hypr | |
| 6 | WAYBAR_FILE=$RUNDIR/.waybar_is_hidden | |
| 7 | ||
| 8 | function hide { | |
| 9 | if [ ! -f $WAYBAR_FILE ]; then | |
| 10 | hyprctl keyword workspace , gapsout:0 >/dev/null 2>&1 | |
| 11 | killall -SIGUSR1 .waybar-wrapped && touch $WAYBAR_FILE | |
| 12 | fi | |
| 13 | } | |
| 14 | ||
| 15 | function show { | |
| 16 | if [ -f $WAYBAR_FILE ]; then | |
| 17 | hyprctl keyword workspace , gapsout:$(hyprctl getoption general:gaps_out -j | jq -r .custom | tr \ ,) >/dev/null 2>&1 | |
| 18 | killall -SIGUSR1 .waybar-wrapped && rm $WAYBAR_FILE >/dev/null 2>&1 | |
| 19 | fi | |
| 20 | } | |
| 21 | ||
| 22 | function fakefullscreen() { | |
| 23 | local fullscreenclients=$(hyprctl clients -j | jq -r '.[] | select(.tags | contains(["fakefullscreen"])).workspace.id') | |
| 24 | [ -z "$fullscreenclients" -a ! -f $WAYBAR_FILE ] && return | |
| 25 | local active=$(hyprctl activeworkspace -j | jq -r .id) | |
| 26 | for id in $fullscreenclients; do | |
| 27 | if [ $active -eq $id -a $(hyprctl clients -j | jq -r "[.[] | select(.workspace.id == $id) | select(.floating | not)] | length") -eq 1 ]; then | |
| 28 | hide | |
| 29 | return | |
| 30 | fi | |
| 31 | done | |
| 32 | show | |
| 33 | } | |
| 34 | ||
| 35 | sleep 1 | |
| 36 | fakefullscreen | |
| 37 | ||
| 38 | socat -u "UNIX-CONNECT:$RUNDIR/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" STDOUT | while read -r event; do | |
| 39 | case $event in | |
| 40 | workspace\>\>* | openwindow\>\>* | closewindow\>\>*) fakefullscreen ;; | |
| 41 | esac | |
| 42 | done | |
| 43 | ||
| 44 | show |
users/natalie/home/scripts/scripts/screenshot.sh created+34| ... | ... | @@ -0,0 +1,34 @@ |
| 1 | #!/usr/bin/env bash | |
| 2 | ||
| 3 | dir="$HOME/Pictures/Screenshots" | |
| 4 | time=$(date +'%Y_%m_%d_at_%Hh%Mm%Ss') | |
| 5 | file="${dir}/Screenshot_${time}.png" | |
| 6 | ||
| 7 | copy() { | |
| 8 | GRIMBLAST_HIDE_CURSOR=0 grimblast --notify --freeze copy area | |
| 9 | } | |
| 10 | ||
| 11 | save() { | |
| 12 | GRIMBLAST_HIDE_CURSOR=0 grimblast --notify --freeze save area "$file" | |
| 13 | } | |
| 14 | ||
| 15 | swappy_() { | |
| 16 | GRIMBLAST_HIDE_CURSOR=0 grimblast --notify --freeze save area "$file" | |
| 17 | swappy -f "$file" | |
| 18 | } | |
| 19 | ||
| 20 | if [[ ! -d "$dir" ]]; then | |
| 21 | mkdir -p "$dir" | |
| 22 | fi | |
| 23 | ||
| 24 | if [[ "$1" == "--copy" ]]; then | |
| 25 | copy | |
| 26 | elif [[ "$1" == "--save" ]]; then | |
| 27 | save | |
| 28 | elif [[ "$1" == "--swappy" ]]; then | |
| 29 | swappy_ | |
| 30 | else | |
| 31 | echo -e "Available Options: --copy --save --swappy" | |
| 32 | fi | |
| 33 | ||
| 34 | exit 0 |
users/natalie/home/swaync.nix created+595| ... | ... | @@ -0,0 +1,595 @@ |
| 1 | { pkgs, ... }: | |
| 2 | { | |
| 3 | services.swaync = { | |
| 4 | enable = true; | |
| 5 | settings = { | |
| 6 | ignore-gtk-theme = true; | |
| 7 | positionX = "right"; | |
| 8 | positionY = "top"; | |
| 9 | layer = "overlay"; | |
| 10 | control-center-layer = "top"; | |
| 11 | layer-shell = true; | |
| 12 | layer-shell-cover-screen = true; | |
| 13 | cssPriority = "user"; | |
| 14 | control-center-margin-top = 15; | |
| 15 | control-center-margin-bottom = 15; | |
| 16 | control-center-margin-right = 15; | |
| 17 | control-center-margin-left = 0; | |
| 18 | notification-2fa-action = true; | |
| 19 | notification-inline-replies = false; | |
| 20 | notification-body-image-height = 100; | |
| 21 | notification-body-image-width = 200; | |
| 22 | notification-icon-size = 48; | |
| 23 | timeout = 8; | |
| 24 | timeout-low = 6; | |
| 25 | timeout-critical = 0; | |
| 26 | fit-to-screen = true; | |
| 27 | relative-timestamps = true; | |
| 28 | control-center-width = 400; | |
| 29 | control-center-height = 600; | |
| 30 | notification-window-width = 350; | |
| 31 | keyboard-shortcuts = true; | |
| 32 | notification-grouping = true; | |
| 33 | image-visibility = "when-available"; | |
| 34 | transition-time = 200; | |
| 35 | hide-on-clear = false; | |
| 36 | hide-on-action = true; | |
| 37 | text-empty = "No Notifications"; | |
| 38 | script-fail-notify = true; | |
| 39 | widgets = [ | |
| 40 | "dnd" | |
| 41 | "mpris" | |
| 42 | "notifications" | |
| 43 | "volume" | |
| 44 | "backlight" | |
| 45 | ]; | |
| 46 | widget-config = { | |
| 47 | inhibitors = { | |
| 48 | text = "Inhibitors"; | |
| 49 | button-text = "Clear All"; | |
| 50 | clear-all-button = true; | |
| 51 | }; | |
| 52 | title = { | |
| 53 | text = "Notifications"; | |
| 54 | clear-all-button = true; | |
| 55 | button-text = "Clear All"; | |
| 56 | }; | |
| 57 | dnd = { | |
| 58 | text = "Do Not Disturb"; | |
| 59 | }; | |
| 60 | label = { | |
| 61 | max-lines = 5; | |
| 62 | text = "Label Text"; | |
| 63 | }; | |
| 64 | mpris = { | |
| 65 | show-album-art = "always"; | |
| 66 | loop-carousel = false; | |
| 67 | }; | |
| 68 | volume = { | |
| 69 | label = " "; | |
| 70 | expand-button-label = ""; | |
| 71 | collapse-button-label = ""; | |
| 72 | show-per-app = true; | |
| 73 | show-per-app-icon = true; | |
| 74 | show-per-app-label = false; | |
| 75 | }; | |
| 76 | backlight = { | |
| 77 | label = " "; | |
| 78 | }; | |
| 79 | }; | |
| 80 | }; | |
| 81 | style = '' | |
| 82 | :root { | |
| 83 | --bg-primary: #1d2021; | |
| 84 | --bg-secondary: #282828; | |
| 85 | --bg-button: #4E4E4E; | |
| 86 | --bg-button-hover: #5E5E5E; | |
| 87 | --text-primary: #EBDBB2; | |
| 88 | --text-disabled: #5C554A; | |
| 89 | --border-color: #928374; | |
| 90 | --priority-low: #EBDBB2; | |
| 91 | --priority-normal: #83A598; | |
| 92 | --priority-critical: #FB4934; | |
| 93 | --transition-standard: 0.15s ease-in-out; | |
| 94 | } | |
| 95 | ||
| 96 | /* Base styles */ | |
| 97 | * { | |
| 98 | outline: none; | |
| 99 | } | |
| 100 | ||
| 101 | *:focus { | |
| 102 | outline: none; | |
| 103 | box-shadow: none; | |
| 104 | } | |
| 105 | ||
| 106 | /* Scrollbar */ | |
| 107 | scrollbar, | |
| 108 | scrollbar slider { | |
| 109 | opacity: 0; | |
| 110 | min-width: 0px; | |
| 111 | min-height: 0px; | |
| 112 | background: transparent; | |
| 113 | } | |
| 114 | ||
| 115 | /* Common button styles */ | |
| 116 | .close-button, | |
| 117 | .widget-title>button, | |
| 118 | .widget-dnd switch, | |
| 119 | .widget-menubar>.menu-button-bar>.widget-menubar-container button, | |
| 120 | .widget-menubar>revealer button, | |
| 121 | .widget-inhibitors>button { | |
| 122 | border-radius: 0px; | |
| 123 | border: none; | |
| 124 | box-shadow: none; | |
| 125 | transition: background var(--transition-standard); | |
| 126 | } | |
| 127 | ||
| 128 | /* Close button */ | |
| 129 | .close-button { | |
| 130 | background: var(--bg-button); | |
| 131 | color: var(--text-primary); | |
| 132 | text-shadow: none; | |
| 133 | padding: 0; | |
| 134 | border-radius: 50%; | |
| 135 | margin-top: 8px; | |
| 136 | margin-right: 8px; | |
| 137 | min-width: 20px; | |
| 138 | min-height: 20px; | |
| 139 | } | |
| 140 | ||
| 141 | .close-button:hover { | |
| 142 | background: var(--bg-button-hover); | |
| 143 | } | |
| 144 | ||
| 145 | /* Notification rows */ | |
| 146 | .notification-row { | |
| 147 | background: none; | |
| 148 | } | |
| 149 | ||
| 150 | .notification-row:focus, | |
| 151 | .notification-group:focus { | |
| 152 | background: var(--bg-primary); | |
| 153 | } | |
| 154 | ||
| 155 | .notification-row .notification-background { | |
| 156 | margin: 0px 0px 0px 0px; | |
| 157 | } | |
| 158 | ||
| 159 | /* Base notification styles */ | |
| 160 | .notification-row .notification-background .notification { | |
| 161 | border-radius: 0px; | |
| 162 | border: 1px solid var(--border-color); | |
| 163 | transition: background var(--transition-standard); | |
| 164 | background: var(--bg-primary); | |
| 165 | padding: 2px 4px; | |
| 166 | } | |
| 167 | ||
| 168 | /* Priority-based notification styles */ | |
| 169 | .notification-row .notification-background .notification.low { | |
| 170 | border-left: 3px solid var(--priority-low); | |
| 171 | } | |
| 172 | ||
| 173 | .notification-row .notification-background .notification.normal { | |
| 174 | border-left: 3px solid var(--priority-normal); | |
| 175 | } | |
| 176 | ||
| 177 | .notification-row .notification-background .notification.critical { | |
| 178 | border-left: 3px solid var(--priority-critical); | |
| 179 | } | |
| 180 | ||
| 181 | /* Notification default action */ | |
| 182 | .notification-default-action { | |
| 183 | padding: 4px; | |
| 184 | margin: 0; | |
| 185 | box-shadow: none; | |
| 186 | background: transparent; | |
| 187 | border: none; | |
| 188 | color: var(--text-primary); | |
| 189 | transition: background var(--transition-standard); | |
| 190 | border-radius: 0px; | |
| 191 | } | |
| 192 | ||
| 193 | .notification-default-action:hover { | |
| 194 | -gtk-icon-filter: none; | |
| 195 | background: var(--bg-primary); | |
| 196 | } | |
| 197 | ||
| 198 | .notification-default-action:not(:only-child) { | |
| 199 | border-bottom-left-radius: 0px; | |
| 200 | border-bottom-right-radius: 0px; | |
| 201 | } | |
| 202 | ||
| 203 | /* Notification content */ | |
| 204 | .notification-content { | |
| 205 | background: transparent; | |
| 206 | border-radius: 0px; | |
| 207 | padding: 0; | |
| 208 | } | |
| 209 | ||
| 210 | .notification-content .image { | |
| 211 | -gtk-icon-filter: none; | |
| 212 | -gtk-icon-size: 30px; | |
| 213 | border-radius: 50px; | |
| 214 | margin: 0px 7px 0px 0px; | |
| 215 | } | |
| 216 | ||
| 217 | .notification-content .app-icon { | |
| 218 | -gtk-icon-filter: none; | |
| 219 | -gtk-icon-size: calc(25px / 3); | |
| 220 | -gtk-icon-shadow: 0 1px 4px black; | |
| 221 | margin: 6px; | |
| 222 | } | |
| 223 | ||
| 224 | .notification-content .text-box label { | |
| 225 | filter: none; | |
| 226 | } | |
| 227 | ||
| 228 | /* Text elements */ | |
| 229 | .notification-content .text-box .summary, | |
| 230 | .notification-content .text-box .time, | |
| 231 | .notification-content .text-box .body { | |
| 232 | font-size: 16px; | |
| 233 | background: transparent; | |
| 234 | color: var(--text-primary); | |
| 235 | text-shadow: none; | |
| 236 | } | |
| 237 | ||
| 238 | .notification-content .text-box .summary, | |
| 239 | .notification-content .text-box .time { | |
| 240 | font-weight: bold; | |
| 241 | } | |
| 242 | ||
| 243 | .notification-content .text-box .time { | |
| 244 | margin-right: 30px; | |
| 245 | } | |
| 246 | ||
| 247 | .notification-content .text-box .body { | |
| 248 | font-weight: normal; | |
| 249 | } | |
| 250 | ||
| 251 | /* Progress and images */ | |
| 252 | .notification-content progressbar { | |
| 253 | margin-top: 4px; | |
| 254 | } | |
| 255 | ||
| 256 | .notification-content .body-image { | |
| 257 | margin-top: 4px; | |
| 258 | background-color: white; | |
| 259 | -gtk-icon-filter: none; | |
| 260 | } | |
| 261 | ||
| 262 | /* Inline reply */ | |
| 263 | .notification-content .inline-reply { | |
| 264 | margin-top: 4px; | |
| 265 | } | |
| 266 | ||
| 267 | .notification-content .inline-reply .inline-reply-entry { | |
| 268 | background: var(--bg-secondary); | |
| 269 | color: var(--text-primary); | |
| 270 | caret-color: var(--text-primary); | |
| 271 | border: 1px solid var(--border-color); | |
| 272 | border-radius: 0px; | |
| 273 | } | |
| 274 | ||
| 275 | .notification-content .inline-reply .inline-reply-button { | |
| 276 | margin-left: 4px; | |
| 277 | background: rgb(48, 48, 48); | |
| 278 | border: 1px solid var(--border-color); | |
| 279 | border-radius: 0px; | |
| 280 | color: var(--text-primary); | |
| 281 | } | |
| 282 | ||
| 283 | .notification-content .inline-reply .inline-reply-button:disabled { | |
| 284 | background: initial; | |
| 285 | color: rgb(150, 150, 150); | |
| 286 | border: 1px solid var(--border-color); | |
| 287 | border-color: transparent; | |
| 288 | } | |
| 289 | ||
| 290 | .notification-content .inline-reply .inline-reply-button:hover { | |
| 291 | background: var(--bg-primary); | |
| 292 | } | |
| 293 | ||
| 294 | /* Alternative actions */ | |
| 295 | .notification-alt-actions { | |
| 296 | background: none; | |
| 297 | border-bottom-left-radius: 12px; | |
| 298 | border-bottom-right-radius: 12px; | |
| 299 | padding: 4px; | |
| 300 | } | |
| 301 | ||
| 302 | .notification-action { | |
| 303 | margin: 4px; | |
| 304 | padding: 0; | |
| 305 | font-size: 16px; | |
| 306 | } | |
| 307 | ||
| 308 | .notification-action>button { | |
| 309 | border-radius: 0px; | |
| 310 | font-size: 16px; | |
| 311 | padding: 1px; | |
| 312 | } | |
| 313 | ||
| 314 | /* Notification groups */ | |
| 315 | .notification-group { | |
| 316 | transition: opacity 200ms ease-in-out; | |
| 317 | } | |
| 318 | ||
| 319 | .notification-group .notification-group-close-button .close-button { | |
| 320 | margin: 12px 20px; | |
| 321 | } | |
| 322 | ||
| 323 | .notification-group .notification-group-buttons, | |
| 324 | .notification-group .notification-group-headers { | |
| 325 | margin: 0 16px; | |
| 326 | color: var(--text-primary); | |
| 327 | } | |
| 328 | ||
| 329 | .notification-group .notification-group-headers { | |
| 330 | font-size: 16px; | |
| 331 | } | |
| 332 | ||
| 333 | .notification-group .notification-group-headers .notification-group-icon { | |
| 334 | color: var(--text-primary); | |
| 335 | -gtk-icon-size: 20px; | |
| 336 | font-size: 16px; | |
| 337 | font-weight: 700; | |
| 338 | margin: 5px 5px 5px 0px; | |
| 339 | } | |
| 340 | ||
| 341 | .notification-group .notification-group-headers .notification-group-header { | |
| 342 | font-size: 16px; | |
| 343 | font-weight: 700; | |
| 344 | color: var(--text-primary); | |
| 345 | } | |
| 346 | ||
| 347 | .notification-group .notification-group-buttons { | |
| 348 | margin: 5px; | |
| 349 | } | |
| 350 | ||
| 351 | .notification-group.collapsed.not-expanded { | |
| 352 | opacity: 1.0; | |
| 353 | } | |
| 354 | ||
| 355 | .notification-group.collapsed .notification-row .notification { | |
| 356 | background-color: var(--bg-primary); | |
| 357 | } | |
| 358 | ||
| 359 | .notification-group.collapsed .notification-row:not(:last-child) .notification-action, | |
| 360 | .notification-group.collapsed .notification-row:not(:last-child) .notification-default-action { | |
| 361 | opacity: 1.0; | |
| 362 | } | |
| 363 | ||
| 364 | .notification-group.collapsed:hover .notification-row:not(:only-child) .notification { | |
| 365 | background-color: var(--bg-primary); | |
| 366 | } | |
| 367 | ||
| 368 | /* Control center */ | |
| 369 | .control-center { | |
| 370 | background: var(--bg-primary); | |
| 371 | color: var(--text-primary); | |
| 372 | border-radius: 0px; | |
| 373 | border: 2px solid var(--border-color); | |
| 374 | box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5); | |
| 375 | } | |
| 376 | ||
| 377 | .control-center .control-center-list-placeholder { | |
| 378 | opacity: 1.0; | |
| 379 | } | |
| 380 | ||
| 381 | .control-center .control-center-list { | |
| 382 | background: transparent; | |
| 383 | } | |
| 384 | ||
| 385 | .control-center .control-center-list .notification .notification-default-action, | |
| 386 | .control-center .control-center-list .notification .notification-action { | |
| 387 | transition: opacity 400ms ease-in-out, background var(--transition-standard); | |
| 388 | } | |
| 389 | ||
| 390 | .control-center .control-center-list .notification .notification-default-action:hover, | |
| 391 | .control-center .control-center-list .notification .notification-action:hover { | |
| 392 | background-color: var(--bg-primary); | |
| 393 | } | |
| 394 | ||
| 395 | /* Floating notifications */ | |
| 396 | .blank-window, | |
| 397 | .floating-notifications { | |
| 398 | background: transparent; | |
| 399 | } | |
| 400 | ||
| 401 | .floating-notifications .notification { | |
| 402 | box-shadow: none; | |
| 403 | } | |
| 404 | ||
| 405 | /* Widgets */ | |
| 406 | .widget-title>label { | |
| 407 | margin: 8px; | |
| 408 | font-weight: 700; | |
| 409 | font-size: 16px; | |
| 410 | } | |
| 411 | ||
| 412 | .widget-title>button { | |
| 413 | margin: 8px; | |
| 414 | font-size: 16px; | |
| 415 | background: var(--bg-primary); | |
| 416 | border: 2px solid var(--text-disabled); | |
| 417 | padding: 3px 10px; | |
| 418 | color: var(--text-primary); | |
| 419 | font-weight: 700; | |
| 420 | } | |
| 421 | ||
| 422 | /* Common widget styles */ | |
| 423 | .widget-dnd, | |
| 424 | .widget-label, | |
| 425 | .widget-volume, | |
| 426 | .widget-slider, | |
| 427 | .widget-backlight { | |
| 428 | margin-left: 8px; | |
| 429 | margin-right: 8px; | |
| 430 | margin-top: 0px; | |
| 431 | margin-bottom: 0px; | |
| 432 | } | |
| 433 | ||
| 434 | .widget-dnd label, | |
| 435 | .widget-label>label { | |
| 436 | color: var(--text-primary); | |
| 437 | font-size: 18px; | |
| 438 | } | |
| 439 | ||
| 440 | .widget-dnd label { | |
| 441 | margin: 8px; | |
| 442 | margin-top: 16px; | |
| 443 | } | |
| 444 | ||
| 445 | .widget-dnd switch { | |
| 446 | margin: 8px; | |
| 447 | margin-top: 16px; | |
| 448 | } | |
| 449 | ||
| 450 | .widget-dnd switch slider { | |
| 451 | border-radius: 0px; | |
| 452 | } | |
| 453 | ||
| 454 | .widget-label { | |
| 455 | margin: 8px; | |
| 456 | } | |
| 457 | ||
| 458 | /* Mpris widget */ | |
| 459 | .widget-mpris { | |
| 460 | margin: 5px; | |
| 461 | } | |
| 462 | ||
| 463 | .widget-mpris .widget-mpris-player { | |
| 464 | margin: 10px 10px; | |
| 465 | border-radius: 0px; | |
| 466 | box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75); | |
| 467 | border: 1px solid var(--border-color); | |
| 468 | } | |
| 469 | ||
| 470 | .widget-mpris .widget-mpris-player .mpris-background { | |
| 471 | filter: blur(2px); | |
| 472 | } | |
| 473 | ||
| 474 | .widget-mpris .widget-mpris-player .mpris-overlay { | |
| 475 | padding: 16px; | |
| 476 | background-color: rgba(0, 0, 0, 0.55); | |
| 477 | } | |
| 478 | ||
| 479 | .widget-mpris .widget-mpris-player .mpris-overlay button:hover { | |
| 480 | background: var(--bg-primary); | |
| 481 | } | |
| 482 | ||
| 483 | .widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art { | |
| 484 | border-radius: 0px; | |
| 485 | box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75); | |
| 486 | -gtk-icon-size: 50px; | |
| 487 | } | |
| 488 | ||
| 489 | .widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-title { | |
| 490 | font-weight: bold; | |
| 491 | font-size: 16px; | |
| 492 | } | |
| 493 | ||
| 494 | .widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-subtitle { | |
| 495 | font-size: 16px; | |
| 496 | } | |
| 497 | ||
| 498 | .widget-mpris .widget-mpris-player .mpris-overlay>box>button { | |
| 499 | margin: 2px; | |
| 500 | color: var(--text-primary); | |
| 501 | } | |
| 502 | ||
| 503 | .widget-mpris .widget-mpris-player .mpris-overlay>box>button:hover { | |
| 504 | background-color: rgba(0, 0, 0, 0.5); | |
| 505 | } | |
| 506 | ||
| 507 | .widget-mpris>box>button { | |
| 508 | color: var(--text-primary); | |
| 509 | } | |
| 510 | ||
| 511 | .widget-mpris>box>button:disabled { | |
| 512 | color: var(--text-disabled); | |
| 513 | } | |
| 514 | ||
| 515 | /* Buttons widget */ | |
| 516 | .widget-buttons-grid { | |
| 517 | padding: 8px; | |
| 518 | margin: 8px; | |
| 519 | border-radius: 0px; | |
| 520 | } | |
| 521 | ||
| 522 | .widget-buttons-grid flowboxchild>button { | |
| 523 | border-radius: 0px; | |
| 524 | } | |
| 525 | ||
| 526 | /* Menubar widget */ | |
| 527 | .widget-menubar>.menu-button-bar>.start { | |
| 528 | margin-left: 8px; | |
| 529 | } | |
| 530 | ||
| 531 | .widget-menubar>.menu-button-bar>.end { | |
| 532 | margin-right: 8px; | |
| 533 | } | |
| 534 | ||
| 535 | .widget-menubar>.menu-button-bar>.widget-menubar-container button { | |
| 536 | margin: 0 4px; | |
| 537 | } | |
| 538 | ||
| 539 | .widget-menubar>revealer { | |
| 540 | margin-top: 8px; | |
| 541 | } | |
| 542 | ||
| 543 | .widget-menubar>revealer button { | |
| 544 | margin: 8px; | |
| 545 | margin-top: 0; | |
| 546 | } | |
| 547 | ||
| 548 | /* Volume widget */ | |
| 549 | .widget-volume { | |
| 550 | padding: 8px; | |
| 551 | margin-bottom: 8px; | |
| 552 | border-radius: 0px; | |
| 553 | } | |
| 554 | ||
| 555 | .widget-volume row image { | |
| 556 | -gtk-icon-size: 24px; | |
| 557 | } | |
| 558 | ||
| 559 | .per-app-volume { | |
| 560 | background-color: var(--bg-secondary); | |
| 561 | padding: 8px 8px 8px 8px; | |
| 562 | margin: 8px 8px 8px 8px; | |
| 563 | border-radius: 0px; | |
| 564 | } | |
| 565 | ||
| 566 | /* Slider widget */ | |
| 567 | .widget-slider { | |
| 568 | padding: 8px; | |
| 569 | border-radius: 0px; | |
| 570 | } | |
| 571 | ||
| 572 | .widget-slider label { | |
| 573 | font-size: inherit; | |
| 574 | } | |
| 575 | ||
| 576 | /* Backlight widget */ | |
| 577 | .widget-backlight { | |
| 578 | padding: 8px; | |
| 579 | border-radius: 0px; | |
| 580 | margin-top: -8px; | |
| 581 | margin-bottom: 8px; | |
| 582 | } | |
| 583 | ||
| 584 | /* Inhibitors widget */ | |
| 585 | .widget-inhibitors>label { | |
| 586 | margin: 8px; | |
| 587 | font-size: 16px; | |
| 588 | } | |
| 589 | ||
| 590 | .widget-inhibitors>button { | |
| 591 | margin: 8px; | |
| 592 | } | |
| 593 | ''; | |
| 594 | }; | |
| 595 | } |
users/natalie/home/tmux.nix created+107| ... | ... | @@ -0,0 +1,107 @@ |
| 1 | { pkgs, config, ... }: | |
| 2 | let | |
| 3 | tmux-nvim = pkgs.tmuxPlugins.mkTmuxPlugin { | |
| 4 | pluginName = "tmux.nvim"; | |
| 5 | version = "unstable-2025-05-19"; | |
| 6 | src = pkgs.fetchFromGitHub { | |
| 7 | owner = "aserowy"; | |
| 8 | repo = "tmux.nvim/"; | |
| 9 | rev = "2c1c3be0ef287073cef963f2aefa31a15c8b9cd8"; | |
| 10 | sha256 = "sha256-/XIjqQr9loWVTXZDaZx2bSQgco46z7yam50dCnM5p1U="; | |
| 11 | }; | |
| 12 | }; | |
| 13 | ||
| 14 | in | |
| 15 | { | |
| 16 | programs.tmux = { | |
| 17 | enable = true; | |
| 18 | mouse = true; | |
| 19 | ||
| 20 | shell = "${pkgs.fish}/bin/fish"; | |
| 21 | ||
| 22 | shortcut = "a"; | |
| 23 | keyMode = "vi"; | |
| 24 | ||
| 25 | plugins = with pkgs.tmuxPlugins; [ | |
| 26 | better-mouse-mode | |
| 27 | tmux-nvim | |
| 28 | tmux-thumbs | |
| 29 | cpu | |
| 30 | tmux-floax | |
| 31 | yank | |
| 32 | # must be before continuum edits right status bar | |
| 33 | { | |
| 34 | plugin = catppuccin; | |
| 35 | extraConfig = '' | |
| 36 | set -g @catppuccin_flavour "mocha" | |
| 37 | set -g @catppuccin_window_status_style "rounded" | |
| 38 | ||
| 39 | set -g status-right-length 100 | |
| 40 | set -g status-left-length 100 | |
| 41 | set -g status-left "" | |
| 42 | set -g status-right "#{E:@catppuccin_status_application}" | |
| 43 | set -ag status-right "#{E:@catppuccin_status_session}" | |
| 44 | set -ag status-right "#{E:@catppuccin_status_uptime}" | |
| 45 | ||
| 46 | ''; | |
| 47 | } | |
| 48 | { | |
| 49 | plugin = resurrect; | |
| 50 | extraConfig = '' | |
| 51 | set -g @resurrect-strategy-vim 'session' | |
| 52 | set -g @resurrect-strategy-nvim 'session' | |
| 53 | set -g @resurrect-capture-pane-contents 'on' | |
| 54 | '' | |
| 55 | + '' | |
| 56 | # Taken from: https://github.com/p3t33/nixos_flake/blob/5a989e5af403b4efe296be6f39ffe6d5d440d6d6/home/modules/tmux.nix | |
| 57 | resurrect_dir="$XDG_CACHE_HOME/.tmux/resurrect" | |
| 58 | set -g @resurrect-dir $resurrect_dir | |
| 59 | ||
| 60 | set -g @resurrect-hook-post-save-all 'target=$(readlink -f $resurrect_dir/last); sed "s| --cmd .*-vim-pack-dir||g; s|/etc/profiles/per-user/$USER/bin/||g; s|/home/$USER/.nix-profile/bin/||g" $target | sponge $target' | |
| 61 | ''; | |
| 62 | ||
| 63 | } | |
| 64 | { | |
| 65 | plugin = continuum; | |
| 66 | extraConfig = '' | |
| 67 | set -g @continuum-restore 'on' | |
| 68 | set -g @continuum-boot 'on' | |
| 69 | set -g @continuum-save-interval '10' | |
| 70 | set -g @continuum-systemd-start-cmd 'start-server' | |
| 71 | ''; | |
| 72 | } | |
| 73 | ||
| 74 | ]; | |
| 75 | extraConfig = '' | |
| 76 | set -g default-terminal "tmux-256color" | |
| 77 | set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.local/share/tmux/plugins' | |
| 78 | # Easier reload of config | |
| 79 | bind r source-file ~/.config/tmux/tmux.conf | |
| 80 | # Quicker escape in neovim | |
| 81 | set -sg escape-time 0 | |
| 82 | set-option -g set-titles on | |
| 83 | set-option -g set-titles-string "#S / #W" | |
| 84 | ||
| 85 | set -g allow-passthrough on | |
| 86 | ||
| 87 | # '@pane-is-vim' is a pane-local option that is set by the plugin on load, | |
| 88 | # and unset when Neovim exits or suspends; note that this means you'll probably | |
| 89 | # not want to lazy-load smart-splits.nvim, as the variable won't be set until | |
| 90 | # the plugin is loaded | |
| 91 | ||
| 92 | # Smart pane switching with awareness of Neovim splits. | |
| 93 | bind-key -n C-h if -F "#{@pane-is-vim}" 'send-keys C-h' 'select-pane -L' | |
| 94 | bind-key -n C-j if -F "#{@pane-is-vim}" 'send-keys C-j' 'select-pane -D' | |
| 95 | bind-key -n C-k if -F "#{@pane-is-vim}" 'send-keys C-k' 'select-pane -U' | |
| 96 | bind-key -n C-l if -F "#{@pane-is-vim}" 'send-keys C-l' 'select-pane -R' | |
| 97 | ||
| 98 | # Smart pane resizing with awareness of Neovim splits. | |
| 99 | bind-key -n M-h if -F "#{@pane-is-vim}" 'send-keys M-h' 'resize-pane -L 3' | |
| 100 | bind-key -n M-j if -F "#{@pane-is-vim}" 'send-keys M-j' 'resize-pane -D 3' | |
| 101 | bind-key -n M-k if -F "#{@pane-is-vim}" 'send-keys M-k' 'resize-pane -U 3' | |
| 102 | bind-key -n M-l if -F "#{@pane-is-vim}" 'send-keys M-l' 'resize-pane -R 3' | |
| 103 | ||
| 104 | ''; | |
| 105 | }; | |
| 106 | ||
| 107 | } |
users/natalie/home/vicinae.nix created+30| ... | ... | @@ -0,0 +1,30 @@ |
| 1 | { inputs, pkgs, ... }: | |
| 2 | { | |
| 3 | services.vicinae = { | |
| 4 | enable = true; | |
| 5 | autoStart = false; | |
| 6 | settings = { | |
| 7 | faviconService = "twenty"; # twenty | google | none | |
| 8 | font.size = 11; | |
| 9 | popToRootOnClose = false; | |
| 10 | rootSearch.searchFiles = true; | |
| 11 | theme.name = "catpuccin-mocha"; | |
| 12 | window = { | |
| 13 | csd = true; | |
| 14 | opacity = 0.95; | |
| 15 | rounding = 10; | |
| 16 | }; | |
| 17 | ||
| 18 | }; | |
| 19 | ||
| 20 | # extensions = [ | |
| 21 | # (inputs.vicinae.mkVicinaeExtension.${pkgs.system} { | |
| 22 | # inherit pkgs; | |
| 23 | # name = "nixpkgs search"; | |
| 24 | # src = pkgs.fetchFromGithub { | |
| 25 | # | |
| 26 | # }; | |
| 27 | # }) | |
| 28 | # ]; | |
| 29 | }; | |
| 30 | } |
users/natalie/home/waybar/default.nix created+8| ... | ... | @@ -0,0 +1,8 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | imports = [ | |
| 4 | ./waybar.nix | |
| 5 | ./settings.nix | |
| 6 | ./style.nix | |
| 7 | ]; | |
| 8 | } |
users/natalie/home/waybar/settings.nix created+181| ... | ... | @@ -0,0 +1,181 @@ |
| 1 | { | |
| 2 | pkgs, | |
| 3 | inputs, | |
| 4 | currentSystem, | |
| 5 | ... | |
| 6 | }: | |
| 7 | let | |
| 8 | custom = { | |
| 9 | font = "Maple Mono"; | |
| 10 | font_size = "18px"; | |
| 11 | font_weight = "bold"; | |
| 12 | text_color = "#FBF1C7"; | |
| 13 | background_0 = "#1D2021"; | |
| 14 | background_1 = "#282828"; | |
| 15 | border_color = "#928374"; | |
| 16 | red = "#CC241D"; | |
| 17 | green = "#98971A"; | |
| 18 | yellow = "#FABD2F"; | |
| 19 | blue = "#458588"; | |
| 20 | magenta = "#B16286"; | |
| 21 | cyan = "#689D6A"; | |
| 22 | orange = "#D65D0E"; | |
| 23 | opacity = "1"; | |
| 24 | indicator_height = "2px"; | |
| 25 | }; | |
| 26 | in | |
| 27 | { | |
| 28 | programs.waybar.settings.mainBar = with custom; { | |
| 29 | position = "top"; | |
| 30 | layer = "bottom"; | |
| 31 | height = 28; | |
| 32 | margin-top = 0; | |
| 33 | margin-bottom = 0; | |
| 34 | margin-left = 0; | |
| 35 | margin-right = 0; | |
| 36 | modules-left = [ | |
| 37 | "custom/launcher" | |
| 38 | "hyprland/workspaces" | |
| 39 | ]; | |
| 40 | modules-center = [ "clock" ]; | |
| 41 | modules-right = [ | |
| 42 | "cpu" | |
| 43 | "memory" | |
| 44 | "pulseaudio" | |
| 45 | "network" | |
| 46 | "hyprland/language" | |
| 47 | "tray" | |
| 48 | "custom/notification" | |
| 49 | "custom/power-menu" | |
| 50 | ]; | |
| 51 | clock = { | |
| 52 | calendar = { | |
| 53 | format = { | |
| 54 | today = "<span color='#98971A'><b>{}</b></span>"; | |
| 55 | }; | |
| 56 | }; | |
| 57 | format = " {:%H:%M}"; | |
| 58 | tooltip = "true"; | |
| 59 | tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"; | |
| 60 | format-alt = " {:%d/%m}"; | |
| 61 | }; | |
| 62 | "hyprland/workspaces" = { | |
| 63 | active-only = false; | |
| 64 | disable-scroll = true; | |
| 65 | format = "{icon}"; | |
| 66 | on-click = "activate"; | |
| 67 | format-icons = { | |
| 68 | sort-by-number = true; | |
| 69 | }; | |
| 70 | persistent-workspaces = { | |
| 71 | "1" = [ ]; | |
| 72 | "2" = [ ]; | |
| 73 | "3" = [ ]; | |
| 74 | "4" = [ ]; | |
| 75 | "5" = [ ]; | |
| 76 | }; | |
| 77 | }; | |
| 78 | cpu = { | |
| 79 | format = "<span foreground='${green}'> </span> {usage}%"; | |
| 80 | format-alt = "<span foreground='${green}'> </span> {avg_frequency} GHz"; | |
| 81 | interval = 2; | |
| 82 | on-click-right = "${pkgs.hyprland}/bin/hyprctl dispatch exec '[float; center; size 950 650] ${pkgs.ghostty}/bin/ghostty --font-size=14 -e btop'"; | |
| 83 | }; | |
| 84 | memory = { | |
| 85 | format = "<span foreground='${cyan}'> </span>{}%"; | |
| 86 | format-alt = "<span foreground='${cyan}'> </span>{used} GiB"; # | |
| 87 | interval = 2; | |
| 88 | on-click-right = "${pkgs.hyprland}/bin/hyprctl dispatch exec '[float; center; size 950 650] ${pkgs.ghostty}/bin/ghostty --font-size=14 -e btop'"; | |
| 89 | }; | |
| 90 | disk = { | |
| 91 | # path = "/"; | |
| 92 | format = "<span foreground='${orange}'> </span>{percentage_used}%"; | |
| 93 | interval = 60; | |
| 94 | on-click-right = "${pkgs.hyprland}/bin/hyprctl dispatch exec '[float; center; size 950 650] ${pkgs.ghostty}/bin/ghostty --font-size=14 -e btop'"; | |
| 95 | }; | |
| 96 | network = { | |
| 97 | format-wifi = "<span foreground='${magenta}'> </span> {signalStrength}%"; | |
| 98 | format-ethernet = "<span foreground='${magenta}'> </span>"; | |
| 99 | tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; | |
| 100 | format-linked = "{ifname} (No IP)"; | |
| 101 | format-disconnected = "<span foreground='${magenta}'> </span>"; | |
| 102 | }; | |
| 103 | tray = { | |
| 104 | icon-size = 20; | |
| 105 | spacing = 8; | |
| 106 | }; | |
| 107 | pulseaudio = { | |
| 108 | format = "{icon} {volume}%"; | |
| 109 | format-muted = "<span foreground='${blue}'> </span> {volume}%"; | |
| 110 | format-icons = { | |
| 111 | default = [ "<span foreground='${blue}'> </span>" ]; | |
| 112 | }; | |
| 113 | scroll-step = 2; | |
| 114 | on-click = "${pkgs.pamixer}/bin/pamixer -t"; | |
| 115 | on-click-right = "${pkgs.pavucontrol}/bin/pavucontrol"; | |
| 116 | }; | |
| 117 | # battery = { | |
| 118 | # format = "<span foreground='${yellow}'>{icon}</span> {capacity}%"; | |
| 119 | # format-icons = [ | |
| 120 | # " " | |
| 121 | # " " | |
| 122 | # " " | |
| 123 | # " " | |
| 124 | # " " | |
| 125 | # ]; | |
| 126 | # format-charging = "<span foreground='${yellow}'> </span>{capacity}%"; | |
| 127 | # format-full = "<span foreground='${yellow}'> </span>{capacity}%"; | |
| 128 | # format-warning = "<span foreground='${yellow}'> </span>{capacity}%"; | |
| 129 | # interval = 5; | |
| 130 | # states = { | |
| 131 | # warning = 20; | |
| 132 | # }; | |
| 133 | # format-time = "{H}h{M}m"; | |
| 134 | # tooltip = true; | |
| 135 | # tooltip-format = "{time}"; | |
| 136 | # }; | |
| 137 | "hyprland/language" = { | |
| 138 | tooltip = true; | |
| 139 | tooltip-format = "Keyboard layout"; | |
| 140 | format = "<span foreground='#FABD2F'> </span> {}"; | |
| 141 | format-fr = "FR"; | |
| 142 | format-en = "US"; | |
| 143 | on-click = "${pkgs.hyprland}/bin/hyprctl switchxkblayout at-translated-set-2-keyboard next"; | |
| 144 | }; | |
| 145 | "custom/launcher" = { | |
| 146 | format = ""; | |
| 147 | on-click = "random-wallpaper"; | |
| 148 | on-click-right = "${inputs.vicinae.packages.${currentSystem}.default}vicinae vicinae://toggle"; | |
| 149 | tooltip = "true"; | |
| 150 | tooltip-format = "Random Wallpaper"; | |
| 151 | }; | |
| 152 | "custom/notification" = { | |
| 153 | tooltip = true; | |
| 154 | tooltip-format = "Notifications"; | |
| 155 | format = "{icon}"; | |
| 156 | format-icons = { | |
| 157 | notification = "<span foreground='red'><sup></sup></span>"; | |
| 158 | none = ""; | |
| 159 | dnd-notification = "<span foreground='red'><sup></sup></span>"; | |
| 160 | dnd-none = ""; | |
| 161 | inhibited-notification = "<span foreground='red'><sup></sup></span>"; | |
| 162 | inhibited-none = ""; | |
| 163 | dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>"; | |
| 164 | dnd-inhibited-none = ""; | |
| 165 | }; | |
| 166 | return-type = "json"; | |
| 167 | exec-if = "which swaync-client"; | |
| 168 | exec = "${pkgs.swaynotificationcenter}/bin/swaync-client -swb"; | |
| 169 | on-click = "${pkgs.swaynotificationcenter}/bin/swaync-client -t -sw"; | |
| 170 | on-click-right = "${pkgs.swaynotificationcenter}/bin/swaync-client -d -sw"; | |
| 171 | escape = true; | |
| 172 | }; | |
| 173 | "custom/power-menu" = { | |
| 174 | tooltip = true; | |
| 175 | tooltip-format = "Power menu"; | |
| 176 | format = "<span foreground='${red}'> </span>"; | |
| 177 | on-click = "power-menu"; | |
| 178 | }; | |
| 179 | }; | |
| 180 | ||
| 181 | } |
users/natalie/home/waybar/style.nix created+107| ... | ... | @@ -0,0 +1,107 @@ |
| 1 | { ... }: | |
| 2 | let | |
| 3 | custom = { | |
| 4 | font = "Maple Mono"; | |
| 5 | font_size = "18px"; | |
| 6 | font_weight = "bold"; | |
| 7 | text_color = "#FBF1C7"; | |
| 8 | background_0 = "#1D2021"; | |
| 9 | background_1 = "#282828"; | |
| 10 | border_color = "#A89984"; | |
| 11 | red = "#CC241D"; | |
| 12 | green = "#98971A"; | |
| 13 | yellow = "#FABD2F"; | |
| 14 | blue = "#458588"; | |
| 15 | magenta = "#B16286"; | |
| 16 | cyan = "#689D6A"; | |
| 17 | orange = "#D65D0E"; | |
| 18 | orange_bright = "#FE8019"; | |
| 19 | opacity = "1"; | |
| 20 | indicator_height = "2px"; | |
| 21 | }; | |
| 22 | in | |
| 23 | { | |
| 24 | programs.waybar.style = with custom; '' | |
| 25 | * { | |
| 26 | border: none; | |
| 27 | border-radius: 0px; | |
| 28 | padding: 0; | |
| 29 | margin: 0; | |
| 30 | font-family: ${font}; | |
| 31 | font-weight: ${font_weight}; | |
| 32 | opacity: ${opacity}; | |
| 33 | font-size: ${font_size}; | |
| 34 | } | |
| 35 | ||
| 36 | window#waybar { | |
| 37 | background: ${background_1}; | |
| 38 | border-top: 1px solid ${border_color}; | |
| 39 | } | |
| 40 | ||
| 41 | tooltip { | |
| 42 | background: ${background_1}; | |
| 43 | border: 1px solid ${border_color}; | |
| 44 | } | |
| 45 | tooltip label { | |
| 46 | margin: 5px; | |
| 47 | color: ${text_color}; | |
| 48 | } | |
| 49 | ||
| 50 | #workspaces { | |
| 51 | padding-left: 15px; | |
| 52 | } | |
| 53 | #workspaces button { | |
| 54 | color: ${yellow}; | |
| 55 | padding-left: 5px; | |
| 56 | padding-right: 5px; | |
| 57 | margin-right: 10px; | |
| 58 | } | |
| 59 | #workspaces button.empty { | |
| 60 | color: ${text_color}; | |
| 61 | } | |
| 62 | #workspaces button.active { | |
| 63 | color: ${orange_bright}; | |
| 64 | } | |
| 65 | ||
| 66 | #clock { | |
| 67 | color: ${text_color}; | |
| 68 | } | |
| 69 | ||
| 70 | #tray { | |
| 71 | margin-left: 10px; | |
| 72 | color: ${text_color}; | |
| 73 | } | |
| 74 | #tray menu { | |
| 75 | background: ${background_1}; | |
| 76 | border: 1px solid ${border_color}; | |
| 77 | padding: 8px; | |
| 78 | } | |
| 79 | #tray menuitem { | |
| 80 | padding: 1px; | |
| 81 | } | |
| 82 | ||
| 83 | #pulseaudio, #network, #cpu, #memory, #disk, #battery, #language, #custom-notification, #custom-power-menu { | |
| 84 | padding-left: 5px; | |
| 85 | padding-right: 5px; | |
| 86 | margin-right: 10px; | |
| 87 | color: ${text_color}; | |
| 88 | } | |
| 89 | ||
| 90 | #pulseaudio, #language, #custom-notification { | |
| 91 | margin-left: 15px; | |
| 92 | } | |
| 93 | ||
| 94 | #custom-power-menu { | |
| 95 | padding-right: 2px; | |
| 96 | margin-right: 5px; | |
| 97 | } | |
| 98 | ||
| 99 | #custom-launcher { | |
| 100 | font-size: 20px; | |
| 101 | color: ${text_color}; | |
| 102 | font-weight: bold; | |
| 103 | margin-left: 15px; | |
| 104 | padding-right: 10px; | |
| 105 | } | |
| 106 | ''; | |
| 107 | } |
users/natalie/home/waybar/waybar.nix created+7| ... | ... | @@ -0,0 +1,7 @@ |
| 1 | { ... }: | |
| 2 | { | |
| 3 | programs.waybar = { | |
| 4 | enable = true; | |
| 5 | systemd.enable = true; | |
| 6 | }; | |
| 7 | } |
users/natalie/packages.nix+4-1| ... | ... | @@ -18,6 +18,10 @@ with pkgs; |
| 18 | 18 | typescript-language-server |
| 19 | 19 | deno |
| 20 | 20 | |
| 21 | #desktop shit | |
| 22 | gtk3 | |
| 23 | gtk4 | |
| 24 | ||
| 21 | 25 | #ides |
| 22 | 26 | |
| 23 | 27 | #virtualization |
| ... | ... | @@ -37,7 +41,6 @@ with pkgs; |
| 37 | 41 | |
| 38 | 42 | #terminal stuff |
| 39 | 43 | (btop.override { cudaSupport = true; }) |
| 40 | tmux | |
| 41 | 44 | zellij |
| 42 | 45 | lazygit |
| 43 | 46 | fzf |