diff --git a/flake.lock b/flake.lock index 2688a29..fcd4783 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1752743471, - "narHash": "sha256-4izhj1j7J4mE8LgljCXSIUDculqOsxxhdoC81VhqizM=", + "lastModified": 1762356719, + "narHash": "sha256-qwd/xdoOya1m8FENle+4hWnydCtlXUWLAW/Auk6WL7s=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "e31b575d19e7cf8a8f4398e2f9cffe27a1332506", + "rev": "6d0b3567584691bf9d8fedb5d0093309e2f979c7", "type": "github" }, "original": { @@ -38,11 +38,11 @@ "fromYaml": "fromYaml" }, "locked": { - "lastModified": 1746562888, - "narHash": "sha256-YgNJQyB5dQiwavdDFBMNKk1wyS77AtdgDk/VtU6wEaI=", + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", "owner": "SenchoPens", "repo": "base16.nix", - "rev": "806a1777a5db2a1ef9d5d6f493ef2381047f2b89", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", "type": "github" }, "original": { @@ -54,27 +54,28 @@ "base16-fish": { "flake": false, "locked": { - "lastModified": 1622559957, - "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=", + "lastModified": 1754405784, + "narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", "owner": "tomyun", "repo": "base16-fish", - "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "type": "github" }, "original": { "owner": "tomyun", "repo": "base16-fish", + "rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "type": "github" } }, "base16-helix": { "flake": false, "locked": { - "lastModified": 1748408240, - "narHash": "sha256-9M2b1rMyMzJK0eusea0x3lyh3mu5nMeEDSc4RZkGm+g=", + "lastModified": 1752979451, + "narHash": "sha256-0CQM+FkYy0fOO/sMGhOoNL80ftsAzYCg9VhIrodqusM=", "owner": "tinted-theming", "repo": "base16-helix", - "rev": "6c711ab1a9db6f51e2f6887cc3345530b33e152e", + "rev": "27cf1e66e50abc622fb76a3019012dc07c678fac", "type": "github" }, "original": { @@ -108,11 +109,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1752984247, - "narHash": "sha256-JIsQY8kDY/uicS4UqYmVM2UP7qa8YeQI7XMkX6EBYJM=", + "lastModified": 1762920261, + "narHash": "sha256-VuUg2EP2Y0QrDTsDP6/3kN3Hurn6HfyMW3rGzdruhW8=", "owner": "rycee", "repo": "nur-expressions", - "rev": "8633d2c796c8cb8ec3a206728d9a9278af51947f", + "rev": "8cd76837f50debe28b51820adb00b522df8ade91", "type": "gitlab" }, "original": { @@ -125,11 +126,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1748383148, - "narHash": "sha256-pGvD/RGuuPf/4oogsfeRaeMm6ipUIznI2QSILKjKzeA=", + "lastModified": 1758112371, + "narHash": "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "4eb2714fbed2b80e234312611a947d6cb7d70caf", + "rev": "0909cfe4a2af8d358ad13b20246a350e14c2473d", "type": "github" }, "original": { @@ -141,11 +142,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -154,7 +155,39 @@ "type": "github" } }, + "flake-compat_2": { + "locked": { + "lastModified": 1733328505, + "narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=", + "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "revCount": 69, + "type": "tarball", + "url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.1.0/01948eb7-9cba-704f-bbf3-3fa956735b52/source.tar.gz?rev=ff81ac966bb2cae68946d5ed5fc4994f96d0ffec&revCount=69" + }, + "original": { + "type": "tarball", + "url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz" + } + }, "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1754091436, + "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -162,11 +195,11 @@ ] }, "locked": { - "lastModified": 1751413152, - "narHash": "sha256-Tyw1RjYEsp5scoigs1384gIg6e0GoBVjms4aXFfRssQ=", + "lastModified": 1756770412, + "narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "77826244401ea9de6e3bac47c2db46005e1f30b5", + "rev": "4524271976b625a4a605beefd893f270620fd751", "type": "github" }, "original": { @@ -237,11 +270,11 @@ ] }, "locked": { - "lastModified": 1752814804, - "narHash": "sha256-irfg7lnfEpJY+3Cffkluzp2MTVw1Uq9QGxFp6qadcXI=", + "lastModified": 1762961767, + "narHash": "sha256-eaejVndX0ai9/t1Xrw1wuUPoVcjHq7hijBljX/l8+Ek=", "owner": "nix-community", "repo": "home-manager", - "rev": "d0300c8808e41da81d6edfc202f3d3833c157daf", + "rev": "747a9a774ed63380bfa08f7f88cf0ba136183d6e", "type": "github" }, "original": { @@ -266,11 +299,11 @@ ] }, "locked": { - "lastModified": 1749155331, - "narHash": "sha256-XR9fsI0zwLiFWfqi/pdS/VD+YNorKb3XIykgTg4l1nA=", + "lastModified": 1753964049, + "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "45fcc10b4c282746d93ec406a740c43b48b4ef80", + "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", "type": "github" }, "original": { @@ -295,11 +328,11 @@ ] }, "locked": { - "lastModified": 1752149140, - "narHash": "sha256-gbh1HL98Fdqu0jJIWN4OJQN7Kkth7+rbkFpSZLm/62A=", + "lastModified": 1762462052, + "narHash": "sha256-6roLYzcDf4V38RUMSqycsOwAnqfodL6BmhRkUtwIgdA=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "340494a38b5ec453dfc542c6226481f736cc8a9a", + "rev": "ffc999d980c7b3bca85d3ebd0a9fbadf984a8162", "type": "github" }, "original": { @@ -313,8 +346,8 @@ "aquamarine": "aquamarine", "hyprcursor": "hyprcursor", "hyprgraphics": "hyprgraphics", + "hyprland-guiutils": "hyprland-guiutils", "hyprland-protocols": "hyprland-protocols", - "hyprland-qtutils": "hyprland-qtutils", "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", @@ -324,11 +357,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1752936500, - "narHash": "sha256-StLLgYbL3U2iDezMbfr/QjUtd2a0Mb+pScDSQxFElTg=", + "lastModified": 1762901961, + "narHash": "sha256-Oh7zDVRVW12nTiJD43UeuhqTox4c9vJCKnGIHHDbdic=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "91d8a629ebfffaa46290331a74a54e249dec64fe", + "rev": "308226a4fc2c9b63fa19894d5f85e79e05d75e03", "type": "github" }, "original": { @@ -337,104 +370,111 @@ "type": "github" } }, - "hyprland-plugins": { + "hyprland-guiutils": { "inputs": { - "hyprland": [ - "hyprland" + "aquamarine": [ + "hyprland", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprlang" + ], + "hyprtoolkit": "hyprtoolkit", + "hyprutils": [ + "hyprland", + "hyprutils" + ], + "hyprwayland-scanner": [ + "hyprland", + "hyprwayland-scanner" ], "nixpkgs": [ - "hyprland-plugins", "hyprland", "nixpkgs" ], "systems": [ - "hyprland-plugins", "hyprland", "systems" ] }, "locked": { - "lastModified": 1752875239, - "narHash": "sha256-fyMI4mWt29sEdTSFJKhIdVQrrewycFWLmrOX/HRf4Ig=", + "lastModified": 1762755186, + "narHash": "sha256-ZjjETUHtoEhVN7JI1Cbt3p/KcXpK8ZQaPHx7UkG1OgA=", "owner": "hyprwm", - "repo": "Hyprland-Plugins", - "rev": "d4bf99e72243e035b15f34db8572d62d73b9a68c", + "repo": "hyprland-guiutils", + "rev": "66356e20a8ed348aa49c1b9ceace786e224225b3", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "Hyprland-Plugins", + "repo": "hyprland-guiutils", "type": "github" } }, - "hyprland-protocols": { + "hyprland-plugins": { "inputs": { + "hyprland": [ + "hyprland" + ], "nixpkgs": [ + "hyprland-plugins", "hyprland", "nixpkgs" ], "systems": [ + "hyprland-plugins", "hyprland", "systems" ] }, "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", + "lastModified": 1762893684, + "narHash": "sha256-YzNJ1S+ZnTsuz9xyi5HfR2VL+rqXgmqD+SU/OqCH5RM=", "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", + "repo": "Hyprland-Plugins", + "rev": "be3cbf60b4b6a90c6e0d947e1e8cf791062b81fb", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-protocols", + "repo": "Hyprland-Plugins", "type": "github" } }, - "hyprland-qt-support": { + "hyprland-protocols": { "inputs": { - "hyprlang": [ - "hyprland", - "hyprland-qtutils", - "hyprlang" - ], "nixpkgs": [ "hyprland", - "hyprland-qtutils", "nixpkgs" ], "systems": [ "hyprland", - "hyprland-qtutils", "systems" ] }, "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", + "lastModified": 1759610243, + "narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=", "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", + "repo": "hyprland-protocols", + "rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-qt-support", + "repo": "hyprland-protocols", "type": "github" } }, - "hyprland-qtutils": { + "hyprlang": { "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland", - "hyprlang" - ], "hyprutils": [ "hyprland", - "hyprland-qtutils", - "hyprlang", "hyprutils" ], "nixpkgs": [ @@ -447,45 +487,68 @@ ] }, "locked": { - "lastModified": 1750371812, - "narHash": "sha256-D868K1dVEACw17elVxRgXC6hOxY+54wIEjURztDWLk8=", + "lastModified": 1758927902, + "narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=", "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "b13c7481e37856f322177010bdf75fccacd1adc8", + "repo": "hyprlang", + "rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprland-qtutils", + "repo": "hyprlang", "type": "github" } }, - "hyprlang": { + "hyprtoolkit": { "inputs": { + "aquamarine": [ + "hyprland", + "hyprland-guiutils", + "aquamarine" + ], + "hyprgraphics": [ + "hyprland", + "hyprland-guiutils", + "hyprgraphics" + ], + "hyprlang": [ + "hyprland", + "hyprland-guiutils", + "hyprlang" + ], "hyprutils": [ "hyprland", + "hyprland-guiutils", "hyprutils" ], + "hyprwayland-scanner": [ + "hyprland", + "hyprland-guiutils", + "hyprwayland-scanner" + ], "nixpkgs": [ "hyprland", + "hyprland-guiutils", "nixpkgs" ], "systems": [ "hyprland", + "hyprland-guiutils", "systems" ] }, "locked": { - "lastModified": 1750371198, - "narHash": "sha256-/iuJ1paQOBoSLqHflRNNGyroqfF/yvPNurxzcCT0cAE=", + "lastModified": 1762463729, + "narHash": "sha256-2fYkU/mdz8WKY3dkDPlE/j6hTxIwqultsx4gMMsMns0=", "owner": "hyprwm", - "repo": "hyprlang", - "rev": "cee01452bca58d6cadb3224e21e370de8bc20f0b", + "repo": "hyprtoolkit", + "rev": "88483bdee5329ec985f0c8f834c519cd18cfe532", "type": "github" }, "original": { "owner": "hyprwm", - "repo": "hyprlang", + "repo": "hyprtoolkit", "type": "github" } }, @@ -501,11 +564,11 @@ ] }, "locked": { - "lastModified": 1752252310, - "narHash": "sha256-06i1pIh6wb+sDeDmWlzuPwIdaFMxLlj1J9I5B9XqSeo=", + "lastModified": 1762387740, + "narHash": "sha256-gQ9zJ+pUI4o+Gh4Z6jhJll7jjCSwi8ZqJIhCE2oqwhQ=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "bcabcbada90ed2aacb435dc09b91001819a6dc82", + "rev": "926689ddb9c0a8787e58c02c765a62e32d63d1f7", "type": "github" }, "original": { @@ -526,11 +589,11 @@ ] }, "locked": { - "lastModified": 1751897909, - "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", + "lastModified": 1755184602, + "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", + "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", "type": "github" }, "original": { @@ -539,13 +602,33 @@ "type": "github" } }, + "nixcord": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1764230686, + "narHash": "sha256-nrYYXatTtHtKOn3B6BFX0KWSGKy77bCLbvL1nSWKmYU=", + "owner": "kaylorben", + "repo": "nixcord", + "rev": "59ec57381d39bb6f7776094372093dfcfa6c55a5", + "type": "github" + }, + "original": { + "owner": "kaylorben", + "repo": "nixcord", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1752687322, - "narHash": "sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo=", + "lastModified": 1762363567, + "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6e987485eb2c77e5dcc5af4e3c70843711ef9251", + "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4", "type": "github" }, "original": { @@ -555,13 +638,44 @@ "type": "github" } }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, "nixpkgs_2": { "locked": { - "lastModified": 1752950548, - "narHash": "sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc=", + "lastModified": 1754028485, + "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "59e69648d345d6e8fef86158c555730fa12af9de", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-25.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1762844143, + "narHash": "sha256-SlybxLZ1/e4T2lb1czEtWVzDCVSTvk9WLwGhmxFmBxI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "c87b95e25065c028d31a94f06a62927d18763fdf", + "rev": "9da7f1cf7f8a6e2a7cb3001b048546c92a8258b4", "type": "github" }, "original": { @@ -571,13 +685,13 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { - "lastModified": 1751792365, - "narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=", + "lastModified": 1758690382, + "narHash": "sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb", + "rev": "e643668fd71b949c53f8626614b21ff71a07379d", "type": "github" }, "original": { @@ -599,11 +713,11 @@ ] }, "locked": { - "lastModified": 1751906969, - "narHash": "sha256-BSQAOdPnzdpOuCdAGSJmefSDlqmStFNScEnrWzSqKPw=", + "lastModified": 1758998580, + "narHash": "sha256-VLx0z396gDCGSiowLMFz5XRO/XuNV+4EnDYjdJhHvUk=", "owner": "nix-community", "repo": "NUR", - "rev": "ddb679f4131e819efe3bbc6457ba19d7ad116f25", + "rev": "ba8d9c98f5f4630bcb0e815ab456afd90c930728", "type": "github" }, "original": { @@ -622,11 +736,11 @@ ] }, "locked": { - "lastModified": 1750779888, - "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "lastModified": 1762441963, + "narHash": "sha256-j+rNQ119ffYUkYt2YYS6rnd6Jh/crMZmbqpkGLXaEt0=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "rev": "8e7576e79b88c16d7ee3bbd112c8d90070832885", "type": "github" }, "original": { @@ -641,7 +755,8 @@ "home-manager": "home-manager", "hyprland": "hyprland", "hyprland-plugins": "hyprland-plugins", - "nixpkgs": "nixpkgs_2", + "nixcord": "nixcord", + "nixpkgs": "nixpkgs_3", "stylix": "stylix", "wallpapers": "wallpapers" } @@ -653,9 +768,9 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "nur": "nur", "systems": "systems_2", "tinted-foot": "tinted-foot", @@ -665,11 +780,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1752965417, - "narHash": "sha256-FDec+RoFgSrk3YPedcjNiBK+acaHO4Vt0YDTMdKdw1w=", + "lastModified": 1762264356, + "narHash": "sha256-QVfC53Ri+8n3e7Ujx9kq6all3+TLBRRPRnc6No5qY5w=", "owner": "danth", "repo": "stylix", - "rev": "f826d3214b8a9be3f158d5cc7514c4130674324b", + "rev": "647bb8dd96a206a1b79c4fd714affc88b409e10b", "type": "github" }, "original": { @@ -744,11 +859,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1750770351, - "narHash": "sha256-LI+BnRoFNRa2ffbe3dcuIRYAUcGklBx0+EcFxlHj0SY=", + "lastModified": 1757716333, + "narHash": "sha256-d4km8W7w2zCUEmPAPUoLk1NlYrGODuVa3P7St+UrqkM=", "owner": "tinted-theming", "repo": "schemes", - "rev": "5a775c6ffd6e6125947b393872cde95867d85a2a", + "rev": "317a5e10c35825a6c905d912e480dfe8e71c7559", "type": "github" }, "original": { @@ -760,11 +875,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1751159871, - "narHash": "sha256-UOHBN1fgHIEzvPmdNMHaDvdRMgLmEJh2hNmDrp3d3LE=", + "lastModified": 1757811970, + "narHash": "sha256-n5ZJgmzGZXOD9pZdAl1OnBu3PIqD+X3vEBUGbTi4JiI=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "bded5e24407cec9d01bd47a317d15b9223a1546c", + "rev": "d217ba31c846006e9e0ae70775b0ee0f00aa6b1e", "type": "github" }, "original": { @@ -776,11 +891,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1751158968, - "narHash": "sha256-ksOyv7D3SRRtebpXxgpG4TK8gZSKFc4TIZpR+C98jX8=", + "lastModified": 1757811247, + "narHash": "sha256-4EFOUyLj85NRL3OacHoLGEo0wjiRJzfsXtR4CZWAn6w=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "86a470d94204f7652b906ab0d378e4231a5b3384", + "rev": "824fe0aacf82b3c26690d14e8d2cedd56e18404e", "type": "github" }, "original": { @@ -792,7 +907,7 @@ "wallpapers": { "flake": false, "locked": { - "lastModified": 1753205958, + "lastModified": 1753285086, "narHash": "sha256-COH3R0ZYkCM0OLj8lG4uo/YUQh7oHz9etmHgJDOPLNU=", "path": "/usr/share/wallpaper", "type": "path" @@ -830,11 +945,11 @@ ] }, "locked": { - "lastModified": 1751300244, - "narHash": "sha256-PFuv1TZVYvQhha0ac53E3YgdtmLShrN0t4T6xqHl0jE=", + "lastModified": 1761431178, + "narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "6115f3fdcb2c1a57b4a80a69f3c797e47607b90a", + "rev": "4b8801228ff958d028f588f0c2b911dbf32297f9", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index d5a6738..d7b6355 100644 --- a/flake.nix +++ b/flake.nix @@ -16,6 +16,8 @@ stylix.url = "github:danth/stylix"; + nixcord.url = "github:kaylorben/nixcord"; + hyprland.url = "github:hyprwm/Hyprland"; hyprland-plugins = { url = "github:hyprwm/Hyprland-Plugins"; @@ -47,6 +49,11 @@ ./hosts/centaur/configuration.nix inputs.home-manager.nixosModules.default inputs.stylix.nixosModules.stylix + { + home-manager.sharedModules = [ + inputs.nixcord.homeModules.nixcord + ]; + } ]; }; formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra; diff --git a/hosts/centaur/configuration.nix b/hosts/centaur/configuration.nix index f1c6f60..dc0bd5a 100644 --- a/hosts/centaur/configuration.nix +++ b/hosts/centaur/configuration.nix @@ -19,7 +19,20 @@ # BOOT CONFIGURATION # ============================================================================ boot.loader = { - systemd-boot.enable = true; + grub = { + enable = true; + efiSupport = true; + device = "nodev"; + extraEntries = '' + menuentry "Red Hat Enterprise Linux 10" { + insmod part_gpt + insmod xfs + search --no-floppy --fs-uuid --set=root fd3258e6-5af2-4c09-9943-398267b04e5b + linux /vmlinuz-6.12.0-55.22.1.el10_0.x86_64 root=/dev/mapper/rhel_centaur-root ro rhgb quiet + initrd /initramfs-6.12.0-55.22.1.el10_0.x86_64.img + } + ''; + }; efi.canTouchEfiVariables = true; }; @@ -194,6 +207,7 @@ # ============================================================================ home-manager = { extraSpecialArgs = {inherit inputs;}; + backupFileExtension = "backup"; users = { "fpl" = import ./home.nix; }; diff --git a/hosts/centaur/home.nix b/hosts/centaur/home.nix index 67fd343..7fa9403 100644 --- a/hosts/centaur/home.nix +++ b/hosts/centaur/home.nix @@ -21,6 +21,8 @@ ../../modules/home-manager/python-packages.nix ../../modules/home-manager/cli-tools.nix ../../modules/home-manager/discord.nix + ../../modules/home-manager/neovim.nix + ../../modules/home-manager/rust.nix ../../modules/hyprland/default.nix ]; @@ -38,7 +40,20 @@ home.packages = [ pkgs.texlive.combined.scheme-full pkgs.protonvpn-gui - pkgs.termius + (pkgs.termius.overrideAttrs (oldAttrs: { + autoPatchelfIgnoreMissingDeps = + (oldAttrs.autoPatchelfIgnoreMissingDeps or []) + ++ [ + "libsqlite3.so.0" + ]; + buildInputs = + (oldAttrs.buildInputs or []) + ++ [ + pkgs.libGL + pkgs.nss + pkgs.sqlite + ]; + })) # # Adds the 'hello' command to your environment. It prints a friendly # # "Hello, world!" when run. # pkgs.hello diff --git a/modules/home-manager/discord.nix b/modules/home-manager/discord.nix index b47d97b..c5c4410 100644 --- a/modules/home-manager/discord.nix +++ b/modules/home-manager/discord.nix @@ -1,7 +1,156 @@ -{pkgs, ...}: { - home.packages = [ - pkgs.vesktop - ]; +{pkgs, ...}: let + # CSS to map Stylix base16 colors to Midnight Discord theme variables + midnightStylixCss = '' + /** + * Midnight Discord theme with Stylix colors + * This maps Stylix base16 variables to Midnight theme variables + */ - stylix.targets.vesktop.enable = true; + body { + /* font options */ + --font: 'figtree'; + --code-font: ""; + + /* sizes */ + --gap: 12px; + --divider-thickness: 4px; + --border-thickness: 1px; + + /* animation options */ + --animations: on; + --list-item-transition: 0.2s ease; + --dms-icon-svg-transition: 0.4s ease; + --border-hover-transition: 0.2s ease; + + /* top bar options */ + --top-bar-height: 32px; + --top-bar-button-position: titlebar; + --top-bar-title-position: off; + --subtle-top-bar-title: off; + + /* chatbar options */ + --custom-chatbar: aligned; + --chatbar-height: 47px; + + /* dms button options */ + --custom-dms-icon: custom; + --dms-icon-svg-url: url('https://refact0r.github.io/midnight-discord/assets/Font_Awesome_5_solid_moon.svg'); + --dms-icon-svg-size: 90%; + --custom-dms-background: off; + + /* window control options */ + --custom-window-controls: on; + --window-control-size: 14px; + + /* other options */ + --small-user-panel: off; + --colors: on; + + /* text colors - using Stylix base16 variables */ + --text-0: var(--base00); + --text-1: #ffffff; + --text-2: #f0f0f0; + --text-3: #e0e0e0; + --text-4: var(--base04); + --text-5: var(--base03); + + /* background colors - using Stylix base16 variables */ + --bg-1: var(--base02); + --bg-2: var(--base01); + --bg-3: var(--base01); + --bg-4: var(--base00); + --hover: hsla(220, 19%, 40%, 0.1); + --active: hsla(220, 19%, 40%, 0.2); + --active-2: hsla(220, 19%, 40%, 0.3); + --message-hover: hsla(230, 0%, 0%, 0.1); + + /* accent colors - using Stylix base16 variables */ + --accent-1: var(--base0D); + --accent-2: var(--base0D); + --accent-3: var(--base0D); + --accent-4: var(--base0C); + --accent-5: var(--base0C); + --accent-new: var(--base0D); + --mention: linear-gradient(to right, color-mix(in hsl, var(--base0D), transparent 90%) 40%, transparent); + --mention-hover: linear-gradient(to right, color-mix(in hsl, var(--base0D), transparent 95%) 40%, transparent); + --reply: linear-gradient(to right, color-mix(in hsl, var(--text-3), transparent 90%) 40%, transparent); + --reply-hover: linear-gradient(to right, color-mix(in hsl, var(--text-3), transparent 95%) 40%, transparent); + + /* status colors */ + --online: var(--base0B); + --dnd: var(--base08); + --idle: var(--base0A); + --streaming: var(--base0E); + --offline: var(--text-4); + + /* border colors */ + --border-light: hsla(230, 20%, 40%, 0.1); + --border: hsla(230, 20%, 40%, 0.2); + --button-border: hsla(0, 0%, 100%, 0.1); + + /* base colors - all mapped from Stylix */ + --red-1: var(--base08); + --red-2: var(--base08); + --red-3: var(--base08); + --red-4: var(--base08); + --red-5: var(--base08); + + --green-1: var(--base0B); + --green-2: var(--base0B); + --green-3: var(--base0B); + --green-4: var(--base0B); + --green-5: var(--base0B); + + --blue-1: var(--base0D); + --blue-2: var(--base0D); + --blue-3: var(--base0D); + --blue-4: var(--base0D); + --blue-5: var(--base0D); + + --yellow-1: var(--base0A); + --yellow-2: var(--base0A); + --yellow-3: var(--base0A); + --yellow-4: var(--base0A); + --yellow-5: var(--base0A); + + --purple-1: var(--base0E); + --purple-2: var(--base0E); + --purple-3: var(--base0E); + --purple-4: var(--base0E); + --purple-5: var(--base0E); + } + ''; +in { + programs.nixcord = { + enable = true; + vesktop.enable = true; + + config = { + useQuickCss = true; + + themeLinks = [ + "https://refact0r.github.io/midnight-discord/build/midnight.css" + ]; + + plugins = { + biggerStreamPreview.enable = true; + messageLogger.enable = true; + callTimer.enable = true; + clearURLs.enable = true; + permissionsViewer.enable = true; + platformIndicators.enable = true; + relationshipNotifier.enable = true; + showHiddenChannels.enable = true; + typingIndicator.enable = true; + }; + }; + + quickCss = ""; + }; + + # Stylix will generate a theme with --base00 through --base0F CSS variables + stylix.targets.nixcord.enable = true; + + # Extra CSS to map Stylix base16 colors to Midnight Discord theme variables + stylix.targets.nixcord.extraCss = midnightStylixCss; } diff --git a/modules/home-manager/firefox.nix b/modules/home-manager/firefox.nix index af9c925..02ceddf 100644 --- a/modules/home-manager/firefox.nix +++ b/modules/home-manager/firefox.nix @@ -6,11 +6,21 @@ }: { home.packages = with pkgs; [firefox]; - stylix.targets.firefox.profileNames = ["fpl"]; + stylix.targets.firefox = { + enable = true; + profileNames = ["fpl"]; + colorTheme.enable = true; + }; programs.firefox = { enable = true; profiles.fpl = { + isDefault = true; + settings = { + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + "browser.startup.page" = 3; + }; + extensions.force = true; extensions.packages = with inputs.firefox-addons.packages."x86_64-linux"; [ bitwarden ublock-origin diff --git a/modules/home-manager/jetbrains.nix b/modules/home-manager/jetbrains.nix index ab82787..06bfefd 100644 --- a/modules/home-manager/jetbrains.nix +++ b/modules/home-manager/jetbrains.nix @@ -1,11 +1,25 @@ {pkgs, ...}: let - jetbrainsToolboxWithDesktop = pkgs.symlinkJoin { - name = "jetbrains-toolbox-with-desktop"; - paths = [pkgs.jetbrains-toolbox]; - nativeBuildInputs = [pkgs.makeWrapper]; - postBuild = '' - mkdir -p $out/share/applications - cat > $out/share/applications/jetbrains-toolbox.desktop </dev/null || true + chmod -R u+w $out/share/ 2>/dev/null || true + fi + + # Ensure applications directory exists and is writable + mkdir -p $out/share/applications + chmod u+w $out/share/applications + + # Create the desktop file + cat > $out/share/applications/jetbrains-toolbox.desktop <e", ":NvimTreeToggle") + + -- Telescope + keymap("n", "ff", ":Telescope find_files") + keymap("n", "fg", ":Telescope live_grep") + keymap("n", "fb", ":Telescope buffers") + keymap("n", "fh", ":Telescope help_tags") + + -- Window navigation + keymap("n", "", "h") + keymap("n", "", "j") + keymap("n", "", "k") + keymap("n", "", "l") + + -- Buffer management + keymap("n", "bn", ":bnext") + keymap("n", "bp", ":bprevious") + keymap("n", "bd", ":bdelete") + + -- Plugin configurations + + -- Nvim Tree + require("nvim-tree").setup({ + sort_by = "case_sensitive", + view = { + width = 30, + }, + renderer = { + group_empty = true, + }, + filters = { + dotfiles = true, + }, + }) + + -- Telescope + require("telescope").setup({ + defaults = { + mappings = { + i = { + [""] = require("telescope.actions").move_selection_previous, + [""] = require("telescope.actions").move_selection_next, + } + } + } + }) + require("telescope").load_extension("fzf") + + -- Treesitter + require("nvim-treesitter.configs").setup({ + highlight = { + enable = true, + }, + indent = { + enable = true, + }, + }) + + -- LSP Configuration + local lspconfig = require("lspconfig") + local capabilities = require("cmp_nvim_lsp").default_capabilities() + + -- C/C++ LSP + lspconfig.clangd.setup({ + capabilities = capabilities, + cmd = { + "clangd", + "--background-index", + "--clang-tidy", + "--header-insertion=iwyu", + "--completion-style=detailed", + "--function-arg-placeholders", + "--fallback-style=llvm", + }, + init_options = { + usePlaceholders = true, + }, + }) + + -- Python LSP + lspconfig.pyright.setup({ + capabilities = capabilities, + settings = { + python = { + analysis = { + autoSearchPaths = true, + diagnosticMode = "workspace", + useLibraryCodeForTypes = true, + }, + }, + }, + }) + + -- Java LSP + lspconfig.jdtls.setup({ + capabilities = capabilities, + cmd = { "jdtls" }, + settings = { + java = { + eclipse = { + downloadSources = true, + }, + configuration = { + updateBuildConfiguration = "interactive", + }, + maven = { + downloadSources = true, + }, + implementationsCodeLens = { + enabled = true, + }, + referencesCodeLens = { + enabled = true, + }, + references = { + includeDecompiledSources = true, + }, + format = { + enabled = true, + }, + }, + signatureHelp = { enabled = true }, + completion = { + favoriteStaticMembers = { + "org.hamcrest.MatcherAssert.assertThat", + "org.hamcrest.Matchers.*", + "org.hamcrest.CoreMatchers.*", + "org.junit.jupiter.api.Assertions.*", + "java.util.Objects.requireNonNull", + "java.util.Objects.requireNonNullElse", + "org.mockito.Mockito.*", + }, + }, + contentProvider = { preferred = "fernflower" }, + sources = { + organizeImports = { + starThreshold = 9999, + staticStarThreshold = 9999, + }, + }, + codeGeneration = { + toString = { + template = "$(object.className){$(member.name())=$(member.value), $(otherMembers)}", + }, + useBlocks = true, + }, + }, + }) + + -- Kotlin LSP + lspconfig.kotlin_language_server.setup({ + capabilities = capabilities, + }) + + -- Rust LSP + lspconfig.rust_analyzer.setup({ + capabilities = capabilities, + settings = { + ["rust-analyzer"] = { + imports = { + granularity = { + group = "module", + }, + prefix = "self", + }, + cargo = { + buildScripts = { + enable = true, + }, + }, + procMacro = { + enable = true, + }, + checkOnSave = { + command = "clippy", + }, + }, + }, + }) + + -- Nix LSP + lspconfig.nixd.setup({ + capabilities = capabilities, + }) + + -- TypeScript LSP + lspconfig.ts_ls.setup({ + capabilities = capabilities, + }) + + -- LSP key mappings + vim.api.nvim_create_autocmd("LspAttach", { + group = vim.api.nvim_create_augroup("UserLspConfig", {}), + callback = function(ev) + local opts = { buffer = ev.buf } + keymap("n", "gD", vim.lsp.buf.declaration, opts) + keymap("n", "gd", vim.lsp.buf.definition, opts) + keymap("n", "K", vim.lsp.buf.hover, opts) + keymap("n", "gi", vim.lsp.buf.implementation, opts) + keymap("n", "", vim.lsp.buf.signature_help, opts) + keymap("n", "rn", vim.lsp.buf.rename, opts) + keymap("n", "ca", vim.lsp.buf.code_action, opts) + keymap("n", "gr", vim.lsp.buf.references, opts) + keymap("n", "f", function() + vim.lsp.buf.format { async = true } + end, opts) + end, + }) + + -- Completion setup + local cmp = require("cmp") + local luasnip = require("luasnip") + + cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + window = { + completion = cmp.config.window.bordered(), + documentation = cmp.config.window.bordered(), + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + sources = cmp.config.sources({ + { name = "nvim_lsp" }, + { name = "luasnip" }, + { name = "buffer" }, + { name = "path" }, + }), + }) + + -- Lualine + require("lualine").setup({ + options = { + theme = "dracula", + component_separators = { left = "", right = ""}, + section_separators = { left = "", right = ""}, + }, + }) + + -- Git signs + require("gitsigns").setup() + + -- Comment plugin + require("Comment").setup() + + -- Autopairs + require("nvim-autopairs").setup() + + -- Which-key + require("which-key").setup() + + -- Indent blankline + require("ibl").setup() + ''; + }; + + # Additional packages that Neovim might need + home.packages = with pkgs; [ + # Language servers + nixd + rust-analyzer + nodePackages.typescript-language-server + pyright + clang-tools + jdt-language-server + kotlin-language-server + + # Additional tools + ripgrep + fd + tree-sitter + ]; +} diff --git a/modules/home-manager/rust.nix b/modules/home-manager/rust.nix new file mode 100644 index 0000000..bbfff85 --- /dev/null +++ b/modules/home-manager/rust.nix @@ -0,0 +1,21 @@ +{ + config, + pkgs, + ... +}: { + home.packages = with pkgs; [ + rustc + cargo + rust-analyzer + rustfmt + clippy + + cargo-watch + cargo-edit + cargo-outdated + ]; + + home.sessionVariables = { + RUST_SRC_PATH = "${pkgs.rust.packages.stable.rustPlatform.rustLibSrc}"; + }; +} diff --git a/modules/hyprland/hyprland-config.nix b/modules/hyprland/hyprland-config.nix index 2a0be6d..3f2b9b2 100644 --- a/modules/hyprland/hyprland-config.nix +++ b/modules/hyprland/hyprland-config.nix @@ -15,6 +15,7 @@ exec-once = waybar exec-once = mako exec-once = wl-paste --watch cliphist store + exec-once = sleep 3 && vesktop --start-minimized monitor = eDP-1,1920x1080@60,0x0,1 @@ -74,6 +75,7 @@ # Window rules windowrule=opacity 0.75 override 0.70 override, class:^(thunar)$ windowrule=opacity 0.98 override 0.98 override, class:^(firefox)$ + windowrule=opacity 0.98 override 0.98 override, class:^(vesktop)$ windowrule=opacity 0.98 override 0.98 override, class:^(gimp|gwenview|ristretto)$ windowrule=opacity 0.98 override 0.98 override, class:^(evince|okular|zathura)$ windowrule=opacity 0.98 override 0.98 override, class:^(vlc|mpv)$ diff --git a/modules/hyprland/waybar.nix b/modules/hyprland/waybar.nix index d3d7f6c..45c5fb1 100644 --- a/modules/hyprland/waybar.nix +++ b/modules/hyprland/waybar.nix @@ -332,7 +332,7 @@ format-ethernet = "󰈀 100% "; format-linked = "{ifname} (No IP)"; format-wifi = " {signalStrength}%"; - tooltip-format = "Connected to {essid} {ifname} via {gwaddr}"; + tooltip-format = "Connected to {essid} {ifname} via {gwaddr} | IP: {ipaddr}"; on-click = "nm-connection-editor"; }; position = "top";