diff --git a/flake.lock b/flake.lock index 3203282..91e426c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,38 +1,5 @@ { "nodes": { - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1780756231, - "narHash": "sha256-tXQxKdG5716uB9/LIkLQqQwHKf5mRSpHoZhz3lyI2Cg=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "6ecde03f47172753fe5a2f334f9d3facfb7e6784", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, "awesome-wallpapers": { "inputs": { "nixpkgs": "nixpkgs" @@ -196,7 +163,7 @@ "iknowyou", "nixpkgs" ], - "systems": "systems_4", + "systems": "systems_3", "treefmt-nix": "treefmt-nix_3" }, "locked": { @@ -213,100 +180,6 @@ "type": "github" } }, - "caelestia-cli": { - "inputs": { - "caelestia-shell": "caelestia-shell", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1782104807, - "narHash": "sha256-/7jbIblpgaeNuVlAqhJr8vA7Y9DGKb+o2xeLqU5BK70=", - "owner": "caelestia-dots", - "repo": "cli", - "rev": "3c537b90e120f1b4a3e0985239fbcd5de07a3d9f", - "type": "github" - }, - "original": { - "owner": "caelestia-dots", - "repo": "cli", - "type": "github" - } - }, - "caelestia-cli_2": { - "inputs": { - "caelestia-shell": [ - "caelestia-shell" - ], - "nixpkgs": [ - "caelestia-shell", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1781930126, - "narHash": "sha256-AopjjM6497f3Usb6IAZgensjtzGlYGGpJLw7DRtP67I=", - "owner": "caelestia-dots", - "repo": "cli", - "rev": "b00dabaa9351d1383dfba162f5b3575b49a126e1", - "type": "github" - }, - "original": { - "owner": "caelestia-dots", - "repo": "cli", - "type": "github" - } - }, - "caelestia-shell": { - "inputs": { - "caelestia-cli": [ - "caelestia-cli" - ], - "m3shapes": "m3shapes", - "nixpkgs": [ - "caelestia-cli", - "nixpkgs" - ], - "quickshell": "quickshell" - }, - "locked": { - "lastModified": 1782048179, - "narHash": "sha256-8RSk3Jr5Ud+zJKinu4400dz7J0wWBIuqZ2Ulst7IPuI=", - "owner": "caelestia-dots", - "repo": "shell", - "rev": "ddcfd10661e02b53705c0264e982debac04e215e", - "type": "github" - }, - "original": { - "owner": "caelestia-dots", - "repo": "shell", - "type": "github" - } - }, - "caelestia-shell_2": { - "inputs": { - "caelestia-cli": "caelestia-cli_2", - "m3shapes": "m3shapes_2", - "nixpkgs": [ - "nixpkgs" - ], - "quickshell": "quickshell_2" - }, - "locked": { - "lastModified": 1782048179, - "narHash": "sha256-8RSk3Jr5Ud+zJKinu4400dz7J0wWBIuqZ2Ulst7IPuI=", - "owner": "caelestia-dots", - "repo": "shell", - "rev": "ddcfd10661e02b53705c0264e982debac04e215e", - "type": "github" - }, - "original": { - "owner": "caelestia-dots", - "repo": "shell", - "type": "github" - } - }, "crane": { "locked": { "lastModified": 1780532242, @@ -358,22 +231,6 @@ } }, "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "NixOS", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { "flake": false, "locked": { "lastModified": 1777699697, @@ -444,6 +301,27 @@ } }, "flake-parts_4": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_5": { "inputs": { "nixpkgs-lib": [ "nvf", @@ -464,7 +342,7 @@ "type": "github" } }, - "flake-parts_5": { + "flake-parts_6": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -501,28 +379,6 @@ "type": "github" } }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "hyprland", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "gnome-shell": { "flake": false, "locked": { @@ -542,7 +398,9 @@ }, "helium-browser": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1781783441, @@ -578,331 +436,10 @@ "type": "github" } }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1776511930, - "narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "39435900785d0c560c6ae8777d29f28617d031ef", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprgraphics": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1776426399, - "narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-guiutils": "hyprland-guiutils", - "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "hyprwire": "hyprwire", - "nixpkgs": "nixpkgs_5", - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_3", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1782070887, - "narHash": "sha256-AZvkraDtbqlrWbmmUk+pL2OL7G/L3WEV/Y65ZkAJZNo=", - "ref": "refs/heads/main", - "rev": "5a7078d20a14bb199ef9bb81faa4faeaf5e92117", - "revCount": 7490, - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - }, - "original": { - "submodules": true, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - } - }, - "hyprland-guiutils": { - "inputs": { - "aquamarine": [ - "hyprland", - "aquamarine" - ], - "hyprgraphics": [ - "hyprland", - "hyprgraphics" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprtoolkit": "hyprtoolkit", - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1776426575, - "narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=", - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "rev": "a968d211048e3ed538e47b84cb3649299578f19d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-guiutils", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1772460177, - "narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1777320127, - "narHash": "sha256-Qu+Wf2Bp5qUjyn2YpZNq8a7JyzTGowhT1knrwE38a9U=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "090117506ddc3d7f26e650ff344d378c2ec329cc", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "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": 1772462885, - "narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=", - "owner": "hyprwm", - "repo": "hyprtoolkit", - "rev": "9af245a69fa6b286b88ddfc340afd288e00a6998", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprtoolkit", - "type": "github" - } - }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1780251518, - "narHash": "sha256-fG9xbb1SOAAJ+2kJRakp3ch+BmA/3dEg/K3PoAZTKkw=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "40ede2e7bdec80ba5d4c443160d905e9f841ae5f", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1777159683, - "narHash": "sha256-Jxixw6wZphUp+nHYxOKUYSckL17QMBx2d5Zp0rJHr1g=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "b8632713a6beaf28b56f2a7b0ab2fb7088dbb404", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "hyprwire": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1778410714, - "narHash": "sha256-o6RzFj4nJXaPRY7EM01siuCQeT41RfwwmcmFQqwFJJg=", - "owner": "hyprwm", - "repo": "hyprwire", - "rev": "85148a8e612808cf5ddb25d0b3c5840f3498a7dc", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwire", - "type": "github" - } - }, "iknowyou": { "inputs": { "bun2nix": "bun2nix_3", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_4", "nur-osint": "nur-osint" }, "locked": { @@ -964,40 +501,6 @@ "type": "github" } }, - "m3shapes": { - "flake": false, - "locked": { - "lastModified": 1781017666, - "narHash": "sha256-kfHyzZaPHgqZML48OA+5JwBOsLdQJ2ci/aGPShvUB4Y=", - "owner": "soramanew", - "repo": "m3shapes", - "rev": "bdc327b29f95394a732baf3c9b19658ba23755b6", - "type": "github" - }, - "original": { - "owner": "soramanew", - "repo": "m3shapes", - "rev": "bdc327b29f95394a732baf3c9b19658ba23755b6", - "type": "github" - } - }, - "m3shapes_2": { - "flake": false, - "locked": { - "lastModified": 1781017666, - "narHash": "sha256-kfHyzZaPHgqZML48OA+5JwBOsLdQJ2ci/aGPShvUB4Y=", - "owner": "soramanew", - "repo": "m3shapes", - "rev": "bdc327b29f95394a732baf3c9b19658ba23755b6", - "type": "github" - }, - "original": { - "owner": "soramanew", - "repo": "m3shapes", - "rev": "bdc327b29f95394a732baf3c9b19658ba23755b6", - "type": "github" - } - }, "mnw": { "locked": { "lastModified": 1780772958, @@ -1035,7 +538,7 @@ }, "nixarr": { "inputs": { - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_5", "treefmt-nix": "treefmt-nix_4", "vpnconfinement": "vpnconfinement", "website-builder": "website-builder" @@ -1056,19 +559,18 @@ }, "nixos-hardware": { "inputs": { - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1781622756, - "narHash": "sha256-JrPh4M6S7aPsEE9tOENuZrxC6o2szSLlK+t4+nLke9s=", + "lastModified": 1782166108, + "narHash": "sha256-/EtnQBcKbsaCAGQ5VRcplrHRkR4ryqyLMpBfkVuG9Xw=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "08018c72174a4df5657f8d94178ac69fb9c243e5", + "rev": "875776f0252fcb8618bb948640a0d1f7a5b362be", "type": "github" }, "original": { "owner": "NixOS", - "ref": "master", "repo": "nixos-hardware", "type": "github" } @@ -1136,59 +638,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1781509190, - "narHash": "sha256-uJZs9Di8I6ciTp6jiojj0HzlNpBkud8ax5aT/O5aJkw=", + "lastModified": 1782116945, + "narHash": "sha256-G3tw/IXmaH6IQ2upZvhuN9sG8CkuX+BLuJDpE8hz0Ds=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d6df3513510aa548c83868fd22bfddd0a8c0a0d4", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_10": { - "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1781216227, - "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", + "rev": "34268251cf5547d39063f2c5ea9a196246f7f3a6", "type": "github" }, "original": { @@ -1198,38 +652,6 @@ "type": "github" } }, - "nixpkgs_13": { - "locked": { - "lastModified": 1775888245, - "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "13043924aaa7375ce482ebe2494338e058282925", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_14": { - "locked": { - "lastModified": 1780243769, - "narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1776548001, @@ -1263,38 +685,6 @@ } }, "nixpkgs_4": { - "locked": { - "lastModified": 1777578337, - "narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "15f4ee454b1dce334612fa6843b3e05cf546efab", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { "locked": { "lastModified": 1775710090, "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", @@ -1310,7 +700,7 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_5": { "locked": { "lastModified": 1775595990, "narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=", @@ -1326,7 +716,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_6": { "locked": { "lastModified": 1767892417, "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", @@ -1339,7 +729,7 @@ "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, - "nixpkgs_9": { + "nixpkgs_7": { "locked": { "lastModified": 1781577229, "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", @@ -1355,10 +745,28 @@ "type": "github" } }, + "nixpkgs_8": { + "locked": { + "lastModified": 1781216227, + "narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-26.05", + "repo": "nixpkgs", + "type": "github" + } + }, "notashelf-tuigreet": { "inputs": { "crane": "crane", - "nixpkgs": "nixpkgs_10", + "nixpkgs": [ + "nixpkgs" + ], "rust-overlay": "rust-overlay" }, "locked": { @@ -1377,44 +785,22 @@ }, "nur": { "inputs": { - "flake-parts": [ - "stylix", - "flake-parts" - ], + "flake-parts": "flake-parts_4", "nixpkgs": [ - "stylix", "nixpkgs" ] }, "locked": { - "lastModified": 1780281641, - "narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=", + "lastModified": 1782288426, + "narHash": "sha256-SNJtZSWJ4/ZGmD2PCpbpOggNugnNs917knMbmUi+1oU=", "owner": "nix-community", - "repo": "NUR", - "rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01", + "repo": "nur", + "rev": "b944f4918bc67344f4c9253ea4b72cddda85a9d7", "type": "github" }, "original": { "owner": "nix-community", - "repo": "NUR", - "type": "github" - } - }, - "nur-anotherhadi": { - "inputs": { - "nixpkgs": "nixpkgs_11" - }, - "locked": { - "lastModified": 1781028989, - "narHash": "sha256-wN9iKLIUrD1xOTKB2GXsTBlXYsByL/Tk0hk/KPh0/vw=", - "owner": "anotherhadi", - "repo": "nur-packages", - "rev": "afedd9b527fc7f0e418e6384fa581d8bb7564675", - "type": "github" - }, - "original": { - "owner": "anotherhadi", - "repo": "nur-packages", + "repo": "nur", "type": "github" } }, @@ -1439,13 +825,38 @@ "type": "github" } }, + "nur_2": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1780281641, + "narHash": "sha256-M/+hUKoKbHXpV0xGVfELbN1Ds1aoe3pL5p5/t46YhVo=", + "owner": "nix-community", + "repo": "NUR", + "rev": "30f9ae2f04174de63ba8bcf3580ca90843b28a01", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, "nvf": { "inputs": { - "flake-compat": "flake-compat_2", - "flake-parts": "flake-parts_4", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts_5", "mnw": "mnw", - "nixpkgs": "nixpkgs_12", - "systems": "systems_5" + "nixpkgs": "nixpkgs_8", + "systems": "systems_4" }, "locked": { "lastModified": 1781997110, @@ -1461,90 +872,21 @@ "type": "github" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1778507602, - "narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "quickshell": { - "inputs": { - "nixpkgs": [ - "caelestia-cli", - "caelestia-shell", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1781847791, - "narHash": "sha256-Mo2YtNEGlcySnbq0YuP3nUKMAQCMAfE+TcCffo5vzD8=", - "ref": "refs/heads/master", - "rev": "68c2c85c33845385f7ab8147b32f1450b1e468e0", - "revCount": 824, - "type": "git", - "url": "https://git.outfoxxed.me/outfoxxed/quickshell" - }, - "original": { - "type": "git", - "url": "https://git.outfoxxed.me/outfoxxed/quickshell" - } - }, - "quickshell_2": { - "inputs": { - "nixpkgs": [ - "caelestia-shell", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1781847791, - "narHash": "sha256-Mo2YtNEGlcySnbq0YuP3nUKMAQCMAfE+TcCffo5vzD8=", - "ref": "refs/heads/master", - "rev": "68c2c85c33845385f7ab8147b32f1450b1e468e0", - "revCount": 824, - "type": "git", - "url": "https://git.outfoxxed.me/outfoxxed/quickshell" - }, - "original": { - "type": "git", - "url": "https://git.outfoxxed.me/outfoxxed/quickshell" - } - }, "root": { "inputs": { "awesome-wallpapers": "awesome-wallpapers", "blog": "blog", - "caelestia-cli": "caelestia-cli", - "caelestia-shell": "caelestia-shell_2", "default-creds": "default-creds", "helium-browser": "helium-browser", "home-manager": "home-manager", - "hyprland": "hyprland", "iknowyou": "iknowyou", "nix-index-database": "nix-index-database", "nixarr": "nixarr", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs_7", "nixpkgs-stable": "nixpkgs-stable", "notashelf-tuigreet": "notashelf-tuigreet", - "nur-anotherhadi": "nur-anotherhadi", + "nur": "nur", "nvf": "nvf", "sops-nix": "sops-nix", "stylix": "stylix" @@ -1573,7 +915,9 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_13" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1781943681, @@ -1596,11 +940,13 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_6", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_14", - "nur": "nur", - "systems": "systems_6", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur_2", + "systems": "systems_5", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", "tinted-tmux": "tinted-tmux", @@ -1609,13 +955,13 @@ "locked": { "lastModified": 1781997134, "narHash": "sha256-muBZG4O/agq/ljgHr6c3AsobIWgODAS6vf50xIS7o+Q=", - "owner": "danth", + "owner": "nix-community", "repo": "stylix", "rev": "a6a493119e492e15874caf6f7f8c7e572e64c655", "type": "github" }, "original": { - "owner": "danth", + "owner": "nix-community", "repo": "stylix", "type": "github" } @@ -1652,16 +998,16 @@ }, "systems_3": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -1695,21 +1041,6 @@ "type": "github" } }, - "systems_6": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "tinted-kitty": { "flake": false, "locked": { @@ -1896,47 +1227,6 @@ "repo": "website-builder", "type": "github" } - }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1780133819, - "narHash": "sha256-0YPKIY3dlnR7SPq7Z8ekFVvzFsfeiAtEj+QUI3KHrlI=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "4a170c0ba96fd37374f93d8f91c9ed91814828ac", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index a35bc0a..3170a61 100644 --- a/flake.nix +++ b/flake.nix @@ -7,16 +7,13 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.11"; - nixos-hardware.url = "github:NixOS/nixos-hardware/master"; - hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; - stylix.url = "github:danth/stylix"; - sops-nix.url = "github:Mic92/sops-nix"; + nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-26.05"; + nixos-hardware.url = "github:NixOS/nixos-hardware"; nvf.url = "github:notashelf/nvf"; - notashelf-tuigreet.url = "github:NotAShelf/tuigreet"; - helium-browser.url = "github:oxcl/nix-flake-helium-browser"; - nur-anotherhadi.url = "github:anotherhadi/nur-packages"; - + nur = { + url = "github:nix-community/nur"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; @@ -25,12 +22,20 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; - caelestia-shell = { - url = "github:caelestia-dots/shell"; + stylix = { + url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; - caelestia-cli = { - url = "github:caelestia-dots/cli"; + sops-nix = { + url = "github:Mic92/sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + notashelf-tuigreet = { + url = "github:NotAShelf/tuigreet"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + helium-browser = { + url = "github:oxcl/nix-flake-helium-browser"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -57,7 +62,6 @@ pkgs ; pkgs-stable = nixpkgs-stable.legacyPackages.${system}; - pkgs-nur-hadi = inputs.nur-anotherhadi.packages.${system}; }; merge = nixpkgs.lib.foldl nixpkgs.lib.recursiveUpdate {}; in diff --git a/home/programs/desktop-actions/default.nix b/home/programs/desktop-actions/default.nix new file mode 100644 index 0000000..d7aaffb --- /dev/null +++ b/home/programs/desktop-actions/default.nix @@ -0,0 +1,85 @@ +{pkgs, ...}: let + waybar-toggle = pkgs.writeShellScriptBin "waybar-toggle" '' + if pidof waybar > /dev/null; then + pkill waybar + else + hyprctl dispatch exec waybar + fi + ''; +in { + home.packages = [waybar-toggle]; + + xdg.desktopEntries = { + focus-toggle = { + name = "Focus Mode"; + exec = "focus-toggle"; + icon = "do-not-disturb-symbolic"; + comment = "Toggle focus mode"; + categories = ["System"]; + terminal = false; + }; + + nightshift-toggle = { + name = "Night Shift"; + exec = "nightshift-toggle"; + icon = "night-light-symbolic"; + comment = "Toggle night shift"; + categories = ["System"]; + terminal = false; + }; + + mic-mute = { + name = "Mute Microphone"; + exec = "swayosd-client --input-volume mute-toggle"; + icon = "microphone-sensitivity-muted-symbolic"; + comment = "Toggle microphone mute"; + categories = ["System"]; + terminal = false; + }; + + lock = { + name = "Lock"; + exec = "hyprlock"; + icon = "system-lock-screen-symbolic"; + comment = "Lock the screen"; + categories = ["System"]; + terminal = false; + }; + + reboot = { + name = "Reboot"; + exec = "systemctl reboot"; + icon = "system-restart-symbolic"; + comment = "Restart the system"; + categories = ["System"]; + terminal = false; + }; + + shutdown = { + name = "Shutdown"; + exec = "systemctl poweroff"; + icon = "system-shutdown-symbolic"; + comment = "Power off the system"; + categories = ["System"]; + terminal = false; + }; + + hibernate = { + name = "Hibernate"; + exec = "systemctl hibernate"; + icon = "drive-harddisk-symbolic"; + comment = "Hibernate the system"; + categories = ["System"]; + terminal = false; + }; + + waybar-toggle = { + name = "Toggle Waybar"; + exec = "waybar-toggle"; + icon = "panel-applets-symbolic"; + comment = "Show or hide the status bar"; + categories = ["System"]; + terminal = false; + }; + }; +} diff --git a/home/programs/focus-mode/default.nix b/home/programs/focus-mode/default.nix new file mode 100644 index 0000000..3c8fad4 --- /dev/null +++ b/home/programs/focus-mode/default.nix @@ -0,0 +1,25 @@ +{pkgs, ...}: let + focus-toggle = + pkgs.writeShellScriptBin "focus-toggle" + # bash + '' + if test -f /tmp/hypr-focus-mode; then + rm /tmp/hypr-focus-mode + hyprctl reload + hyprctl dispatch exec waybar + swayosd-client --custom-message "Focus Mode Off" --custom-icon "do-not-disturb-symbolic" + else + touch /tmp/hypr-focus-mode + pkill waybar || true + hyprctl keyword animations:enabled false + hyprctl keyword general:gaps_in 0 + hyprctl keyword general:gaps_out 0 + hyprctl keyword decoration:active_opacity 1 + hyprctl keyword decoration:inactive_opacity 1 + hyprctl keyword decoration:rounding 0 + swayosd-client --custom-message "Focus Mode On" --custom-icon "do-not-disturb-symbolic" + fi + ''; +in { + home.packages = [focus-toggle]; +} diff --git a/home/programs/group/basic-apps.nix b/home/programs/group/basic-apps.nix index 769cea0..1ede123 100644 --- a/home/programs/group/basic-apps.nix +++ b/home/programs/group/basic-apps.nix @@ -1,7 +1,6 @@ { pkgs, pkgs-stable, - pkgs-nur-hadi, ... }: { home.packages = with pkgs-stable; [ @@ -20,7 +19,6 @@ # I love TUIs caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT) - browsh # A modern text-based browser that renders anything that a modern browser can. It runs in a terminal and can be used remotely over SSH dysk # A terminal-based disk usage analyzer wikiman # Offline search engine for manual pages (arch wiki, tldr) tealdeer # Fast tldr client @@ -28,9 +26,11 @@ wiremix # Simple TUI mixer for PipeWire slides # A terminal-based presentation tool that allows you to create and deliver presentations directly from the command line pom # Pomodoro timer in your terminal + tabiew # A terminal-based CSV viewer and manipulator + jless # A pager for JSON pkgs.wifitui # TUI for managing wifi - pkgs-nur-hadi.usbguard-tui # TUI for managing USBGuard rules - pkgs-nur-hadi.sheets # Terminal based spreadsheet tool + pkgs.nur.repos.anotherhadi.usbguard-tui # TUI for managing USBGuard rules + pkgs.nur.repos.anotherhadi.sheets # Terminal based spreadsheet tool # I love CLIs httpie # Command-line HTTP client, a user-friendly cURL replacement diff --git a/home/programs/group/cybersecurity-packages.nix b/home/programs/group/cybersecurity-packages.nix index c0e9af5..33501e6 100644 --- a/home/programs/group/cybersecurity-packages.nix +++ b/home/programs/group/cybersecurity-packages.nix @@ -1,7 +1,6 @@ { pkgs, pkgs-stable, - pkgs-nur-hadi, }: (with pkgs-stable; [ # Web @@ -25,7 +24,6 @@ # Network inetutils termshark # wireshark in TUI - dnsrecon whois dig nmap @@ -42,7 +40,8 @@ # Forensics binwalk ]) -++ (with pkgs-nur-hadi; [ +++ [ pkgs.dnsrecon ] +++ (with pkgs.nur.repos.anotherhadi; [ spilltea jwt-tui ]) diff --git a/home/programs/group/cybersecurity.nix b/home/programs/group/cybersecurity.nix index cc569cb..afc37da 100644 --- a/home/programs/group/cybersecurity.nix +++ b/home/programs/group/cybersecurity.nix @@ -1,11 +1,10 @@ { pkgs, pkgs-stable, - pkgs-nur-hadi, ... }: { home.packages = import ./cybersecurity-packages.nix { - inherit pkgs pkgs-stable pkgs-nur-hadi; + inherit pkgs pkgs-stable; }; systemd.user.tmpfiles.rules = [ diff --git a/home/programs/group/flake.nix b/home/programs/group/flake.nix index 934e475..148de11 100644 --- a/home/programs/group/flake.nix +++ b/home/programs/group/flake.nix @@ -2,12 +2,11 @@ inputs, pkgs, pkgs-stable, - pkgs-nur-hadi, system, ... }: let devPackages = import ./dev-packages.nix {inherit pkgs pkgs-stable;}; - cyberPackages = import ./cybersecurity-packages.nix {inherit pkgs pkgs-stable pkgs-nur-hadi;}; + cyberPackages = import ./cybersecurity-packages.nix {inherit pkgs pkgs-stable;}; in { packages.${system} = { dev = pkgs.buildEnv { diff --git a/home/programs/group/misc.nix b/home/programs/group/misc.nix index 436a462..ddf112b 100644 --- a/home/programs/group/misc.nix +++ b/home/programs/group/misc.nix @@ -1,9 +1,4 @@ -{ - pkgs-stable, - pkgs-nur-hadi, - inputs, - ... -}: { +{pkgs-stable, ...}: { home.packages = with pkgs-stable; [ tty-solitaire bastet diff --git a/home/programs/nightshift/default.nix b/home/programs/nightshift/default.nix index 749adc3..07101c3 100644 --- a/home/programs/nightshift/default.nix +++ b/home/programs/nightshift/default.nix @@ -3,12 +3,12 @@ pkgs.writeShellScriptBin "nightshift-toggle" # bash '' - if pidof "hyprsunset"; then + if pidof "hyprsunset" > /dev/null; then pkill hyprsunset - ${pkgs.libnotify}/bin/notify-send "Night Shift Disabled" "Returning to full spectrum light. Filter disabled." + swayosd-client --custom-message "Night Shift Off" --custom-icon "night-light-symbolic" else ${pkgs.hyprsunset}/bin/hyprsunset -t 4500 & - ${pkgs.libnotify}/bin/notify-send "Night Shift Activated" "Welcome to the warm side. Blue light filtering is now active." + swayosd-client --custom-message "Night Shift On" --custom-icon "night-light-symbolic" fi ''; in { diff --git a/home/programs/nvf/default.nix b/home/programs/nvf/default.nix index e400962..d0acf43 100644 --- a/home/programs/nvf/default.nix +++ b/home/programs/nvf/default.nix @@ -1,12 +1,16 @@ { inputs, - pkgs, config, ... }: let c = config.lib.stylix.colors; in { imports = [inputs.nvf.homeManagerModules.default]; + + home.sessionVariables = { + EDITOR = "nvim"; + }; + programs.nvf = { enable = true; settings = { diff --git a/home/programs/nvf/picker.nix b/home/programs/nvf/picker.nix index eae7de3..8ef37d6 100644 --- a/home/programs/nvf/picker.nix +++ b/home/programs/nvf/picker.nix @@ -18,7 +18,7 @@ desc = "Smart Find Files"; } { - key = "E"; + key = "e"; mode = "n"; silent = true; action = "lua Snacks.explorer()"; diff --git a/home/programs/nvf/utils.nix b/home/programs/nvf/utils.nix index 57647fa..200ffde 100644 --- a/home/programs/nvf/utils.nix +++ b/home/programs/nvf/utils.nix @@ -5,15 +5,7 @@ vim.keymap.del("n", "tdt") ''; undoFile.enable = true; - utility.yazi-nvim = { - enable = true; - mappings.openYazi = "e"; - }; notes.todo-comments.enable = true; - assistant.copilot = { - enable = true; - cmp.enable = true; - }; autocomplete = { nvim-cmp = { diff --git a/home/programs/proton/auto-start-vpn.nix b/home/programs/proton/auto-start-vpn.nix index 6222d7f..3ce0e98 100644 --- a/home/programs/proton/auto-start-vpn.nix +++ b/home/programs/proton/auto-start-vpn.nix @@ -1,5 +1,5 @@ { wayland.windowManager.hyprland.settings.exec-once = [ - "protonvpn-app --start-minimized &" + "protonvpn-app --start-minimized" ]; } diff --git a/home/programs/proton/default.nix b/home/programs/proton/default.nix index 2473a57..e39af53 100644 --- a/home/programs/proton/default.nix +++ b/home/programs/proton/default.nix @@ -1,9 +1,9 @@ { - pkgs, + pkgs-stable, config, ... }: { - home.packages = with pkgs; [ + home.packages = with pkgs-stable; [ proton-vpn proton-pass proton-authenticator @@ -13,7 +13,7 @@ xdg.desktopEntries = { "Proton Authenticator" = { name = "Proton Authenticator"; - exec = "env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs.proton-authenticator}/bin/proton-authenticator"; + exec = "env WEBKIT_DISABLE_COMPOSITING_MODE=1 ${pkgs-stable.proton-authenticator}/bin/proton-authenticator"; icon = "proton-authenticator"; type = "Application"; categories = ["Utility"]; diff --git a/home/programs/shell/direnv.nix b/home/programs/shell/direnv.nix index 2b51c9d..eddd32f 100644 --- a/home/programs/shell/direnv.nix +++ b/home/programs/shell/direnv.nix @@ -1,6 +1,10 @@ -{ +{pkgs-stable, ...}: { programs.direnv = { enable = true; - nix-direnv.enable = true; + package = pkgs-stable.direnv; + nix-direnv = { + enable = true; + package = pkgs-stable.nix-direnv; + }; }; } diff --git a/home/programs/shell/eza.nix b/home/programs/shell/eza.nix index dbf4c51..d0ff56d 100644 --- a/home/programs/shell/eza.nix +++ b/home/programs/shell/eza.nix @@ -1,7 +1,8 @@ # Eza is a ls replacement -{ +{pkgs-stable, ...}: { programs.eza = { enable = true; + package = pkgs-stable.eza; icons = "auto"; extraOptions = [ diff --git a/home/programs/shell/fzf.nix b/home/programs/shell/fzf.nix index 9ad8965..bc53ef0 100644 --- a/home/programs/shell/fzf.nix +++ b/home/programs/shell/fzf.nix @@ -1,5 +1,6 @@ # Fzf is a general-purpose command-line fuzzy finder. { + pkgs-stable, config, lib, ... @@ -10,6 +11,7 @@ in { programs.fzf = { enable = true; + package = pkgs-stable.fzf; enableZshIntegration = true; colors = lib.mkForce { "fg+" = accent; diff --git a/home/programs/shell/starship.nix b/home/programs/shell/starship.nix index bffc163..90088ea 100644 --- a/home/programs/shell/starship.nix +++ b/home/programs/shell/starship.nix @@ -1,5 +1,6 @@ # starship is a minimal, fast, and extremely customizable prompt for any shell! { + pkgs-stable, config, lib, ... @@ -9,6 +10,7 @@ in { programs.starship = { enable = true; + package = pkgs-stable.starship; settings = { add_newline = true; format = lib.concatStrings [ diff --git a/home/programs/shell/zoxide.nix b/home/programs/shell/zoxide.nix index 4bf8749..0308ca6 100644 --- a/home/programs/shell/zoxide.nix +++ b/home/programs/shell/zoxide.nix @@ -1,7 +1,8 @@ # Zoxide is a cd replacement -{ +{pkgs-stable, ...}: { programs.zoxide = { enable = true; + package = pkgs-stable.zoxide; enableZshIntegration = true; }; } diff --git a/home/programs/shell/zsh.nix b/home/programs/shell/zsh.nix index f7055be..f043388 100644 --- a/home/programs/shell/zsh.nix +++ b/home/programs/shell/zsh.nix @@ -1,20 +1,20 @@ # My shell configuration { - pkgs, + pkgs-stable, lib, config, ... }: { - home.packages = with pkgs; [ + home.packages = with pkgs-stable; [ bat ripgrep ]; - # Add go binaries to the PATH - home.sessionPath = ["$HOME/go/bin"]; - - home.sessionVariables = { - COLORTERM = "truecolor"; + home = { + sessionPath = ["$HOME/go/bin"]; + sessionVariables = { + COLORTERM = "truecolor"; + }; }; programs.zsh = { @@ -59,7 +59,7 @@ v = "nvim"; c = "clear"; e = "exit"; - open = "${pkgs.xdg-utils}/bin/xdg-open"; + open = "${pkgs-stable.xdg-utils}/bin/xdg-open"; notes = "nvim ~/notes/index.md --cmd 'cd ~/notes' -c ':lua Snacks.picker.smart()'"; nix-shell = "nix-shell --command zsh"; @@ -99,7 +99,9 @@ bindkey '^X' edit-command-line # Suffix Aliases - alias -s {nix,md,txt,json,yml,yaml,go}=nvim + alias -s {nix,md,txt,yml,yaml,go}=nvim + alias -s {json,jsonl}=jless + alias -s {csv,tsv,parquet,pqt,arrow,db,sqlite,xls,xlsx,xlsm,xlsb,fwf}=tw alias -s {png,jpg,jpeg,gif,pdf}=xdg-open # 3. Global Aliases (Remplacés n'importe où dans la commande, pas seulement au début) diff --git a/home/programs/spotatui/default.nix b/home/programs/spotatui/default.nix index 70c61ab..8555728 100644 --- a/home/programs/spotatui/default.nix +++ b/home/programs/spotatui/default.nix @@ -1,13 +1,13 @@ # Spotatui is a terminal user interface for Spotify, written in Rust. It allows you to control your Spotify playback and manage your playlists directly from the terminal. { config, - pkgs, + pkgs-stable, ... }: let c = config.lib.stylix.colors; rgb = base: "${c."${base}-rgb-r"}, ${c."${base}-rgb-g"}, ${c."${base}-rgb-b"}"; in { - home.packages = with pkgs; [ + home.packages = with pkgs-stable; [ spotatui ]; diff --git a/home/programs/thunar/default.nix b/home/programs/thunar/default.nix index b977f6b..32157f6 100644 --- a/home/programs/thunar/default.nix +++ b/home/programs/thunar/default.nix @@ -1,6 +1,5 @@ # Thunar is a file explorer { - pkgs, pkgs-stable, config, lib, @@ -11,17 +10,16 @@ in { # ctrl + m to toggle the menubar home.packages = (with pkgs-stable; [ - xfce.thunar - xfce.xfconf - xfce.tumbler - xfce.thunar-archive-plugin - xfce.thunar-volman - xfce.thunar-media-tags-plugin + thunar + xfconf + tumbler + thunar-archive-plugin + thunar-volman + thunar-media-tags-plugin p7zip xarchiver ]) - ++ (with pkgs; [ - # Icon themes: keep on global pkgs to avoid conflicts with other modules + ++ (with pkgs-stable; [ papirus-icon-theme material-icons material-design-icons @@ -32,7 +30,7 @@ in { enable = true; iconTheme = { name = "Papirus-Dark"; - package = pkgs.papirus-icon-theme; + package = pkgs-stable.papirus-icon-theme; }; # bookmarks for the side pane @@ -47,7 +45,7 @@ in { qt.enable = true; home.sessionVariables = { - XDG_ICON_DIR = "${pkgs.papirus-icon-theme}/share/icons/Papirus"; + XDG_ICON_DIR = "${pkgs-stable.papirus-icon-theme}/share/icons/Papirus"; QS_ICON_THEME = "Papirus"; QT_STYLE_OVERRIDE = lib.mkForce "Fusion"; }; diff --git a/home/programs/yazi/default.nix b/home/programs/yazi/default.nix index 1c72124..40460e0 100644 --- a/home/programs/yazi/default.nix +++ b/home/programs/yazi/default.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: { +{pkgs, pkgs-stable, ...}: { programs.yazi = { enable = true; shellWrapperName = "y"; @@ -108,7 +108,7 @@ ]; }; - home.packages = with pkgs; [glow ouch hexyl exiftool fzf wl-clipboard]; + home.packages = with pkgs-stable; [glow ouch hexyl exiftool wl-clipboard]; xdg.configFile."yazi/plugins/toggle-parent.yazi/main.lua".text = '' --- @sync entry diff --git a/home/rofi/default.nix b/home/rofi/default.nix deleted file mode 100644 index de65905..0000000 --- a/home/rofi/default.nix +++ /dev/null @@ -1,186 +0,0 @@ -{ config, pkgs, ... }: let - c = config.lib.stylix.colors; - font = config.stylix.fonts.sansSerif.name; - theme = pkgs.writeText "launcher.rasi" '' - configuration { - modi: "drun,run,window"; - case-sensitive: false; - cycle: true; - normalize-match: true; - show-icons: true; - matching: "normal"; - tokenize: true; - kb-cancel: "Escape,MousePrimary"; - drun-match-fields: "name,exec,generic,comment"; - drun-display-format: "{name} \n[{comment}]"; - drun-url-launcher: "xdg-open"; - drun-show-actions: false; - disable-history: false; - sorting-method: "normal"; - terminal: "ghostty"; - hover-select: true; - me-select-entry: ""; - me-accept-entry: [ "MousePrimary" ]; - timeout { - action: "kb-cancel"; - delay: 0; - } - } - - * { - background: #${c.base00}e5; - background-alt: #${c.base01}ff; - background-sec: #${c.base03}ff; - foreground: #${c.base05}ff; - selected: #${c.base05}ff; - active: #${c.base0B}ff; - urgent: #${c.base08}ff; - highlight: #${c.base03}28; - font: "${font}, bold 12"; - } - - window { - transparency: "real"; - location: west; - anchor: west; - padding: 0; - margin: 5px; - border-radius: 15px; - width: 450px; - height: 100%; - background-color: @background; - } - - mainbox { - border-radius: 0; - margin: 0; - spacing: 10px; - padding: 10px; - background-color: transparent; - children: [ "inputbar", "message", "listview", "mode-switcher" ]; - } - - inputbar { - spacing: 10px; - margin: 0px; - padding: 10px 15px; - border-radius: 16px; - background-color: @background-alt; - color: @foreground; - children: [ "entry" ]; - } - - entry { - background-color: inherit; - color: inherit; - placeholder-color: inherit; - placeholder: "Search..."; - } - - listview { - columns: 1; - dynamic: true; - scrollbar: false; - layout: vertical; - reverse: false; - fixed-height: true; - fixed-columns: true; - spacing: 5px; - margin: 0px; - padding: 10px 8px; - border-radius: 16px; - background-color: @background-alt; - color: @foreground; - } - - element { - enabled: true; - spacing: 8px; - margin: 0px; - padding: 3px 10px; - border-radius: 16px; - background-color: transparent; - color: @foreground; - cursor: pointer; - } - - element selected.normal { - background-color: @highlight; - } - - element-icon { - background-color: transparent; - size: 26px; - margin: 0 5px 0 0; - color: inherit; - cursor: inherit; - } - - element-text { - background-color: transparent; - color: inherit; - cursor: inherit; - padding: 10px 0; - vertical-align: 0.5; - } - - mode-switcher { - enabled: true; - spacing: 8px; - margin: 0px; - border-radius: 16px; - padding: 8px 18px; - background-color: @background-alt; - color: @foreground; - } - - button { - padding: 10px; - margin: 0; - border: 0px solid; - border-radius: 16px; - background-color: @highlight; - color: inherit; - cursor: pointer; - } - - button selected { - background-color: @foreground; - color: @background; - } - - message { - enabled: true; - margin: 0px; - padding: 0px; - border-radius: 0px; - background-color: transparent; - color: @foreground; - } - - textbox { - padding: 8px; - border-radius: 4px; - background-color: @background-alt; - color: @foreground; - placeholder-color: @foreground; - vertical-align: 0.5; - blink: true; - markup: true; - } - - error-message { - padding: 10px; - border-radius: 0px; - background-color: @background; - color: @foreground; - } - ''; -in { - stylix.targets.rofi.enable = false; - - programs.rofi = { - enable = true; - theme = "${theme}"; - }; -} diff --git a/home/system/caelestia-shell/appearance.nix b/home/system/caelestia-shell/appearance.nix deleted file mode 100644 index f80a0c9..0000000 --- a/home/system/caelestia-shell/appearance.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ - pkgs, - config, - ... -}: let - inherit (config.theme) bar-rounding bar-thickness; - inherit (config.stylix) fonts; -in { - home.packages = with pkgs; [ - papirus-icon-theme - ]; - - programs.caelestia.settings = { - paths.sessionGif = ./session-gif-hacker-cat.gif; - background.enabled = false; - appearance = { - transparency = { - enabled = true; - base = config.theme.active-opacity; - layers = config.theme.inactive-opacity; - }; - font.family = { - material = "Material Symbols Rounded"; - mono = fonts.monospace.name; - sans = fonts.sansSerif.name; - }; - }; - utilities = { - enabled = true; - maxToasts = 4; - toasts = { - audioInputChanged = false; - audioOutputChanged = false; - capsLockChanged = false; - chargingChanged = true; - configLoaded = false; - dndChanged = true; - gameModeChanged = true; - numLockChanged = false; - nowPlaying = false; - kbLayoutChanged = false; - }; - }; - dashboard.showOnHover = false; - border = { - rounding = bar-rounding; - thickness = bar-thickness; - }; - }; -} diff --git a/home/system/caelestia-shell/bar.nix b/home/system/caelestia-shell/bar.nix deleted file mode 100644 index 532c4f4..0000000 --- a/home/system/caelestia-shell/bar.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ - programs.caelestia.settings.bar = { - clock.showIcon = false; - popouts.activeWindow = false; - persistent = true; - status = { - showBattery = true; - showMicrophone = false; - showLockStatus = false; - showBluetooth = true; - showAudio = true; - showKbLayout = false; - showNetwork = true; - }; - workspaces = { - activeIndicator = true; - activeLabel = "󰪥 "; - activeTrail = false; - label = " "; - occupiedBg = true; - occupiedLabel = "󰪥 "; - showWindows = false; - shown = 5; - }; - entries = [ - { - id = "logo"; - enabled = true; - } - { - id = "workspaces"; - enabled = true; - } - { - id = "spacer"; - enabled = true; - } - { - id = "activeWindow"; - enabled = true; - } - { - id = "spacer"; - enabled = true; - } - { - id = "tray"; - enabled = true; - } - { - id = "clock"; - enabled = true; - } - { - id = "statusIcons"; - enabled = true; - } - { - id = "power"; - enabled = true; - } - ]; - tray = { - background = false; - recolour = false; - }; - }; -} diff --git a/home/system/caelestia-shell/default.nix b/home/system/caelestia-shell/default.nix deleted file mode 100644 index b7c4e94..0000000 --- a/home/system/caelestia-shell/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -# Caelestia Shell Home Manager Configuration -# See https://github.com/caelestia-dots/shell -{ - pkgs, - inputs, - lib, - ... -}: { - imports = [ - inputs.caelestia-shell.homeManagerModules.default - ./bar.nix - ./launcher.nix - ./appearance.nix - ./scheme.nix - ./swappy.nix - ]; - - programs.caelestia = { - enable = true; - systemd.enable = false; - settings = { - services.weatherLocation = "Paris"; - general = { - apps = { - terminal = ["ghostty"]; - audio = ["pavucontrol"]; - explorer = ["thunar"]; - }; - idle = { - timeouts = []; - }; - }; - }; - cli = { - enable = true; - settings.theme = { - enableTerm = false; - enableDiscord = false; - enableSpicetify = false; - enableBtop = false; - enableCava = false; - enableHypr = false; - enableGtk = false; - enableQt = false; - }; - }; - }; - - home.packages = with pkgs; [ - gpu-screen-recorder - ]; - - wayland.windowManager.hyprland.settings.exec-once = [ - "uwsm app -- caelestia resizer -d" - "uwsm app -- caelestia shell -d" - "caelestia scheme set -n onedark" - "caelestia scheme set -n custom" - ]; - - # shell.json is managed by home-manager (read-only symlink) but caelestia - # needs to write to it at runtime: replace the symlink with a mutable copy. - # The stale .hm-backup must be removed before linkGeneration so HM can - # back up the runtime-modified shell.json without hitting a conflict. - home.activation.caelestiaCleanBackup = lib.hm.dag.entryBefore ["linkGeneration"] '' - $DRY_RUN_CMD rm -f "$HOME/.config/caelestia/shell.json.hm-backup" - ''; - - home.activation.caelestiaWritableShellConfig = lib.hm.dag.entryAfter ["linkGeneration"] '' - if [ -L "$HOME/.config/caelestia/shell.json" ]; then - $DRY_RUN_CMD cp --remove-destination \ - "$(readlink -f "$HOME/.config/caelestia/shell.json")" \ - "$HOME/.config/caelestia/shell.json" - fi - ''; - - services.cliphist = { - enable = true; - allowImages = true; - }; -} diff --git a/home/system/caelestia-shell/launcher.nix b/home/system/caelestia-shell/launcher.nix deleted file mode 100644 index cf90a48..0000000 --- a/home/system/caelestia-shell/launcher.nix +++ /dev/null @@ -1,188 +0,0 @@ -{ - programs.caelestia.settings = { - session.commands = { - shutdown = [ - "systemctl" - "poweroff" - ]; - logout = [ - "loginctl" - "lock-session" - ]; - hibernate = [ - "systemctl" - "hibernate" - ]; - reboot = [ - "systemctl" - "reboot" - ]; - }; - launcher = { - actionPrefix = "/"; - actions = [ - { - name = "Calculator"; - icon = "calculate"; - description = "Do simple math equations (powered by Qalc)"; - command = [ - "autocomplete" - "calc" - ]; - enabled = true; - dangerous = false; - } - { - name = "Shutdown"; - icon = "power_settings_new"; - description = "Shutdown the system"; - command = [ - "systemctl" - "poweroff" - ]; - enabled = true; - dangerous = true; - } - { - name = "Reboot"; - icon = "cached"; - description = "Reboot the system"; - command = [ - "systemctl" - "reboot" - ]; - enabled = true; - dangerous = true; - } - { - name = "Logout"; - icon = "exit_to_app"; - description = "Log out of the current session"; - command = [ - "loginctl" - "terminate-user" - "" - ]; - enabled = true; - dangerous = true; - } - { - name = "Lock"; - icon = "lock"; - description = "Lock the current session"; - command = [ - "loginctl" - "lock-session" - ]; - enabled = true; - dangerous = false; - } - { - name = "Sleep"; - icon = "bedtime"; - description = "Suspend then hibernate"; - command = [ - "systemctl" - "suspend-then-hibernate" - ]; - enabled = true; - dangerous = false; - } - { - name = "Restart caelestia"; - icon = "cached"; - description = "Restart caelestia"; - command = [ - "hyprctl" - "dispatch" - "exec" - "caelestia-shell kill | sleep 1 | caelestia-shell" - ]; - enabled = true; - dangerous = false; - } - { - name = "Emoji Picker"; - icon = "mood"; - description = "Toggle the emoji picker"; - command = [ - "caelestia" - "emoji" - "-p" - ]; - enabled = true; - dangerous = false; - } - { - name = "Clipboard History"; - icon = "content_paste"; - description = "Toggle the clipboard history"; - command = [ - "caelestia" - "clipboard" - ]; - enabled = true; - dangerous = false; - } - { - name = "Delete from Clipboard History"; - icon = "content_paste_off"; - description = "Delete a line from the clipboard history"; - command = [ - "caelestia" - "clipboard" - ]; - enabled = true; - dangerous = false; - } - { - name = "Night Shift"; - icon = "moon_stars"; - description = "Toggle Night Shift, the blue light filter"; - command = ["nightshift-toggle"]; - enabled = true; - dangerous = false; - } - { - name = "Hyprpicker"; - icon = "colorize"; - description = "Pick an hex color"; - command = [ - "hyprpicker" - "-a" - ]; - enabled = true; - dangerous = false; - } - { - name = "Run in background"; - icon = "play_circle"; - description = "Type and run any shell command in the background"; - command = [ - "ghostty" - "--title=run-bg" - "-e" - "bash" - "-c" - "printf 'Run: '; read -r cmd; [ -n \"$cmd\" ] && hyprctl dispatch exec \"$cmd\"" - ]; - enabled = true; - dangerous = false; - } - ]; - dragThreshold = 50; - enableDangerousActions = false; - maxShown = 7; - specialPrefix = "@"; - useFuzzy = { - apps = false; - actions = false; - schemes = false; - variants = false; - wallpapers = false; - }; - showOnHover = false; - hiddenApps = []; - }; - }; -} diff --git a/home/system/caelestia-shell/scheme.nix b/home/system/caelestia-shell/scheme.nix deleted file mode 100644 index e8c6e5b..0000000 --- a/home/system/caelestia-shell/scheme.nix +++ /dev/null @@ -1,137 +0,0 @@ -# This Nix module customizes the color scheme of the Caelestia CLI application using the Stylix base16 color palette. -{ - pkgs, - inputs, - config, - ... -}: let - colors = config.lib.stylix.colors; - - customSchemeFile = pkgs.writeText "custom-dark.txt" '' - primary_paletteKeyColor ${colors.base0D} - secondary_paletteKeyColor ${colors.base04} - tertiary_paletteKeyColor ${colors.base08} - neutral_paletteKeyColor ${colors.base03} - neutral_variant_paletteKeyColor ${colors.base03} - background ${colors.base00} - onBackground ${colors.base05} - surface ${colors.base00} - surfaceDim ${colors.base00} - surfaceBright ${colors.base02} - surfaceContainerLowest ${colors.base01} - surfaceContainerLow ${colors.base01} - surfaceContainer ${colors.base01} - surfaceContainerHigh ${colors.base02} - surfaceContainerHighest ${colors.base02} - onSurface ${colors.base05} - surfaceVariant ${colors.base02} - onSurfaceVariant ${colors.base04} - inverseSurface ${colors.base05} - inverseOnSurface ${colors.base00} - outline ${colors.base03} - outlineVariant ${colors.base02} - shadow ${colors.base00} - scrim ${colors.base00} - surfaceTint ${colors.base0D} - primary ${colors.base0D} - onPrimary ${colors.base00} - primaryContainer ${colors.base0D} - onPrimaryContainer ${colors.base05} - inversePrimary ${colors.base0D} - secondary ${colors.base0C} - onSecondary ${colors.base00} - secondaryContainer ${colors.base02} - onSecondaryContainer ${colors.base0C} - tertiary ${colors.base08} - onTertiary ${colors.base00} - tertiaryContainer ${colors.base08} - onTertiaryContainer ${colors.base00} - error ${colors.base08} - onError ${colors.base00} - errorContainer ${colors.base08} - onErrorContainer ${colors.base05} - primaryFixed ${colors.base0D} - primaryFixedDim ${colors.base0D} - onPrimaryFixed ${colors.base00} - onPrimaryFixedVariant ${colors.base00} - secondaryFixed ${colors.base0C} - secondaryFixedDim ${colors.base0C} - onSecondaryFixed ${colors.base00} - onSecondaryFixedVariant ${colors.base02} - tertiaryFixed ${colors.base08} - tertiaryFixedDim ${colors.base08} - onTertiaryFixed ${colors.base00} - onTertiaryFixedVariant ${colors.base00} - term0 ${colors.base00} - term1 ${colors.base08} - term2 ${colors.base0B} - term3 ${colors.base0A} - term4 ${colors.base0D} - term5 ${colors.base0E} - term6 ${colors.base0C} - term7 ${colors.base05} - term8 ${colors.base03} - term9 ${colors.base08} - term10 ${colors.base0B} - term11 ${colors.base0A} - term12 ${colors.base0D} - term13 ${colors.base0E} - term14 ${colors.base0C} - term15 ${colors.base07} - rosewater ${colors.base06} - flamingo ${colors.base0F} - pink ${colors.base0E} - mauve ${colors.base0D} - red ${colors.base08} - maroon ${colors.base08} - peach ${colors.base09} - yellow ${colors.base0A} - green ${colors.base0B} - teal ${colors.base0C} - sky ${colors.base0C} - sapphire ${colors.base0C} - blue ${colors.base0D} - lavender ${colors.base0D} - klink ${colors.base0D} - klinkSelection ${colors.base0D} - kvisited ${colors.base0E} - kvisitedSelection ${colors.base0E} - knegative ${colors.base08} - knegativeSelection ${colors.base08} - kneutral ${colors.base0A} - kneutralSelection ${colors.base0A} - kpositive ${colors.base0B} - kpositiveSelection ${colors.base0B} - text ${colors.base05} - subtext1 ${colors.base04} - subtext0 ${colors.base03} - overlay2 ${colors.base03} - overlay1 ${colors.base03} - overlay0 ${colors.base02} - surface2 ${colors.base02} - surface1 ${colors.base01} - surface0 ${colors.base01} - base ${colors.base00} - mantle ${colors.base00} - crust ${colors.base00} - success ${colors.base0B} - onSuccess ${colors.base00} - successContainer ${colors.base0B} - onSuccessContainer ${colors.base05} - ''; - - colorsHash = builtins.hashString "sha256" (builtins.toJSON colors); - - customCli = - inputs.caelestia-cli.packages.${pkgs.stdenv.hostPlatform.system}.default.overrideAttrs - (oldAttrs: { - name = "${oldAttrs.name or "caelestia-cli"}-themed-${colorsHash}"; - postUnpack = '' - mkdir -p $sourceRoot/src/caelestia/data/schemes/custom/main - cp ${customSchemeFile} $sourceRoot/src/caelestia/data/schemes/custom/main/dark.txt - echo "Custom scheme added to source" - ''; - }); -in { - programs.caelestia.cli.package = customCli; -} diff --git a/home/system/caelestia-shell/session-gif-hacker-cat.gif b/home/system/caelestia-shell/session-gif-hacker-cat.gif deleted file mode 100644 index 4cc58d5..0000000 Binary files a/home/system/caelestia-shell/session-gif-hacker-cat.gif and /dev/null differ diff --git a/home/system/caelestia-shell/swappy.nix b/home/system/caelestia-shell/swappy.nix deleted file mode 100644 index 8a25049..0000000 --- a/home/system/caelestia-shell/swappy.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - xdg.configFile."swappy/config".text = '' - [Default] - save_dir=~/Pictures/Screenshots - save_filename_format=screenshot-%Y%m%d-%H%M%S.png - show_panel=false - line_size=5 - text_size=20 - text_font=sans-serif - ''; -} diff --git a/home/system/hyprland/bindings.nix b/home/system/hyprland/bindings.nix index 9a88359..5c26b26 100644 --- a/home/system/hyprland/bindings.nix +++ b/home/system/hyprland/bindings.nix @@ -1,5 +1,6 @@ { pkgs, + pkgs-stable, lib, config, ... @@ -63,17 +64,17 @@ in { { key = "o"; desc = "Obsidian"; - cmd = "${pkgs.obsidian}/bin/obsidian"; + cmd = "${pkgs-stable.obsidian}/bin/obsidian"; } { key = "s"; desc = "Signal"; - cmd = "${pkgs.signal-desktop}/bin/signal-desktop"; + cmd = "${pkgs-stable.signal-desktop}/bin/signal-desktop"; } { key = "t"; desc = "TickTick"; - cmd = "${pkgs.ticktick}/bin/ticktick"; + cmd = "${pkgs-stable.ticktick}/bin/ticktick"; } { key = "b"; @@ -124,7 +125,7 @@ in { # Quick launch "$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal) - "$mod,E, exec, uwsm app -- ${pkgs.thunar}/bin/thunar" # Thunar + "$mod,E, exec, uwsm app -- ${pkgs-stable.thunar}/bin/thunar" # Thunar "$mod, SPACE, exec, rofi -show drun" # Launcher "$mod, N, exec, swaync-client -t" # Notification center diff --git a/home/system/hyprland/default.nix b/home/system/hyprland/default.nix index aa158bb..4096667 100644 --- a/home/system/hyprland/default.nix +++ b/home/system/hyprland/default.nix @@ -1,6 +1,7 @@ # Hyprland is a dynamic tiling Wayland compositor that is highly customizable and performant. { pkgs, + pkgs-stable, config, lib, ... @@ -19,49 +20,43 @@ in { ./animations.nix ./bindings.nix ./polkitagent.nix - ./keyboard-backlight.nix # CHANGEME: This is for omen laptop only + ./hyprpaper.nix ]; - home.packages = with pkgs; [ - qt5.qtwayland - qt6.qtwayland - libsForQt5.qt5ct - qt6Packages.qt6ct - xcb-util-cursor - libxcb - hyprland-qtutils - adw-gtk3 - hyprshot - hyprpicker - swappy - imv - wf-recorder - wlr-randr - brightnessctl - gnome-themes-extra - dconf - wayland-utils - wayland-protocols - ]; + home.packages = + (with pkgs; [ + qt5.qtwayland + qt6.qtwayland + libsForQt5.qt5ct + qt6Packages.qt6ct + hyprland-qtutils + ]) + ++ (with pkgs-stable; [ + xcb-util-cursor + libxcb + adw-gtk3 + hyprshot + hyprpicker + swappy + imv + wf-recorder + wlr-randr + brightnessctl + gnome-themes-extra + dconf + wayland-utils + wayland-protocols + ]); wayland.windowManager.hyprland = { enable = true; configType = "hyprlang"; xwayland.enable = true; - systemd = { - enable = false; - variables = [ - "--all" - ]; # https://wiki.hyprland.org/Nix/Hyprland-on-Home-Manager/#programs-dont-work-in-systemd-services-but-do-on-the-terminal - }; + systemd.enable = false; package = null; portalPackage = null; settings = { - exec-once = [ - "dbus-update-activation-environment --systemd --all &" - ]; - monitor = [ ",prefered,auto,1" # default ]; diff --git a/home/system/hyprpaper/default.nix b/home/system/hyprland/hyprpaper.nix similarity index 86% rename from home/system/hyprpaper/default.nix rename to home/system/hyprland/hyprpaper.nix index be04dbd..547ec12 100644 --- a/home/system/hyprpaper/default.nix +++ b/home/system/hyprland/hyprpaper.nix @@ -1,8 +1,9 @@ # Hyprpaper is used to set the wallpaper on the system -{lib, ...}: { +{pkgs-stable, lib, ...}: { # The wallpaper is set by stylix services.hyprpaper = { enable = true; + package = pkgs-stable.hyprpaper; settings = { ipc = "on"; splash = false; diff --git a/home/system/hyprland/keyboard-backlight.nix b/home/system/hyprland/keyboard-backlight.nix deleted file mode 100644 index 53b72ca..0000000 --- a/home/system/hyprland/keyboard-backlight.nix +++ /dev/null @@ -1,44 +0,0 @@ -# Turn the keyboard red/off when the battery is low -# Include this one only if you have a omen laptop with RGB keyboard -{ - pkgs, - config, - ... -}: let - alert-when-low-battery = false; - keyboard-backlight = pkgs.writeShellScriptBin "keyboard-backlight" '' - function set_keyboard_backlight { - local color=$1 - echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone00 - echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone01 - echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone02 - echo $color > /sys/devices/platform/hp-wmi/rgb_zones/zone03 - } - state="white" - set_keyboard_backlight ${config.lib.stylix.colors.base0D} - if [ "${toString alert-when-low-battery}" = "false" ]; then - exit 0 - fi - while true; do - BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity) - IS_CHARGING=$(cat /sys/class/power_supply/BAT*/status) - if [[ $BATTERY_LEVEL -le 10 && $IS_CHARGING != "Charging" ]]; then - if [[ $state == "red" ]];then - state="white" - set_keyboard_backlight "000000" - else - state="red" - set_keyboard_backlight "FF0000" - fi - else - state="white" - set_keyboard_backlight ${config.lib.stylix.colors.base0D} - fi - sleep 2 - done - ''; - - command = "bash ${keyboard-backlight}/bin/keyboard-backlight &"; -in { - wayland.windowManager.hyprland.settings.exec-once = [command]; -} diff --git a/home/system/hyprland/polkitagent.nix b/home/system/hyprland/polkitagent.nix index 221d359..b4f7a39 100644 --- a/home/system/hyprland/polkitagent.nix +++ b/home/system/hyprland/polkitagent.nix @@ -1,6 +1,6 @@ # HyprPolkitAgent is a simple polkit agent for wayland compositors -{pkgs, ...}: { - home.packages = with pkgs; [hyprpolkitagent]; +{pkgs-stable, ...}: { + home.packages = with pkgs-stable; [hyprpolkitagent]; wayland.windowManager.hyprland.settings.exec-once = ["systemctl --user start hyprpolkitagent"]; } diff --git a/home/system/hyprlock/default.nix b/home/system/hyprlock/default.nix new file mode 100644 index 0000000..5a8503a --- /dev/null +++ b/home/system/hyprlock/default.nix @@ -0,0 +1,85 @@ +{config, ...}: let + c = config.lib.stylix.colors; +in { + stylix.targets.hyprlock.enable = false; + + programs.hyprlock = { + enable = true; + settings = { + background = [ + { + monitor = ""; + color = "rgba(${c.base00}FF)"; + } + ]; + + label = [ + { + monitor = ""; + text = ''cmd[update:0] echo "[$USER@$(hostname) ~]"''; + color = "rgb(${c.base0D})"; + font_size = 13; + font_family = "Maple Mono NF"; + position = "48, -48"; + halign = "left"; + valign = "top"; + } + { + monitor = ""; + text = ''cmd[update:1000] echo "$(date +'%H:%M:%S')"''; + color = "rgb(${c.base05})"; + font_size = 13; + font_family = "Maple Mono NF"; + position = "48, -70"; + halign = "left"; + valign = "top"; + } + { + monitor = ""; + text = ''cmd[update:60000] echo "$(date +'%A %d %B %Y')"''; + color = "rgb(${c.base04})"; + font_size = 13; + font_family = "Maple Mono NF"; + position = "48, -92"; + halign = "left"; + valign = "top"; + } + { + monitor = ""; + text = "passwd:"; + color = "rgb(${c.base0D})"; + font_size = 13; + font_family = "Maple Mono NF"; + position = "48, -141"; + halign = "left"; + valign = "top"; + } + ]; + + "input-field" = [ + { + monitor = ""; + size = "200, 20"; + outline_thickness = 0; + dots_size = 0.3; + dots_spacing = 0.2; + dots_center = false; + outer_color = "rgba(00000000)"; + inner_color = "rgba(00000000)"; + font_color = "rgb(${c.base05})"; + fade_on_empty = false; + placeholder_text = ""; + hide_input = true; + rounding = 0; + check_color = "rgb(${c.base0B})"; + fail_color = "rgb(${c.base08})"; + fail_text = ''auth failed''; + capslock_color = "rgb(${c.base0A})"; + position = "116, -138"; + halign = "left"; + valign = "top"; + } + ]; + }; + }; +} diff --git a/home/system/mime/default.nix b/home/system/mime/default.nix index c94805d..f8a1e6c 100644 --- a/home/system/mime/default.nix +++ b/home/system/mime/default.nix @@ -1,24 +1,17 @@ -# Mime type associations for the system. { lib, pkgs, ... -}: -with lib; let +}: let defaultApps = { - # check desktop files here: `ls $(echo $XDG_DATA_DIRS| sed "s/:/ /g")` - text = [ - # "org.gnome.TextEditor.desktop" - "nvim-ghostty.desktop" - ]; + text = ["nvim-ghostty.desktop"]; code = ["nvim-ghostty.desktop"]; image = ["imv-dir.desktop"]; - audio = ["mpv.desktop"]; - video = ["mpv.desktop"]; + audio = ["vlc.desktop"]; + video = ["vlc.desktop"]; directory = ["thunar.desktop"]; - office = ["libreoffice.desktop"]; - pdf = ["zathura.desktop"]; - terminal = ["ghostty.desktop"]; + office = ["onlyoffice-desktopeditors.desktop"]; + pdf = ["onlyoffice-desktopeditors.desktop"]; archive = ["xarchiver.desktop"]; browser = ["helium.desktop"]; }; @@ -34,7 +27,6 @@ with lib; let "text/x-go" "text/x-java" "text/x-csharp" - "text/x-python" "application/x-shellscript" "text/javascript" @@ -42,7 +34,6 @@ with lib; let "text/css" "text/x-php" "text/x-ruby" - "application/json" "application/xml" "text/xml" @@ -51,11 +42,8 @@ with lib; let "application/toml" "text/x-nix" "text/markdown" - "text/x-dockerfile" - "application/x-yaml" "text/x-terraform" - "application/x-perl" "text/x-lua" "text/x-haskell" @@ -104,12 +92,17 @@ with lib; let "application/rtf" ]; pdf = ["application/pdf"]; - terminal = ["terminal"]; archive = [ "application/zip" - "application/rar" - "application/7z" - "application/*tar" + "application/x-rar-compressed" + "application/vnd.rar" + "application/x-7z-compressed" + "application/x-tar" + "application/gzip" + "application/x-bzip2" + "application/x-xz" + "application/x-zstd" + "application/x-compressed-tar" ]; browser = [ "text/html" @@ -125,17 +118,17 @@ with lib; let desktopName = "Neovim (Ghostty)"; exec = ''ghostty --title="Neovim Editor" -e nvim %F''; terminal = false; - categories = [ - "Development" - "TextEditor" - ]; + categories = ["Development" "TextEditor"]; mimeTypes = mimeMap.code ++ mimeMap.text; }; - associations = with lists; - listToAttrs ( - flatten (mapAttrsToList (key: map (type: attrsets.nameValuePair type defaultApps."${key}")) mimeMap) - ); + associations = lib.listToAttrs ( + lib.flatten ( + lib.mapAttrsToList + (key: map (type: lib.nameValuePair type defaultApps.${key})) + mimeMap + ) + ); in { home.packages = [nvim-ghostty]; @@ -144,7 +137,7 @@ in { mimeApps = { enable = true; associations.added = associations; - defaultApplications = associations; + defaultApplications = lib.mapAttrs (_: lib.mkForce) associations; }; }; } diff --git a/home/system/rofi/default.nix b/home/system/rofi/default.nix new file mode 100644 index 0000000..6b27a46 --- /dev/null +++ b/home/system/rofi/default.nix @@ -0,0 +1,136 @@ +{ config, pkgs, ... }: let + c = config.lib.stylix.colors; + font = config.stylix.fonts.sansSerif.name; + fontSize = toString config.stylix.fonts.sizes.applications; + gaps = toString config.theme.gaps-out; + theme = pkgs.writeText "launcher.rasi" '' + configuration { + modi: "drun,run"; + case-sensitive: false; + cycle: true; + normalize-match: true; + show-icons: false; + matching: "normal"; + tokenize: true; + kb-cancel: "Escape,MousePrimary"; + drun-match-fields: "name,exec,generic,comment"; + drun-display-format: "{name}"; + drun-url-launcher: "xdg-open"; + drun-show-actions: false; + disable-history: false; + sorting-method: "normal"; + terminal: "ghostty"; + hover-select: true; + me-select-entry: ""; + me-accept-entry: [ "MousePrimary" ]; + } + + * { + background: transparent; + background-alt: #${c.base01}ff; + foreground: #${c.base05}ff; + active: #${c.base0D}ff; + inactive: #${c.base03}ff; + selected-fg: #${c.base00}ff; + font: "${font}, Bold ${fontSize}"; + } + + window { + transparency: "real"; + location: north; + anchor: north; + padding: ${gaps}px ${gaps}px 0; + margin: 0; + width: 100%; + background-color: transparent; + border: 0px; + } + + mainbox { + orientation: horizontal; + spacing: 0; + padding: 6px 14px; + border-radius: 100px; + background-color: @background-alt; + children: [ "inputbar", "listview" ]; + } + + inputbar { + expand: false; + spacing: 8px; + padding: 0; + background-color: transparent; + color: @foreground; + children: [ "prompt", "entry" ]; + } + + prompt { + background-color: transparent; + color: @active; + padding: 0 2px 0 0; + vertical-align: 0.5; + } + + entry { + background-color: transparent; + color: inherit; + placeholder-color: @inactive; + placeholder: "Search..."; + vertical-align: 0.5; + width: 180px; + } + + listview { + layout: horizontal; + lines: 1; + dynamic: true; + scrollbar: false; + spacing: 0; + padding: 0 0 0 14px; + background-color: transparent; + color: @foreground; + } + + element { + enabled: true; + spacing: 0; + padding: 2px 10px; + border-radius: 100px; + background-color: transparent; + color: @foreground; + cursor: pointer; + children: [ "element-text" ]; + } + + element selected.normal { + background-color: @active; + color: @selected-fg; + } + + element-text { + background-color: transparent; + color: inherit; + vertical-align: 0.5; + } + + message { + padding: 0; + background-color: transparent; + color: @foreground; + } + + error-message { + padding: 10px; + border-radius: 100px; + background-color: @background-alt; + color: @foreground; + } + ''; +in { + stylix.targets.rofi.enable = false; + + programs.rofi = { + enable = true; + theme = "${theme}"; + }; +} diff --git a/home/swaync/default.nix b/home/system/swaync/default.nix similarity index 77% rename from home/swaync/default.nix rename to home/system/swaync/default.nix index 883100c..ef441c2 100644 --- a/home/swaync/default.nix +++ b/home/system/swaync/default.nix @@ -1,6 +1,17 @@ -{ config, ... }: let +{config, ...}: let c = config.lib.stylix.colors; font = config.stylix.fonts.sansSerif.name; + monofont = config.stylix.fonts.monospace.name; + rounding = config.theme.rounding; + border-size = config.theme.border-size; + gaps-in = config.theme.gaps-in; + opacityToHex = opacity: let + val = builtins.floor (opacity * 255); + high = val / 16; + low = val - high * 16; + digits = "0123456789abcdef"; + in "${builtins.substring high 1 digits}${builtins.substring low 1 digits}"; + alphaHex = opacityToHex config.theme.inactive-opacity; in { services.swaync = { enable = true; @@ -26,43 +37,41 @@ in { "hide-on-clear" = false; "hide-on-action" = false; "script-fail-notify" = true; - widgets = [ "mpris" "dnd" "buttons-grid" "notifications" ]; + widgets = ["mpris" "dnd" "buttons-grid" "notifications"]; "widget-config" = { dnd.text = "Do not disturb"; mpris = { "image-size" = 100; "image-radius" = 10; autohide = false; - blacklist = [ "org.mpris.MediaPlayer2.playerctld" ]; + blacklist = ["org.mpris.MediaPlayer2.playerctld"]; }; "buttons-grid" = { actions = [ { - label = "󰌪"; + label = "󰖔"; type = "toggle"; - command = "powerprofilesctl set power-saver"; - "update-command" = "powerprofilesctl get | grep -q power-saver && echo true || echo false"; + command = "nightshift-toggle"; + "update-command" = "pidof hyprsunset > /dev/null && echo true || echo false"; } { - label = ""; + label = "󰈈"; type = "toggle"; - command = "wpctl set-mute @DEFAULT_SOURCE@ toggle"; + command = "focus-toggle"; + "update-command" = "test -f /tmp/hypr-focus-mode && echo true || echo false"; + } + { + label = "󰍭"; + type = "toggle"; + command = "swayosd-client --input-volume mute-toggle"; "update-command" = "wpctl get-volume @DEFAULT_SOURCE@ | grep -q MUTED && echo true || echo false"; } { - label = ""; - command = "ghostty -- htop ; swaync-client -cp"; - } - { - label = ""; - command = "nwg-look ; swaync-client -cp"; - } - { - label = ""; + label = "󰌾"; command = "swaync-client -cp ; hyprlock"; } { - label = ""; + label = "󰐥"; command = "swaync-client -cp ; systemctl poweroff"; } ]; @@ -71,10 +80,10 @@ in { }; style = '' - @define-color center-bg #${c.base00}cc; - @define-color notification-bg #${c.base00}e5; + @define-color center-bg #${c.base00}${alphaHex}; + @define-color notification-bg #${c.base00}${alphaHex}; @define-color center-notification-bg #${c.base01}; - @define-color background #${c.base00}e5; + @define-color background #${c.base00}${alphaHex}; @define-color background-alt #${c.base01}; @define-color text #${c.base05}; @define-color text-alt #${c.base03}; @@ -83,36 +92,46 @@ in { @define-color urgent #${c.base08}; * { + all: unset; font-family: "${font}"; font-weight: 700; - all: unset; - --border-radius: 16px; - --border-radius-s: 8px; - --border-radius-xl: 18px; + --border-radius: ${toString rounding}px; + --border-radius-s: ${toString gaps-in}px; + --border-radius-xl: ${toString (rounding - 2)}px; --shadow: 2px 4px 10px rgba(0,0,0,0.15); } .notification { padding: 5px; } + .notification-row { background: transparent; border: none; box-shadow: none; } + + .control-center .notification { padding: 0; } + .notification-background { background: @notification-bg; border-radius: var(--border-radius); - margin: 8px; + border: ${toString border-size}px solid @selected; + box-shadow: none; + outline: none; + margin: ${toString gaps-in}px; padding: 0; } .notification-background .close-button { margin: 6px; padding: 2px; - border-radius: 6px; + border-radius: ${toString (gaps-in - 2)}px; background: transparent; color: @text; } .notification-background .close-button:hover { background: @hover; } + .notification.low, + .notification.normal { border: none; } + .notification.critical { - border: 2px solid @urgent; + border: ${toString border-size}px solid @urgent; border-radius: var(--border-radius); } @@ -120,6 +139,7 @@ in { color: @text; margin: 10px; font-weight: 700; + border: none; } .notification-content .text-box { margin: 0 0 0 15px; } @@ -170,6 +190,7 @@ in { .control-center { background: @center-bg; border-radius: var(--border-radius); + border: ${toString border-size}px solid @selected; margin: 5px; padding: 5px 5px 0 5px; } @@ -184,7 +205,7 @@ in { .notification-group { transition: 200ms; } - .notification-group:not(.collapsed) { margin: 8px; } + .notification-group:not(.collapsed) { margin: ${toString gaps-in}px; } .notification-group-headers, .notification-group-buttons { @@ -306,14 +327,17 @@ in { padding: 10px; margin: 3px; min-width: 2rem; + font-family: "${monofont}"; background: @hover; border-radius: var(--border-radius); transition: 200ms; } .widget-buttons-grid button > label { - font-family: "Maple Mono NF"; - font-size: 16px; + font-family: "${monofont}"; + font-size: 18px; + font-weight: normal; + font-style: normal; color: @text; } @@ -328,4 +352,6 @@ in { .blank-window { background: transparent; } ''; }; + + stylix.targets.swaync.enable = false; } diff --git a/home/system/swayosd/default.nix b/home/system/swayosd/default.nix new file mode 100644 index 0000000..7285498 --- /dev/null +++ b/home/system/swayosd/default.nix @@ -0,0 +1,68 @@ +{ + config, + pkgs, + ... +}: let + c = config.lib.stylix.colors; + rounding = config.theme.rounding; + border-size = config.theme.border-size; + gaps-in = config.theme.gaps-in; + opacityToHex = opacity: let + val = builtins.floor (opacity * 255); + high = val / 16; + low = val - high * 16; + digits = "0123456789abcdef"; + in "${builtins.substring high 1 digits}${builtins.substring low 1 digits}"; + alphaHex = opacityToHex config.theme.inactive-opacity; + + style = pkgs.writeText "swayosd-style.css" '' + window#osd { + background: #${c.base00}${alphaHex}; + border-radius: ${toString rounding}px; + border: ${toString border-size}px solid #${c.base03}66; + } + + window#osd #container { + margin: ${toString gaps-in}px; + padding: 4px; + } + + window#osd image, + window#osd label { + color: #${c.base05}; + } + + window#osd progressbar, + window#osd segmentedprogress { + min-height: 6px; + border-radius: 999px; + background: transparent; + border: none; + } + + window#osd trough, + window#osd segment { + min-height: inherit; + border-radius: inherit; + border: none; + background: #${c.base03}66; + } + + window#osd progress, + window#osd segment.active { + min-height: inherit; + border-radius: inherit; + border: none; + background: #${c.base0D}; + } + + window#osd segment { margin-left: 4px; } + window#osd segment:first-child { margin-left: 0; } + ''; +in { + services.swayosd = { + enable = true; + stylePath = style; + topMargin = 0.5; + }; +} diff --git a/home/system/waybar/default.nix b/home/system/waybar/default.nix index 7b07323..73eeab5 100644 --- a/home/system/waybar/default.nix +++ b/home/system/waybar/default.nix @@ -1,9 +1,28 @@ -{ pkgs, ... }: { +{pkgs, ...}: let + networkScript = pkgs.writeShellScript "waybar-network" '' + for iface in $(${pkgs.iproute2}/bin/ip -br link show | awk '$2 == "UP" {print $1}' | grep -vE '^(lo|tun|proton|wg[0-9]|ppp|vpn|docker|br-|veth|virbr)'); do + ip=$(${pkgs.iproute2}/bin/ip addr show "$iface" 2>/dev/null | grep 'inet ' | awk '{print $2}' | cut -d/ -f1 | head -1) + if [ -n "$ip" ]; then + if [[ "$iface" == wl* ]]; then + ssid=$(${pkgs.iw}/bin/iw dev "$iface" link 2>/dev/null | grep SSID | sed 's/.*SSID: //') + signal=$(${pkgs.iw}/bin/iw dev "$iface" link 2>/dev/null | grep signal | awk '{print $2}') + printf '{"text": "󰤨", "class": "wifi", "tooltip": " %s\\n %s dBm"}\n' "$ssid" "$signal" + else + printf '{"text": "󰛳", "class": "ethernet", "tooltip": " %s\\n %s"}\n' "$iface" "$ip" + fi + exit 0 + fi + done + printf '{"text": "󰤭", "class": "disconnected", "tooltip": "Disconnected"}\n' + ''; +in { imports = [ ./settings.nix ./style.nix ]; + _module.args.networkScript = networkScript; + programs.waybar.enable = true; stylix.targets.waybar.enable = false; @@ -11,11 +30,10 @@ playerctl pavucontrol blueman - swayosd + iw ]; wayland.windowManager.hyprland.settings.exec-once = [ "waybar" - "swayosd-server" ]; } diff --git a/home/system/waybar/settings.nix b/home/system/waybar/settings.nix index 2e6a9cb..318f743 100644 --- a/home/system/waybar/settings.nix +++ b/home/system/waybar/settings.nix @@ -1,60 +1,23 @@ -{ osConfig ? {}, lib, ... }: let - hasBluetooth = osConfig.hardware.bluetooth.enable or false; +{config, networkScript, ...}: let + gaps-out = config.theme.gaps-out; + c = config.lib.stylix.colors; in { programs.waybar.settings = [ { layer = "top"; position = "top"; height = 25; - margin = "5 0"; + margin = "${toString gaps-out} ${toString gaps-out} 0"; + modules-center = ["clock" "tray" "hyprland/workspaces" "custom/network" "bluetooth" "battery" "group/right-hidden"]; - modules-left = [ "group/left-hidden-top" "group/left" ]; - modules-center = [ "clock" ]; - modules-right = [ "group/right" "group/right-hidden-top" ]; - - # ── Groups ──────────────────────────────────────────────────────── - - "group/left" = { - orientation = "horizontal"; - modules = [ "hyprland/workspaces" "mpris" ]; - }; - - # power-profiles-daemon visible + hidden drawer (arrow → battery cpu load) - "group/left-hidden-top" = { - orientation = "horizontal"; - modules = [ "power-profiles-daemon" "group/left-hidden" ]; - }; - - "group/left-hidden" = { + "group/right-hidden" = { orientation = "horizontal"; drawer = { transition-duration = 500; transition-left-to-right = false; click-to-reveal = true; }; - modules = [ "custom/arrow-right" "battery" "cpu" "load" ]; - }; - - # bluetooth volume network tray (visible) - "group/right" = { - orientation = "horizontal"; - modules = lib.optional hasBluetooth "bluetooth" ++ [ "group/group-volume" "network" "tray" ]; - }; - - # hidden drawer (arrow ← memory temp) + ctlcenter visible - "group/right-hidden-top" = { - orientation = "horizontal"; - modules = [ "group/right-hidden" "custom/ctlcenter" ]; - }; - - "group/right-hidden" = { - orientation = "horizontal"; - drawer = { - transition-duration = 500; - transition-left-to-right = true; - click-to-reveal = true; - }; - modules = [ "custom/arrow-left" "memory" "temperature" ]; + modules = ["custom/arrow-right" "power-profiles-daemon" "mpris" "group/group-volume"]; }; "group/group-volume" = { @@ -64,65 +27,47 @@ in { transition-left-to-right = true; reveal-delay = 450; }; - modules = [ "pulseaudio" "pulseaudio/slider" ]; + modules = ["pulseaudio" "pulseaudio/slider"]; }; # ── Modules ───────────────────────────────────────────────────────── "hyprland/workspaces" = { - format = "{icon}"; + format = "{id}"; on-scroll-down = "hyprctl dispatch workspace e+1"; on-scroll-up = "hyprctl dispatch workspace e-1"; - persistent-workspaces."*" = 5; + persistent-workspaces."*" = 4; cursor = true; - format-icons = { - active = "󰮯"; - persistent = ""; - empty = ""; - }; }; mpris = { - format = "{artist} - {title}"; - tooltip-format = "{album}"; - format-paused = " {artist} - {title}"; + format = "󰐊"; + format-paused = "󰏤"; + tooltip-format = "{title}"; + tooltip-format-paused = "{title}"; on-click = "playerctl play-pause"; on-scroll-up = "playerctl previous"; on-scroll-down = "playerctl next"; - max-length = 45; }; battery = { + bat = "BAT1"; interval = 20; full-at = 100; tooltip = true; format-full = ""; - format = "{icon} {capacity}%"; - format-time = "{H}:{M:02}"; - format-charging = " {capacity}% ({time})"; - format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂂" "󰁹" ]; + format = "{icon} "; + format-charging = " {icon} "; + format-icons = ["" "" "" "" ""]; + tooltip-format = "{capacity}% · {time}"; + tooltip-format-full = "Full\n{capacity}%"; + tooltip-format-charging = "Charging\n{capacity}% · {time}"; states = { warning = 30; critical = 15; }; }; - cpu = { - interval = 30; - format = " {usage}%"; - cursor = true; - states = { - warning = 80; - critical = 90; - }; - }; - - load = { - interval = 30; - format = " {load1}%"; - cursor = true; - }; - "power-profiles-daemon" = { format = "{icon}"; tooltip-format = "Power profile: {profile}"; @@ -133,22 +78,6 @@ in { }; }; - memory = { - interval = 10; - format = " {used:0.1f}G/{total:0.1f}G"; - states = { - warning = 80; - critical = 90; - }; - }; - - temperature = { - interval = 10; - format = "{icon} {temperatureC}°"; - critical-threshold = 90; - format-icons = [ "" "" "" "" "" ]; - }; - bluetooth = { format = "{}"; format-on = "󰂰"; @@ -156,9 +85,10 @@ in { format-disabled = ""; format-connected = "{device_alias}"; format-connected-battery = "{device_alias}"; - tooltip-format = "{device_enumerate}"; - tooltip-format-enumerate-connected = "{device_alias}"; - tooltip-format-enumerate-connected-battery = "{device_alias} {device_battery_percentage}%"; + tooltip-format = "Bluetooth {status}"; + tooltip-format-connected = "Bluetooth {status}\n{device_enumerate}"; + tooltip-format-enumerate-connected = " {device_alias}"; + tooltip-format-enumerate-connected-battery = " {device_alias} {device_battery_percentage}%"; on-click-right = "blueman-manager &"; }; @@ -178,9 +108,9 @@ in { portable = ""; car = ""; default = [ - "󰕿" - "󰖀" - "󰕾" + "󰕿" + "󰖀" + "󰕾" ]; }; }; @@ -191,19 +121,11 @@ in { cursor = true; }; - network = { + "custom/network" = { + exec = "${networkScript}"; + return-type = "json"; interval = 10; - format-disabled = ""; - format-disconnected = ""; - format-wifi = ""; - format-ethernet = ""; - tooltip-format = "{essid} - -Frequency: {frequency}GHz -Strength: {signalStrength}% - -{bandwidthUpBytes} {bandwidthDownBytes}"; - on-click-right = "ghostty -e nmtui &"; + on-click-right = "ghostty -e wifitui &"; }; tray = { @@ -213,38 +135,29 @@ Strength: {signalStrength}% }; clock = { - timezone = "Europe/Paris"; + timezone = config.var.timeZone; tooltip-format = "{calendar}"; format = "{:%H:%M}"; format-alt = "{:%H:%M %d %B %Y}"; calendar = { - mode = "year"; - weeks-pos = "right"; - mode-mon-col = 3; + mode = "month"; format = { - months = "{}"; - weeks = "W{}"; - weekdays = "{}"; - days = "{}"; - today = "{}"; + months = "{}"; + weekdays = "{}"; + days = "{}"; + today = "{}"; }; }; }; - "custom/ctlcenter" = { - format = ""; - tooltip = false; - on-click = "swaync-client -t &"; - }; - "custom/arrow-left" = { - format = ""; + format = " "; tooltip = false; cursor = true; }; "custom/arrow-right" = { - format = ""; + format = " "; tooltip = false; cursor = true; }; diff --git a/home/system/waybar/style.nix b/home/system/waybar/style.nix index 4370ce9..7abf5c0 100644 --- a/home/system/waybar/style.nix +++ b/home/system/waybar/style.nix @@ -1,4 +1,4 @@ -{ config, ... }: let +{config, ...}: let c = config.lib.stylix.colors; fg = "#${c.base05}"; module-bg = "#${c.base01}"; @@ -7,12 +7,16 @@ yellow = "#${c.base0A}"; green = "#${c.base0B}"; blue = "#${c.base0D}"; + cyan = "#${c.base0C}"; + mauve = "#${c.base0E}"; inactive = "#${c.base03}"; highlight = "#${c.base02}"; + font-size = "${toString config.stylix.fonts.sizes.applications}px"; + font-size-clock = "${toString (config.stylix.fonts.sizes.applications + 2)}px"; in { programs.waybar.style = '' * { - font-family: 'CaskaydiaCove Nerd Font Propo'; + font-family: '${config.stylix.fonts.sansSerif.name}'; border: none; border-radius: 0; min-height: 0; @@ -24,81 +28,78 @@ in { #waybar { font-weight: 700; background: transparent; - font-size: 14px; + font-size: ${font-size}; color: ${fg}; } - #temperature, + .modules-center { + background: ${module-bg}; + border-radius: 100px; + padding: 6px 14px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35); + } + + #clock, + #tray, + #custom-network, #bluetooth, #battery, - #memory, - #mpris, - #cpu, - #load { - padding: 1px 7px; - min-width: 0; + #mpris { + padding: 1px 14px; } - #network, - #tray { - padding: 1px 6px; + #clock { + font-size: ${font-size-clock}; } - #backlight, - #pulseaudio { + #workspaces { padding: 1px 8px; } #pulseaudio { - padding-left: 4px; + padding: 1px 8px 1px 6px; } - #backlight-slider, #pulseaudio-slider { - padding: 0 7px 0 2px; + padding: 0 8px 0 2px; } - #workspaces, - #bluetooth, - #battery, - #memory, - #temperature, - #cpu, - #mpris, - #load { - margin: 0 3px; + #workspaces button { + color: ${fg}; + font-size: ${font-size}; + border-radius: 100px; + padding: 0 5px; + margin: 0 1px; } - #right, - #left, - #right-hidden-top, - #left-hidden-top { - padding: 2px 10px; - border-radius: 15px; - background: ${module-bg}; + #workspaces button.empty { + color: ${inactive}; } - #right-hidden-top, - #left-hidden-top { + #workspaces button:hover { + background: transparent; + color: ${fg}; + } + + #workspaces button.active { + color: ${module-bg}; + background: ${blue}; + border-radius: 60px; padding: 0 12px; + margin: 0 1px; } - #right, #left { - margin: 0 8px; + #right-hidden { + padding: 0 6px; } - #clock { - background: ${module-bg}; - padding: 1px 18px; - border-radius: 15px; - } - - #custom-ctlcenter { - margin-left: 7px; + #custom-arrow-right { + padding: 0 5px; + font-size: ${toString (config.stylix.fonts.sizes.applications + 2)}px; } #power-profiles-daemon { - margin-right: 7px; + margin-right: 4px; } #network.disabled, @@ -108,42 +109,42 @@ in { min-width: 0; } - #cpu.critical, - #memory.critical, + #battery { + color: ${green}; + } + + #battery.charging, + #battery.full { + color: ${green}; + } + + #network.ethernet, + #network.wifi { + color: ${cyan}; + } + + #bluetooth.on, + #bluetooth.connected, + #bluetooth { + color: ${blue}; + } + #battery.critical, - #temperature.critical, #network.disconnected, #power-profiles-daemon.performance { color: ${red}; } - #cpu.warning, - #memory.warning, - #battery.warning, - #temperature.warning { + #battery.warning { color: ${yellow}; - background: unset; } #power-profiles-daemon.power-saver { color: ${green}; } - #custom-start, - #custom-ctlcenter { - color: ${blue}; - } - - #workspaces button { - color: ${fg}; - font-size: 14px; - border-radius: 100%; - padding: 0 2px; - margin: 0 3px; - } - - #workspaces button:hover { - background: transparent; + #mpris { + color: ${mauve}; } #mpris.paused { diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index f333438..f372233 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -54,5 +54,5 @@ home-manager.users."${config.var.username}" = import ./home.nix; # Don't touch this - system.stateVersion = "24.05"; + system.stateVersion = "26.05"; } diff --git a/hosts/laptop/flake.nix b/hosts/laptop/flake.nix index 916c6e7..656fc2b 100644 --- a/hosts/laptop/flake.nix +++ b/hosts/laptop/flake.nix @@ -7,6 +7,7 @@ nixpkgs.lib.nixosSystem { modules = [ { nixpkgs.overlays = [ + inputs.nur.overlays.default ]; _module.args = {inherit inputs;}; } diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 4ed5f33..b0c4707 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -16,6 +16,8 @@ ../../home/programs/nix-utils ../../home/programs/spotatui ../../home/programs/yazi + ../../home/programs/desktop-actions # TODO: + ../../home/programs/focus-mode # TODO: Rename ../../home/programs/group/basic-apps.nix ../../home/programs/group/cybersecurity.nix @@ -23,9 +25,12 @@ ../../home/programs/group/misc.nix # System (Desktop environment like stuff) + ../../home/system/hyprlock ../../home/system/hyprland - ../../home/system/caelestia-shell - ../../home/system/hyprpaper + ../../home/system/waybar + ../../home/system/swaync + ../../home/system/swayosd + ../../home/system/rofi ../../home/system/mime ../../home/system/udiskie @@ -45,7 +50,7 @@ }; # Don't touch this - stateVersion = "24.05"; + stateVersion = "26.05"; }; wayland.windowManager.hyprland.settings.monitor = [ diff --git a/hosts/laptop/secrets/default.nix b/hosts/laptop/secrets/default.nix index eac568f..0b18108 100644 --- a/hosts/laptop/secrets/default.nix +++ b/hosts/laptop/secrets/default.nix @@ -3,6 +3,7 @@ { inputs, pkgs, + lib, config, ... }: let @@ -57,5 +58,7 @@ in { age ]; - wayland.windowManager.hyprland.settings.exec-once = ["systemctl --user start sops-nix"]; + wayland.windowManager.hyprland.settings.exec-once = [ + "systemctl --user start sops-nix" + ]; } diff --git a/hosts/work/home.nix b/hosts/work/home.nix index 0c2fabe..5a86498 100644 --- a/hosts/work/home.nix +++ b/hosts/work/home.nix @@ -21,8 +21,8 @@ ../../home/programs/group/misc.nix # System (Desktop environment like stuff) + ../../home/system/hyprlock ../../home/system/hyprland - # ../../home/system/caelestia-shell ../../home/system/waybar ../../home/system/hyprpaper ../../home/system/mime diff --git a/hosts/work/secrets/default.nix b/hosts/work/secrets/default.nix index 093d5f0..c2bf4cf 100644 --- a/hosts/work/secrets/default.nix +++ b/hosts/work/secrets/default.nix @@ -3,6 +3,7 @@ { inputs, pkgs, + lib, config, ... }: let @@ -54,5 +55,7 @@ in { age ]; - wayland.windowManager.hyprland.settings.exec-once = ["systemctl --user start sops-nix"]; + wayland.windowManager.hyprland.settings.exec-once = [ + "systemctl --user start sops-nix" + ]; } diff --git a/nixos/amd-graphics.nix b/nixos/amd-graphics.nix index c2886a9..1758fe3 100644 --- a/nixos/amd-graphics.nix +++ b/nixos/amd-graphics.nix @@ -3,7 +3,6 @@ enable = true; extraPackages = with pkgs; [ rocmPackages.clr.icd - # Support VA-API pour AMD libvdpau-va-gl libva-vdpau-driver ]; diff --git a/nixos/audio.nix b/nixos/audio.nix index 1fe3078..053d567 100644 --- a/nixos/audio.nix +++ b/nixos/audio.nix @@ -1,23 +1,11 @@ # Audio configuration for NixOS using PipeWire { - security.rtkit.enable = true; - services.pulseaudio.enable = false; - services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; jack.enable = true; - wireplumber = { - enable = true; - extraConfig = { - "10-disable-camera" = { - "wireplumber.profiles" = { - main."monitor.libcamera" = "disabled"; - }; - }; - }; - }; }; + security.rtkit.enable = true; } diff --git a/nixos/home-manager.nix b/nixos/home-manager.nix index 69369eb..a4fd838 100644 --- a/nixos/home-manager.nix +++ b/nixos/home-manager.nix @@ -14,7 +14,6 @@ system = pkgs.stdenv.hostPlatform.system; config.allowUnfree = true; }; - pkgs-nur-hadi = inputs.nur-anotherhadi.packages.${pkgs.stdenv.hostPlatform.system}; }; }; } diff --git a/nixos/hyprland.nix b/nixos/hyprland.nix index 0a4943b..056c8f6 100644 --- a/nixos/hyprland.nix +++ b/nixos/hyprland.nix @@ -1,14 +1,9 @@ # Hyprland is a dynamic tiling Wayland compositor. -{ - inputs, - pkgs, - ... -}: { +{...}: { programs.hyprland = { enable = true; withUWSM = true; - package = inputs.hyprland.packages."${pkgs.stdenv.hostPlatform.system}".hyprland; - portalPackage = - inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland; }; + + security.pam.services.hyprlock = {}; } diff --git a/nixos/nix.nix b/nixos/nix.nix index 5ee8294..30db75b 100644 --- a/nixos/nix.nix +++ b/nixos/nix.nix @@ -6,22 +6,6 @@ }: let autoGarbageCollector = config.var.autoGarbageCollector; in { - # Ask for password once per SSH session (tied to the tty, expires when session closes) - security.sudo.extraConfig = '' - Defaults timestamp_type=tty,timestamp_timeout=-1 - ''; - - security.sudo.extraRules = [ - { - users = [config.var.username]; - commands = [ - { - command = "/run/current-system/sw/bin/nixos-rebuild"; - options = ["NOPASSWD"]; - } - ]; - } - ]; nixpkgs.config = { allowUnfree = true; allowBroken = false; @@ -40,17 +24,10 @@ in { "flakes" ]; substituters = [ - # high priority since it's almost always used - "https://cache.nixos.org?priority=10" - - "https://hyprland.cachix.org" "https://nix-community.cachix.org" - "https://numtide.cachix.org" ]; trusted-public-keys = [ - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - "numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE=" ]; }; gc = { diff --git a/nixos/nvidia.nix b/nixos/nvidia.nix index 2c35464..919b5b7 100644 --- a/nixos/nvidia.nix +++ b/nixos/nvidia.nix @@ -5,67 +5,49 @@ config, ... }: let - # Using beta driver for recent GPUs like RTX 4070 nvidiaDriverChannel = config.boot.kernelPackages.nvidiaPackages.production; in { - # Video drivers configuration for Xorg and Wayland - services.xserver.videoDrivers = ["nvidia"]; # Simplified - other modules are loaded automatically + services.xserver.videoDrivers = ["nvidia"]; - # Kernel parameters for better Wayland and Hyprland integration boot.kernelParams = [ - "nvidia-drm.modeset=1" # Enable mode setting for Wayland "nvidia.NVreg_PreserveVideoMemoryAllocations=1" # Improves resume after sleep ]; - # Blacklist nouveau to avoid conflicts - boot.blacklistedKernelModules = ["nouveau"]; - - # Environment variables for better compatibility environment.variables = { - LIBVA_DRIVER_NAME = "nvidia"; # Hardware video acceleration - GBM_BACKEND = "nvidia-drm"; # Graphics backend for Wayland - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; # Use Nvidia driver for GLX - NIXOS_OZONE_WL = "1"; # Wayland support for Electron apps - __GL_GSYNC_ALLOWED = "1"; # Enable G-Sync if available - __GL_VRR_ALLOWED = "1"; # Enable VRR (Variable Refresh Rate) - NVD_BACKEND = "direct"; # Configuration for new driver - MOZ_ENABLE_WAYLAND = "1"; # Wayland support for Firefox + LIBVA_DRIVER_NAME = "nvidia"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + NIXOS_OZONE_WL = "1"; + __GL_GSYNC_ALLOWED = "1"; + __GL_VRR_ALLOWED = "1"; + NVD_BACKEND = "direct"; + MOZ_ENABLE_WAYLAND = "1"; }; - # Configuration for proprietary packages - nixpkgs.config = { - nvidia.acceptLicense = true; - }; + nixpkgs.config.nvidia.acceptLicense = true; - # Nvidia configuration hardware = { nvidia = { - open = false; # Proprietary driver for better performance - nvidiaSettings = true; # Nvidia settings utility + open = true; # Open kernel modules, recommended for Turing and newer (RTX 4070 = Ada Lovelace) + nvidiaSettings = true; powerManagement = { - enable = true; # Power management - finegrained = true; # More precise power consumption control + enable = true; + finegrained = true; }; - modesetting.enable = true; # Required for Wayland + modesetting.enable = true; package = nvidiaDriverChannel; - forceFullCompositionPipeline = true; # Prevents screen tearing + # forceFullCompositionPipeline = true; # Only useful when display is connected directly to Nvidia GPU, not in PRIME offload mode - # Configuration for hybrid AMD+Nvidia laptop prime = { - # Optimized configuration for switchable graphics laptops offload = { - enable = true; # Mode optimized for power saving - enableOffloadCmd = true; # Allows running applications with dedicated GPU + enable = true; + enableOffloadCmd = true; }; - # sync.enable disabled as offload is generally better for laptops - sync.enable = false; - # PCI IDs verified for your hardware - amdgpuBusId = "PCI:5:0:0"; # Integrated AMD GPU - nvidiaBusId = "PCI:1:0:0"; # Dedicated Nvidia GPU + sync.enable = false; # offload mode is better for battery life + amdgpuBusId = "PCI:5:0:0"; + nvidiaBusId = "PCI:1:0:0"; }; }; - # Enhanced graphics support graphics = { enable = true; enable32Bit = true; @@ -73,10 +55,8 @@ in { nvidia-vaapi-driver libva-vdpau-driver libvdpau-va-gl - mesa egl-wayland vulkan-loader - vulkan-validation-layers libva ]; }; @@ -90,13 +70,9 @@ in { ]; }; - # Additional useful packages environment.systemPackages = with pkgs; [ vulkan-tools mesa-demos - libva-utils # VA-API debugging tools + libva-utils ]; - - # Enable Nvidia container toolkit for GPU acceleration in containers (docker) - hardware.nvidia-container-toolkit.enable = false; } diff --git a/nixos/systemd-boot.nix b/nixos/systemd-boot.nix index bac23a6..10e708c 100644 --- a/nixos/systemd-boot.nix +++ b/nixos/systemd-boot.nix @@ -23,16 +23,6 @@ ]; consoleLogLevel = 0; initrd.verbose = false; - - # plymouth = { - # enable = true; - # theme = lib.mkForce "cuts_alt"; - # themePackages = with pkgs; [ - # (adi1090x-plymouth-themes.override { - # selected_themes = ["cuts_alt"]; - # }) - # ]; - # }; }; # To avoid systemd services hanging on shutdown diff --git a/nixos/usbguard.nix b/nixos/usbguard.nix index a1567d1..165e8f6 100644 --- a/nixos/usbguard.nix +++ b/nixos/usbguard.nix @@ -1,10 +1,14 @@ -{config, ...}: { +# USBGuard: +# The following line allow all USB devices until a proper policy is configured. +# Run `sudo usbguard generate-policy` with your devices plugged in, +# then set rules = "" and switch implicitPolicyTarget to "block". +# services.usbguard.implicitPolicyTarget = lib.mkForce "allow"; +{ services.usbguard = { enable = true; implicitPolicyTarget = "block"; IPCAllowedUsers = [ "root" - config.var.username ]; }; } diff --git a/nixos/utils.nix b/nixos/utils.nix index 44d6a4c..6e62989 100644 --- a/nixos/utils.nix +++ b/nixos/utils.nix @@ -12,11 +12,12 @@ extraLocale = config.var.extraLocale; autoUpgrade = config.var.autoUpgrade; in { - networking.hostName = hostname; + networking = { + hostName = hostname; + networkmanager.enable = true; + }; - networking.networkmanager.enable = true; systemd.services.NetworkManager-wait-online.enable = false; - system.autoUpgrade = { enable = autoUpgrade; dates = "04:00"; @@ -32,49 +33,34 @@ in { time = { timeZone = timeZone; }; - i18n.defaultLocale = defaultLocale; - i18n.inputMethod = { - enable = true; - type = "fcitx5"; - fcitx5.addons = with pkgs; [fcitx5-gtk]; - }; - i18n.extraLocaleSettings = { - LC_ADDRESS = extraLocale; - LC_IDENTIFICATION = extraLocale; - LC_MEASUREMENT = extraLocale; - LC_MONETARY = extraLocale; - LC_NAME = extraLocale; - LC_NUMERIC = extraLocale; - LC_PAPER = extraLocale; - LC_TELEPHONE = extraLocale; - LC_TIME = extraLocale; + + i18n = { + defaultLocale = defaultLocale; + extraLocaleSettings = { + LC_ADDRESS = extraLocale; + LC_IDENTIFICATION = extraLocale; + LC_MEASUREMENT = extraLocale; + LC_MONETARY = extraLocale; + LC_NAME = extraLocale; + LC_NUMERIC = extraLocale; + LC_PAPER = extraLocale; + LC_TELEPHONE = extraLocale; + LC_TIME = extraLocale; + }; }; services = { + libinput.enable = true; xserver = { enable = true; xkb.layout = keyboardLayout; - xkb.variant = ""; }; gnome.gnome-keyring.enable = true; psd = { enable = true; resyncTimer = "10m"; }; - }; - console.keyMap = keyboardLayout; - - environment.variables = { - XDG_DATA_HOME = "$HOME/.local/share"; - PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; - EDITOR = "nvim"; - }; - - services.libinput.enable = true; - programs.dconf.enable = true; - services = { dbus = { - enable = true; implementation = "broker"; packages = with pkgs; [ gcr @@ -86,46 +72,50 @@ in { power-profiles-daemon.enable = true; udisks2.enable = true; }; + console.keyMap = keyboardLayout; - # enable zsh autocompletion for system packages (systemd, etc) - environment.pathsToLink = ["/share/zsh"]; + environment = { + variables = { + PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; + }; + # enable zsh autocompletion for system packages (systemd, etc) + pathsToLink = ["/share/zsh"]; + systemPackages = with pkgs; [ + fd + bc + gcc + file + git-ignore + xdg-utils + wget + curl + gnupg + openssl + vim + go + comma + zip + unzip + optipng + jpegoptim + pfetch + btop + unrar + p7zip + ]; + }; + + programs.dconf.enable = true; # Faster rebuilding documentation = { - enable = true; doc.enable = false; - man.enable = true; dev.enable = false; info.enable = false; nixos.enable = false; }; - environment.systemPackages = with pkgs; [ - fd - bc - gcc - file - git-ignore - xdg-utils - wget - curl - gnupg - openssl - vim - go - comma - zip - unzip - optipng - jpegoptim - pfetch - btop - unrar - p7zip - ]; - xdg.portal = { - enable = true; xdgOpenUsePortal = true; config = { common.default = ["gtk"]; @@ -138,14 +128,5 @@ in { extraPortals = [pkgs.xdg-desktop-portal-gtk]; }; - security = { - # allow wayland lockers to unlock the screen - pam.services.hyprlock.text = "auth include login"; - - # userland niceness - rtkit.enable = true; - - # don't ask for password for wheel group - sudo.wheelNeedsPassword = false; - }; + security.rtkit.enable = true; } diff --git a/themes/nixy.nix b/themes/nixy.nix index e1d5b25..9f4e9d4 100644 --- a/themes/nixy.nix +++ b/themes/nixy.nix @@ -57,8 +57,8 @@ name = "Maple Mono NF"; }; sansSerif = { - package = pkgs.source-sans-pro; - name = "Source Sans Pro"; + package = pkgs.rubik; + name = "Rubik"; }; serif = config.stylix.fonts.sansSerif; emoji = { @@ -75,8 +75,8 @@ polarity = "dark"; image = pkgs.fetchurl { - url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/refs/heads/main/app/static/wallpapers/black-moutains-and-a-city.png"; - sha256 = "sha256-RTTA3Lf+hnPpo9hwS075kbnIouz12ul2GKO3EIgP6AU="; + url = "https://raw.githubusercontent.com/anotherhadi/awesome-wallpapers/main/app/static/wallpapers/another-one.png"; + sha256 = "sha256-zthfsd4QLShPPApV8RoPANaymMC5IiCrmp8QwyyhCcY="; }; }; } diff --git a/todo b/todo new file mode 100644 index 0000000..92230b9 --- /dev/null +++ b/todo @@ -0,0 +1,10 @@ +- [ ] Configuration waybar +- [ ] Configuration sway-nc +- [ ] Configuration sway-osd +- [ ] Configuration hyprlock +- [ ] Gaming/Focus mode +- [ ] Configuration Rofi/Drun +- [ ] Helium plus rapide ? service/deamon ? +- [ ] Ghostty service/deamon ? +- [ ] Clean files +- [ ] Check claude: Sécu, mots en français, faute, ...