diff --git a/flake.lock b/flake.lock index 6f635ba..08dac9c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,24 +1,5 @@ { "nodes": { - "awesome-wallpapers": { - "inputs": { - "git-hooks": "git-hooks", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1786698894, - "narHash": "sha256-yZHP8Tqn/ClxwGCTsZnyT5HRFGRY0eeMWtlK43qJbtc=", - "owner": "anotherhadi", - "repo": "awesome-wallpapers", - "rev": "deda1a9868be6f516405115068f3ed5038395340", - "type": "github" - }, - "original": { - "owner": "anotherhadi", - "repo": "awesome-wallpapers", - "type": "github" - } - }, "base16": { "inputs": { "fromYaml": "fromYaml" @@ -87,31 +68,12 @@ "type": "github" } }, - "blog": { - "inputs": { - "bun2nix": "bun2nix", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1780522780, - "narHash": "sha256-1gM3dJtcTx4Bmpi8sg7HSysSY1/Cv+VgdBwwsM/pW1s=", - "owner": "anotherhadi", - "repo": "blog", - "rev": "198112501a57e6a80464357118e4c864f7504d70", - "type": "github" - }, - "original": { - "owner": "anotherhadi", - "repo": "blog", - "type": "github" - } - }, "bun2nix": { "inputs": { "flake-parts": "flake-parts", "import-tree": "import-tree", "nixpkgs": [ - "blog", + "iknowyou", "nixpkgs" ], "systems": "systems", @@ -131,75 +93,6 @@ "type": "github" } }, - "bun2nix_2": { - "inputs": { - "flake-parts": "flake-parts_2", - "import-tree": "import-tree_2", - "nixpkgs": [ - "default-creds", - "nixpkgs" - ], - "systems": "systems_2", - "treefmt-nix": "treefmt-nix_2" - }, - "locked": { - "lastModified": 1770895533, - "narHash": "sha256-v3QaK9ugy9bN9RXDnjw0i2OifKmz2NnKM82agtqm/UY=", - "owner": "nix-community", - "repo": "bun2nix", - "rev": "c843f477b15f51151f8c6bcc886954699440a6e1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "bun2nix", - "type": "github" - } - }, - "bun2nix_3": { - "inputs": { - "flake-parts": "flake-parts_3", - "import-tree": "import-tree_3", - "nixpkgs": [ - "iknowyou", - "nixpkgs" - ], - "systems": "systems_3", - "treefmt-nix": "treefmt-nix_3" - }, - "locked": { - "lastModified": 1770895533, - "narHash": "sha256-v3QaK9ugy9bN9RXDnjw0i2OifKmz2NnKM82agtqm/UY=", - "owner": "nix-community", - "repo": "bun2nix", - "rev": "c843f477b15f51151f8c6bcc886954699440a6e1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "bun2nix", - "type": "github" - } - }, - "default-creds": { - "inputs": { - "bun2nix": "bun2nix_2", - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1780323652, - "narHash": "sha256-Ol1ygle0M95z0gOIYGD9WK4gl5xsWi7TvS7IgnK/WJQ=", - "owner": "anotherhadi", - "repo": "default-creds", - "rev": "98b207fe54e07086346f5d77c7a5ec6044e67cca", - "type": "github" - }, - "original": { - "owner": "anotherhadi", - "repo": "default-creds", - "type": "github" - } - }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -217,22 +110,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, @@ -246,7 +123,7 @@ "url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz" } }, - "flake-compat_3": { + "flake-compat_2": { "flake": false, "locked": { "lastModified": 1767039857, @@ -262,7 +139,7 @@ "type": "github" } }, - "flake-compat_4": { + "flake-compat_3": { "flake": false, "locked": { "lastModified": 1777699697, @@ -301,11 +178,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", + "lastModified": 1788450739, + "narHash": "sha256-glZLQlzIn1fXH6PazR2iUmTo7kzzyYSshrWhLS9TqCU=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", + "rev": "31729ca8cbdb4fa927b34e5f4353e6a83f39e993", "type": "github" }, "original": { @@ -315,42 +192,6 @@ } }, "flake-parts_3": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_3" - }, - "locked": { - "lastModified": 1769996383, - "narHash": "sha256-AnYjnFWgS49RlqX7LrC4uA+sCCDBj0Ry/WOJ5XWAsa0=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "57928607ea566b5db3ad13af0e57e921e6b12381", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_4": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib_4" - }, - "locked": { - "lastModified": 1785627969, - "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-parts_5": { "inputs": { "nixpkgs-lib": [ "nur", @@ -371,7 +212,7 @@ "type": "github" } }, - "flake-parts_6": { + "flake-parts_4": { "inputs": { "nixpkgs-lib": [ "stylix", @@ -409,28 +250,6 @@ } }, "git-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": [ - "awesome-wallpapers", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1784288435, - "narHash": "sha256-ReRHaLgr/uVqdD8afFSn+myXIfpHeOhP0yYe0TJqAA8=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "43b3c1ab9d40fb1dbb008f451988a91e375825e9", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, - "git-hooks_2": { "inputs": { "flake-compat": [ "nix-gaming", @@ -442,11 +261,11 @@ ] }, "locked": { - "lastModified": 1787424939, - "narHash": "sha256-O2tBn84NNuHrnqNVxx/XqsXwfYvS1YwBh+7CBnbCYsk=", + "lastModified": 1790091288, + "narHash": "sha256-2dUuLTiQrf2gUFVLlayDq/hgluitplAMv6Y9bYwQQ+c=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "809414f0cdadf82cf11b06c2b29ba9b3168b3297", + "rev": "0d3997c4d3253505f77c9bcea63904bb575da3c5", "type": "github" }, "original": { @@ -476,14 +295,14 @@ }, "helium-browser": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1787301512, - "narHash": "sha256-VYbNaWAcwK9G+mq3jmqyCu6t4zUNUOTT8PXB3pj7XgA=", + "lastModified": 1790255647, + "narHash": "sha256-VGsihdN8HxpBeNHB2AK/G5PJP2fFMLBCTy0c1ti0fIg=", "owner": "oxcl", "repo": "nix-flake-helium-browser", - "rev": "4fe9ac832466143224203f896a3a38aa8c73b611", + "rev": "5334f268b6cec49c58f69093b8f3198d3516e566", "type": "github" }, "original": { @@ -499,11 +318,11 @@ ] }, "locked": { - "lastModified": 1787487906, - "narHash": "sha256-zIdM+8teujHm5hc5MIPDnV7k2UeOOT/pFyFtWjOCwsY=", + "lastModified": 1790365885, + "narHash": "sha256-iQ0ebhiVo64NktTnwft9hNxlFu4j5cvljVxyJaEVIP4=", "owner": "nix-community", "repo": "home-manager", - "rev": "cfba7ad5886b342b8dd63ba74354b3853ea4cfc9", + "rev": "7b4c5ec4bedaf1e062bbc1bcaeddbc6bd242aa1b", "type": "github" }, "original": { @@ -514,8 +333,8 @@ }, "iknowyou": { "inputs": { - "bun2nix": "bun2nix_3", - "nixpkgs": "nixpkgs_5", + "bun2nix": "bun2nix", + "nixpkgs": "nixpkgs_2", "nur-osint": "nur-osint" }, "locked": { @@ -547,43 +366,13 @@ "type": "github" } }, - "import-tree_2": { - "locked": { - "lastModified": 1763762820, - "narHash": "sha256-ZvYKbFib3AEwiNMLsejb/CWs/OL/srFQ8AogkebEPF0=", - "owner": "vic", - "repo": "import-tree", - "rev": "3c23749d8013ec6daa1d7255057590e9ca726646", - "type": "github" - }, - "original": { - "owner": "vic", - "repo": "import-tree", - "type": "github" - } - }, - "import-tree_3": { - "locked": { - "lastModified": 1763762820, - "narHash": "sha256-ZvYKbFib3AEwiNMLsejb/CWs/OL/srFQ8AogkebEPF0=", - "owner": "vic", - "repo": "import-tree", - "rev": "3c23749d8013ec6daa1d7255057590e9ca726646", - "type": "github" - }, - "original": { - "owner": "vic", - "repo": "import-tree", - "type": "github" - } - }, "mnw": { "locked": { - "lastModified": 1780772958, - "narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=", + "lastModified": 1784154424, + "narHash": "sha256-HRn4O1X2ShYtbq5Egji72/aemyc2cIQicjRZD9hBqM8=", "owner": "Gerg-L", "repo": "mnw", - "rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160", + "rev": "0151d9fa87992cbeb67c86616fb9170dcec830b6", "type": "github" }, "original": { @@ -594,19 +383,19 @@ }, "nix-citizen": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat", "nix-gaming": [ "nix-gaming" ], - "nixpkgs": "nixpkgs_6", - "treefmt-nix": "treefmt-nix_4" + "nixpkgs": "nixpkgs_3", + "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1786008908, - "narHash": "sha256-b/9Y2u4YIwLfIdfg8nYxzVRDjm9fAqsFtK8Ikaf8YTs=", + "lastModified": 1788562485, + "narHash": "sha256-tOCjZk7HheGqcyPtEWnMjCO6W9dZI6ATo/RpMsASeLg=", "owner": "LovingMelody", "repo": "nix-citizen", - "rev": "094035e7a82b147dd09690074d6bb1f9f61ec7ba", + "rev": "4d6a91388f113ecdd8aff478a50b947c584b0b2f", "type": "github" }, "original": { @@ -617,17 +406,17 @@ }, "nix-gaming": { "inputs": { - "flake-compat": "flake-compat_3", - "flake-parts": "flake-parts_4", - "git-hooks": "git-hooks_2", - "nixpkgs": "nixpkgs_7" + "flake-compat": "flake-compat_2", + "flake-parts": "flake-parts_2", + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1787448989, - "narHash": "sha256-BXGiZoNdYzfs5ZqsSlSvNvMgcL4+je67BRUoyXY+fjw=", + "lastModified": 1790483338, + "narHash": "sha256-srUVCAD22Bcbg6GJbZEijDI22HMD6Lo2qOoUKtH22dg=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "daa997a8979f01a0defcc2065ba824c65bb461f6", + "rev": "b193ce18777d01469dbeb3b9c4110de2426e0edf", "type": "github" }, "original": { @@ -643,11 +432,11 @@ ] }, "locked": { - "lastModified": 1787457452, - "narHash": "sha256-FJh4esFS3zqNNuKwvN3t6wrJGewqp1AUF9DAEvoKPD8=", + "lastModified": 1790499302, + "narHash": "sha256-Gbf/U9ptJhQh0qnDnJ/+a8MAcq1HXunbArUTHR2wNYk=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "c51d5c2ba69c907a34e90c9b6b80cd2b93811745", + "rev": "161d7c91accd93034bb3c295224d9d895a778573", "type": "github" }, "original": { @@ -658,17 +447,17 @@ }, "nixarr": { "inputs": { - "nixpkgs": "nixpkgs_8", - "treefmt-nix": "treefmt-nix_5", + "nixpkgs": "nixpkgs_5", + "treefmt-nix": "treefmt-nix_3", "vpnconfinement": "vpnconfinement", "website-builder": "website-builder" }, "locked": { - "lastModified": 1784997863, - "narHash": "sha256-oTMag4I9MW3bstuOKqzc0F1OqxO49lLa9jkSkRe3EqA=", + "lastModified": 1790060119, + "narHash": "sha256-OIUx17w60LTC8rky7XswJ58MNSDO3N1HM3iFu/zwM7g=", "owner": "rasmus-kirk", "repo": "nixarr", - "rev": "282ce99b31d52d72cca281e3d26d3dd267946800", + "rev": "0f960a27ec132b8ca87d210489f77f847d27836a", "type": "github" }, "original": { @@ -679,14 +468,14 @@ }, "nixos-hardware": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1787144466, - "narHash": "sha256-HHfv2/HkNSKbbSyU9iD/g8lbP6r4tl33sSw1W4rXCk0=", + "lastModified": 1790321948, + "narHash": "sha256-mZGHLGi217oLIwzDM4PNRZeCNa6g2WBXURyXbNMFs7Y=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "0471accf8d0a8210b31d947497d179ecc99e0021", + "rev": "30d48a0ec6035f8140d0125af274f0de95f1e9b5", "type": "github" }, "original": { @@ -698,16 +487,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1786535285, - "narHash": "sha256-rG5HKMAgAhMgydvKGtco6rqTxRq4EDZQCx9USLvVqYw=", - "owner": "nixos", + "lastModified": 1777578337, + "narHash": "sha256-Ad49moKWeXtKBJNy2ebiTQUEgdLyvGmTeykAQ9xM+Z4=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "9f78f44a87948854445dae0b6bf82b2e87e4efb5", + "rev": "15f4ee454b1dce334612fa6843b3e05cf546efab", "type": "github" }, "original": { - "owner": "nixos", - "ref": "nixos-26.05", + "owner": "NixOS", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } @@ -729,41 +518,11 @@ }, "nixpkgs-lib_2": { "locked": { - "lastModified": 1769909678, - "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", + "lastModified": 1788057806, + "narHash": "sha256-DTQSMxzDWmT0zhguthvegnVkn7CFqGCv4IHCzk5ZUpM=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "72716169fe93074c333e8d0173151350670b824c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_3": { - "locked": { - "lastModified": 1769909678, - "narHash": "sha256-cBEymOf4/o3FD5AZnzC3J9hLbiZ+QDT/KDuyHXVJOpM=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "72716169fe93074c333e8d0173151350670b824c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-lib_4": { - "locked": { - "lastModified": 1785031560, - "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", + "rev": "596e2e3940e09b2abbeb03f75fa1828c57fcd72c", "type": "github" }, "original": { @@ -790,56 +549,11 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1787360063, - "narHash": "sha256-dt4WdcvsA8/RCe+VZZwqU0X+XMM3wBbGCWA0/sFWzGo=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2c423e03bbafcff28bfadc6781a4a8257f205cb5", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1780749050, - "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=", + "lastModified": 1790480522, + "narHash": "sha256-fXrm/q9klVBtVq5rGQ+XpI/dokPuSB15ZK2CZvWxXOk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1784796856, - "narHash": "sha256-vwxWgF+Gj276WznzGb1LxGsK/39HaQwgQXiU3EkC844=", - "rev": "e2587caef70cea85dd97d7daab492899902dbf5d", - "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1040357.e2587caef70c/nixexprs.tar.xz" - }, - "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" - } - }, - "nixpkgs_13": { - "locked": { - "lastModified": 1782175435, - "narHash": "sha256-EMzXKmnOtBQ2MnvpiNOm7E+kOMvdPrIKaeg52Tip2Uk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "89570f24e97e614aa34aa9ab1c927b6578a43775", + "rev": "8d5d270900d3fc75655ea2d9d248b234f6631439", "type": "github" }, "original": { @@ -849,7 +563,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_11": { "locked": { "lastModified": 1785454630, "narHash": "sha256-LQy14TZp77TwbQf40gg1V3jo8FwJG0jGDkAH+zRHqg8=", @@ -866,54 +580,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1776548001, - "narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1772773019, - "narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "aca4d95fce4914b3892661bcb80b8087293536c6", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "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": 1775710090, "narHash": "sha256-ar3rofg+awPB8QXDaFJhJ2jJhu+KqN/PRCXeyuXR76E=", @@ -929,13 +595,13 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_3": { "locked": { - "lastModified": 1785828668, - "narHash": "sha256-8fsyqeO+mJqvIzeO4xIpgJe/f7MTbbVTEC6RT6WSXNs=", + "lastModified": 1788316716, + "narHash": "sha256-bc7rSpXIdn9QWGNqfWcPZWOhEVF8NoeAZkWq0XWnf/k=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e72e4f299401a3689d4b3d5fc6496b11db7064eb", + "rev": "3ed67ec0a4d3c7ab4ae1f04f8ee8df07bfa506a2", "type": "github" }, "original": { @@ -945,13 +611,13 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_4": { "locked": { - "lastModified": 1787209939, - "narHash": "sha256-WvvHR4kSQLAbtouMC/ruZ5UpLwlUcY3K4FAllMN+yGk=", + "lastModified": 1790448801, + "narHash": "sha256-nAq6wML4elZMHNi/29VVZSEnptPMSo9JwhacZnLVPZU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "391b592eb44808b3bd0cb80bb71b63a5a118b8bb", + "rev": "f9bce96a417afbb9c64725f8727e42efafeafc21", "type": "github" }, "original": { @@ -961,7 +627,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_5": { "locked": { "lastModified": 1775595990, "narHash": "sha256-OEf7YqhF9IjJFYZJyuhAypgU+VsRB5lD4DuiMws5Ltc=", @@ -977,13 +643,58 @@ "type": "github" } }, + "nixpkgs_6": { + "locked": { + "lastModified": 1789546076, + "narHash": "sha256-vWkSk5bbfTqdtMoSgD9FshACO8JCvXTFi+3cqEp0mH0=", + "rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1074753.b1b875982b17/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1790578696, + "narHash": "sha256-ZoxIApko70jCdbH3l20HWXOBaT2HZd87orzd2yJ9dVE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "7a0f122f5090cf4c2ade2a13a0e229d4e19ba71f", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1787736819, + "narHash": "sha256-cV5xEJJK3BvhU8rEd4mC9UsmDi5qscv/kzGPhBRC5WA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "9fbb54b33e91ee4ca368e35a78e0613c720600b3", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixpkgs_9": { "locked": { - "lastModified": 1767892417, - "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", - "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "lastModified": 1790046670, + "narHash": "sha256-OJe62m8gZx4xEAQnMcqH1u31/uu4Xf0q2ykAEHZfgrg=", + "rev": "6774f7bc253789b113a4f39285dc0fa100abeacc", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1077996.6774f7bc2537/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -992,17 +703,17 @@ }, "nur": { "inputs": { - "flake-parts": "flake-parts_5", + "flake-parts": "flake-parts_3", "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1787487241, - "narHash": "sha256-2vwa1akgtikyZkIR0GxRXQOuvDMDG04bprUNQyX6Zyg=", + "lastModified": 1790608168, + "narHash": "sha256-bS0iDWgMpZHOaN8GqvVnimivn3+6s2E5a4mMuXinKr4=", "owner": "nix-community", "repo": "NUR", - "rev": "7c281dd92d790f4a6f9bc84d322237e0400c0562", + "rev": "7ea89ddd69e06f2108772048a10fd11c537af188", "type": "github" }, "original": { @@ -1013,14 +724,14 @@ }, "nur-anotherhadi": { "inputs": { - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_8" }, "locked": { - "lastModified": 1787250824, - "narHash": "sha256-hiEd/ZoB6bFxYTRPxwfu4ufVIfLi6q5GJhunlPyM/IQ=", + "lastModified": 1790251796, + "narHash": "sha256-L8CvxAKcugtz4GuJrvVWyaOw694bjQcuMTugHG675Cs=", "owner": "anotherhadi", "repo": "nur-packages", - "rev": "4821e5e2255fdcfe03ec4798d5b28b6e8d199950", + "rev": "baf2b43d7e6b01ac11208d1e33c658f7932ecd6d", "type": "github" }, "original": { @@ -1077,16 +788,16 @@ }, "nvf": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_3", "mnw": "mnw", - "nixpkgs": "nixpkgs_12" + "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1787432068, - "narHash": "sha256-IwY4Dfd5xCnNo66Jx2CCyVRkIuZ9ub59v8+E6kVVlIY=", + "lastModified": 1790221470, + "narHash": "sha256-TzyWd4i7YCpqoF9xB8mfgDJ2sviAZysKH9R8YbQGjqA=", "owner": "notashelf", "repo": "nvf", - "rev": "45ad22485d23bf131e3543eb7de16d0adf274e8b", + "rev": "95afe7a794216f53e217c5148c6fbe0b668192cf", "type": "github" }, "original": { @@ -1097,9 +808,6 @@ }, "root": { "inputs": { - "awesome-wallpapers": "awesome-wallpapers", - "blog": "blog", - "default-creds": "default-creds", "helium-browser": "helium-browser", "home-manager": "home-manager", "iknowyou": "iknowyou", @@ -1108,7 +816,7 @@ "nix-index-database": "nix-index-database", "nixarr": "nixarr", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_10", + "nixpkgs": "nixpkgs_7", "nixpkgs-stable": "nixpkgs-stable", "nur": "nur", "nur-anotherhadi": "nur-anotherhadi", @@ -1120,14 +828,14 @@ }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_13" + "nixpkgs": "nixpkgs_10" }, "locked": { - "lastModified": 1786629091, - "narHash": "sha256-gkig4nPi1CWc4Z50GBsjE4ygSE7hMpl/TwID2an2Cck=", + "lastModified": 1790498116, + "narHash": "sha256-rs9meAYxW3zzrh43yaW7htrqCD+X9+pupDPHN86fumI=", "owner": "Mic92", "repo": "sops-nix", - "rev": "a8627b21b9107c5711c96b84f32a9a4b3d45295f", + "rev": "5efb5a6f4f5ab192817d28557dd4d650fa14d866", "type": "github" }, "original": { @@ -1143,22 +851,22 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", - "flake-parts": "flake-parts_6", + "flake-parts": "flake-parts_4", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_14", + "nixpkgs": "nixpkgs_11", "nur": "nur_2", - "systems": "systems_4", + "systems": "systems_2", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", "tinted-tmux": "tinted-tmux", "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1787175104, - "narHash": "sha256-tzNjlb0loxeWlipvxSNAUUihloeTZoyGFhEen87yM9k=", + "lastModified": 1790451534, + "narHash": "sha256-5J4zQ0mmCsd2SS+sOKdzXrngofQdtube3VoHSENz4zE=", "owner": "danth", "repo": "stylix", - "rev": "a9e5a76a1b75b137f266e4f445e1eaba82e9783e", + "rev": "fb28acd59e2ac1984ec84fa496599d6b4bf3e690", "type": "github" }, "original": { @@ -1183,36 +891,6 @@ } }, "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_4": { "locked": { "lastModified": 1774449309, "narHash": "sha256-brhZ8DmuGtzkCYHJg4HEd602amKm89Y9ytsFZ5uWD1w=", @@ -1295,7 +973,7 @@ "treefmt-nix": { "inputs": { "nixpkgs": [ - "blog", + "iknowyou", "bun2nix", "nixpkgs" ] @@ -1317,17 +995,16 @@ "treefmt-nix_2": { "inputs": { "nixpkgs": [ - "default-creds", - "bun2nix", + "nix-citizen", "nixpkgs" ] }, "locked": { - "lastModified": 1770228511, - "narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=", + "lastModified": 1786901030, + "narHash": "sha256-WSFCsDSE5ffgD2MqzkM2CYjeFiKhRF/dJUN8uedb6YE=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "337a4fe074be1042a35086f15481d763b8ddc0e7", + "rev": "27b3b12a8e6375f28ebe122f07d230ca5459bbfa", "type": "github" }, "original": { @@ -1337,49 +1014,6 @@ } }, "treefmt-nix_3": { - "inputs": { - "nixpkgs": [ - "iknowyou", - "bun2nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1770228511, - "narHash": "sha256-wQ6NJSuFqAEmIg2VMnLdCnUc0b7vslUohqqGGD+Fyxk=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "337a4fe074be1042a35086f15481d763b8ddc0e7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_4": { - "inputs": { - "nixpkgs": [ - "nix-citizen", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1785360170, - "narHash": "sha256-XE1lKgQ3eIO3E7zWryqcRsax+mYXod/5RHBn4YaR9YE=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "d1187f8bc71fb8aab02395869ec3f5c1920f75c0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "treefmt-nix_5": { "inputs": { "nixpkgs": [ "nixarr", @@ -1446,11 +1080,11 @@ ] }, "locked": { - "lastModified": 1787430507, - "narHash": "sha256-suOYXVn7PadruX8SlCji40gnmKUqQOSQRLtja/E60Vw=", + "lastModified": 1790568199, + "narHash": "sha256-h3AHjsOZr9iBEkNfK+Zh7/DoN5iMRpJd/6h/5NxCz9I=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "b49e5b7b3f925b78b2af9ca21e81e8c0d1a4711e", + "rev": "e50ed94ebf28bae95397e482dbb1c020f50c20c1", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 434a001..0bd28e6 100644 --- a/flake.nix +++ b/flake.nix @@ -41,9 +41,6 @@ # Server nixarr.url = "github:rasmus-kirk/nixarr"; - default-creds.url = "github:anotherhadi/default-creds"; - blog.url = "github:anotherhadi/blog"; - awesome-wallpapers.url = "github:anotherhadi/awesome-wallpapers"; iknowyou.url = "github:anotherhadi/iknowyou"; }; diff --git a/home/programs/git/default.nix b/home/programs/git/default.nix index 49f5e9c..a7d9ada 100644 --- a/home/programs/git/default.nix +++ b/home/programs/git/default.nix @@ -21,7 +21,7 @@ in { user.name = username; user.email = email; init.defaultBranch = "main"; - pull.rebase = "false"; + pull.rebase = false; push.autoSetupRemote = true; color.ui = "1"; alias = { @@ -43,10 +43,10 @@ in { af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)"; st = "status"; br = "branch"; - df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}"; + df = "!git hist | sk | awk '{print $2}' | xargs -I {} git diff {}^ {}"; hist = ''log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all''; llog = ''log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative''; - edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`"; + edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; nvim `f`"; }; }; }; diff --git a/home/programs/git/signing.nix b/home/programs/git/signing.nix index 4b2ea9b..c953f7e 100644 --- a/home/programs/git/signing.nix +++ b/home/programs/git/signing.nix @@ -4,7 +4,6 @@ home.file.".ssh/allowed_signers".text = "* ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIINhWby7lUUXQNKbRu9/UOrGjWDf3fvoAwGHomWv/+lL"; programs.git = { - signing.format = "openpgp"; settings = { commit.gpgsign = true; gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; diff --git a/home/programs/proton/auto-start-vpn.nix b/home/programs/proton/auto-start-vpn.nix index 6222d7f..36076fa 100644 --- a/home/programs/proton/auto-start-vpn.nix +++ b/home/programs/proton/auto-start-vpn.nix @@ -1,5 +1,7 @@ -{ - wayland.windowManager.hyprland.settings.exec-once = [ +{lib, ...}: let + hl = import ../../system/hyprland/lib.nix {inherit lib;}; +in { + wayland.windowManager.hyprland.settings.on = hl.execOnce [ "protonvpn-app --start-minimized &" ]; } diff --git a/home/programs/shell/zsh.nix b/home/programs/shell/zsh.nix index f7055be..57d3843 100644 --- a/home/programs/shell/zsh.nix +++ b/home/programs/shell/zsh.nix @@ -51,7 +51,7 @@ cd = "z"; ls = "eza --icons=always --no-quotes"; tree = "eza --icons=always --tree --no-quotes"; - cat = "bat --theme=base16 --color=always --paging=never --tabs=2 --wrap=never --plain"; + cat = "bat --theme=base16 --paging=never --tabs=2 --wrap=never --plain"; mkdir = "mkdir -p"; # Shortcuts @@ -112,7 +112,7 @@ alias -g C="| wl-copy" alias -g NE="2>/dev/null" alias -g ND=">/dev/null" - alias -g NUL=">/dev/null 2>1" + alias -g NUL=">/dev/null 2>&1" # search history based on what's typed in the prompt autoload -U history-search-end diff --git a/home/programs/zen/default.nix.old b/home/programs/zen/default.nix.old deleted file mode 100644 index aa6e653..0000000 --- a/home/programs/zen/default.nix.old +++ /dev/null @@ -1,62 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: -{ - programs.zen-browser = { - enable = true; - - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - DisablePocket = true; - - OfferToSaveLogins = false; - PasswordManagerEnabled = false; - - AutofillAddressEnabled = false; - AutofillCreditCardEnabled = false; - - DontCheckDefaultBrowser = true; - - DNSOverHTTPS = { - Enabled = true; - ProviderURL = "https://dns.quad9.net/dns-query"; - Locked = true; - }; - }; - - profiles.default = { - search = { - force = true; - default = "Startpage"; - }; - - settings = { - "browser.startup.homepage" = "https://duckduckgo.com"; - - "browser.newtabpage.enabled" = false; - - "privacy.resistFingerprinting" = true; - "privacy.trackingprotection.enabled" = true; - - "geo.enabled" = false; - "dom.webnotifications.enabled" = false; - - "signon.rememberSignons" = false; - - "toolkit.telemetry.enabled" = false; - }; - - extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ - ublock-origin - firefox-multi-account-containers - noscript - ]; - }; - }; - - home.sessionVariables.BROWSER = "zen"; -} diff --git a/home/programs/zen/system.nix.old b/home/programs/zen/system.nix.old deleted file mode 100644 index e0a75a7..0000000 --- a/home/programs/zen/system.nix.old +++ /dev/null @@ -1,24 +0,0 @@ -{ - programs.zen-browser = { - enable = true; - - policies = { - DisableTelemetry = true; - DisableFirefoxStudies = true; - - OfferToSaveLogins = false; - PasswordManagerEnabled = false; - - DNSOverHTTPS = { - Enabled = true; - ProviderURL = "https://dns.quad9.net/dns-query"; - Locked = true; - }; - - Homepage = { - URL = "https://duckduckgo.com"; - StartPage = "homepage"; - }; - }; - }; -} diff --git a/home/system/caelestia-shell/default.nix b/home/system/caelestia-shell/default.nix index b7c4e94..8c59a72 100644 --- a/home/system/caelestia-shell/default.nix +++ b/home/system/caelestia-shell/default.nix @@ -5,7 +5,9 @@ inputs, lib, ... -}: { +}: let + hl = import ../hyprland/lib.nix {inherit lib;}; +in { imports = [ inputs.caelestia-shell.homeManagerModules.default ./bar.nix @@ -50,7 +52,7 @@ gpu-screen-recorder ]; - wayland.windowManager.hyprland.settings.exec-once = [ + wayland.windowManager.hyprland.settings.on = hl.execOnce [ "uwsm app -- caelestia resizer -d" "uwsm app -- caelestia shell -d" "caelestia scheme set -n onedark" diff --git a/home/system/hyprland/animations.nix b/home/system/hyprland/animations.nix index a0a3952..17800df 100644 --- a/home/system/hyprland/animations.nix +++ b/home/system/hyprland/animations.nix @@ -1,52 +1,67 @@ -{config, ...}: let +{ + config, + lib, + ... +}: let animationSpeed = config.theme.animation-speed; animationDuration = if animationSpeed == "slow" - then "4" + then 4 else if animationSpeed == "medium" - then "2.5" - else "1.5"; + then 2.5 + else 1.5; borderDuration = if animationSpeed == "slow" - then "10" + then 10 else if animationSpeed == "medium" - then "6" - else "3"; + then 6 + else 3; + bezier = points: { + type = "bezier"; + inherit points; + }; + curves = { + linear = [[0 0] [1 1]]; + md3_standard = [[0.2 0] [0 1]]; + md3_decel = [[0.05 0.7] [0.1 1]]; + md3_accel = [[0.3 0] [0.8 0.15]]; + overshot = [[0.05 0.9] [0.1 1.1]]; + crazyshot = [[0.1 1.5] [0.76 0.92]]; + hyprnostretch = [[0.05 0.9] [0.1 1.0]]; + menu_decel = [[0.1 1] [0 1]]; + menu_accel = [[0.38 0.04] [1 0.07]]; + easeInOutCirc = [[0.85 0] [0.15 1]]; + easeOutCirc = [[0 0.55] [0.45 1]]; + easeOutExpo = [[0.16 1] [0.3 1]]; + softAcDecel = [[0.26 0.26] [0.15 1]]; + md2 = [[0.4 0] [0.2 1]]; + }; + + anim = leaf: speed: bezier: extra: + { + inherit leaf speed bezier; + enabled = true; + } + // extra; in { wayland.windowManager.hyprland.settings = { - animations = { - enabled = true; - bezier = [ - "linear, 0, 0, 1, 1" - "md3_standard, 0.2, 0, 0, 1" - "md3_decel, 0.05, 0.7, 0.1, 1" - "md3_accel, 0.3, 0, 0.8, 0.15" - "overshot, 0.05, 0.9, 0.1, 1.1" - "crazyshot, 0.1, 1.5, 0.76, 0.92" - "hyprnostretch, 0.05, 0.9, 0.1, 1.0" - "menu_decel, 0.1, 1, 0, 1" - "menu_accel, 0.38, 0.04, 1, 0.07" - "easeInOutCirc, 0.85, 0, 0.15, 1" - "easeOutCirc, 0, 0.55, 0.45, 1" - "easeOutExpo, 0.16, 1, 0.3, 1" - "softAcDecel, 0.26, 0.26, 0.15, 1" - "md2, 0.4, 0, 0.2, 1" - ]; + config.animations.enabled = true; - animation = [ - "windows, 1, ${animationDuration}, md3_decel, popin 60%" - "windowsIn, 1, ${animationDuration}, md3_decel, popin 60%" - "windowsOut, 1, ${animationDuration}, md3_accel, popin 60%" - "border, 1, ${borderDuration}, default" - "fade, 1, ${animationDuration}, md3_decel" - "layersIn, 1, ${animationDuration}, menu_decel, slide" - "layersOut, 1, ${animationDuration}, menu_accel" - "fadeLayersIn, 1, ${animationDuration}, menu_decel" - "fadeLayersOut, 1, ${animationDuration}, menu_accel" - "workspaces, 1, ${animationDuration}, menu_decel, slide" - "specialWorkspace, 1, ${animationDuration}, md3_decel, slidevert" - ]; - }; + curve = lib.mapAttrsToList (name: points: {_args = [name (bezier points)];}) curves; + + animation = [ + (anim "windows" animationDuration "md3_decel" {style = "popin 60%";}) + (anim "windowsIn" animationDuration "md3_decel" {style = "popin 60%";}) + (anim "windowsOut" animationDuration "md3_accel" {style = "popin 60%";}) + (anim "border" borderDuration "default" {}) + (anim "fade" animationDuration "md3_decel" {}) + (anim "layersIn" animationDuration "menu_decel" {style = "slide";}) + (anim "layersOut" animationDuration "menu_accel" {}) + (anim "fadeLayersIn" animationDuration "menu_decel" {}) + (anim "fadeLayersOut" animationDuration "menu_accel" {}) + (anim "workspaces" animationDuration "menu_decel" {style = "slide";}) + (anim "specialWorkspace" animationDuration "md3_decel" {style = "slidevert";}) + ]; }; } diff --git a/home/system/hyprland/bindings.nix b/home/system/hyprland/bindings.nix index 574d490..951b2ce 100644 --- a/home/system/hyprland/bindings.nix +++ b/home/system/hyprland/bindings.nix @@ -4,26 +4,25 @@ config, pkgs-nur-hadi, ... -}: -let +}: let + hl = import ./lib.nix {inherit lib;}; colors = config.lib.stylix.colors; - mkMenu = menu: - let - configFile = pkgs.writeText "config.yaml" ( - lib.generators.toYAML { } { - anchor = "bottom-right"; - border = "#${colors.base0D}80"; - background = "#${colors.base01}EE"; - color = "#${colors.base05}"; - margin_right = 15; - margin_bottom = 15; - rows_per_column = 5; + mkMenu = menu: let + configFile = pkgs.writeText "config.yaml" ( + lib.generators.toYAML {} { + anchor = "bottom-right"; + border = "#${colors.base0D}80"; + background = "#${colors.base01}EE"; + color = "#${colors.base05}"; + margin_right = 15; + margin_bottom = 15; + rows_per_column = 5; - inherit menu; - } - ); - in + inherit menu; + } + ); + in pkgs.writeShellScriptBin "menu" '' exec ${lib.getExe pkgs.wlr-which-key} ${configFile} ''; @@ -220,18 +219,12 @@ let cmd = "systemctl reboot"; } ]; -in -{ +in { wayland.windowManager.hyprland.settings = { - "$mod" = "SUPER"; - "$shiftMod" = "SUPER_SHIFT"; - bind = [ # Applications - ( - "$shiftMod, A, exec, " - + lib.getExe (mkMenu [ + (hl.bind "SUPER + SHIFT + A" (hl.exec (lib.getExe (mkMenu [ { key = "a"; desc = "Apps"; @@ -257,15 +250,13 @@ in desc = "System"; cmd = lib.getExe systemMenu; } - ]) - ) + ]))) + null) - "$mod,B, exec, uwsm app -- ${config.programs.librewolf.package}/bin/helium" # Browser + (hl.bind "SUPER + B" (hl.exec "uwsm app -- ${config.programs.librewolf.package}/bin/helium") null) # Browser # Power - ( - "$mod, X, exec, " - + lib.getExe (mkMenu [ + (hl.bind "SUPER + X" (hl.exec (lib.getExe (mkMenu [ { key = "l"; desc = "Lock"; @@ -296,69 +287,100 @@ in desc = "Restart Waybar"; cmd = "pkill -x waybar; waybar"; } - ]) - ) + ]))) + null) # Quick launch - "$mod,RETURN, exec, uwsm app -- ${pkgs.ghostty}/bin/ghostty" # Ghostty (terminal) - "$mod,E, exec, uwsm app -- ${pkgs.thunar}/bin/thunar" # Thunar - "$mod, SPACE, exec, walker" # Launcher - "$mod, N, exec, ${lib.getExe pkgs.grimblast} save area" # Save screenshot - "$mod, D, exec, ${lib.getExe pkgs.grimblast} copy area" # Copy screenshot + (hl.bind "SUPER + RETURN" (hl.exec "uwsm app -- ${pkgs.ghostty}/bin/ghostty") null) # Ghostty (terminal) + (hl.bind "SUPER + E" (hl.exec "uwsm app -- ${pkgs.thunar}/bin/thunar") null) # Thunar + (hl.bind "SUPER + SPACE" (hl.exec "walker") null) # Launcher + (hl.bind "SUPER + N" (hl.exec "${lib.getExe pkgs.grimblast} save area") null) # Save screenshot + (hl.bind "SUPER + D" (hl.exec "${lib.getExe pkgs.grimblast} copy area") null) # Copy screenshot # Windows - "$mod,Q, killactive," # Close window - "$mod,F, fullscreen" # Toggle Fullscreen - "$shiftMod,F, togglefloating," # Toggle Floating + (hl.bind "SUPER + Q" (hl.mkLuaInline "hl.dsp.window.close()") null) # Close window + (hl.bind "SUPER + F" (hl.mkLuaInline ''hl.dsp.window.fullscreen({ mode = "fullscreen" })'') null) # Toggle Fullscreen + (hl.bind "SUPER + SHIFT + F" (hl.mkLuaInline ''hl.dsp.window.float({ action = "toggle" })'') null) # Toggle Floating # Focus Windows - "$mod,H, movefocus, l" # Move focus left - "$mod,J, movefocus, d" # Move focus Down - "$mod,K, movefocus, u" # Move focus Up - "$mod,L, movefocus, r" # Move focus Right - "$shiftMod,H, focusmonitor, -1" # Focus previous monitor - "$shiftMod,J, layoutmsg, removemaster" # Remove from master - "$shiftMod,K, layoutmsg, addmaster" # Add to master - "$shiftMod,L, focusmonitor, 1" # Focus next monitor + (hl.bind "SUPER + H" (hl.mkLuaInline ''hl.dsp.focus({ direction = "left" })'') null) # Move focus left + (hl.bind "SUPER + J" (hl.mkLuaInline ''hl.dsp.focus({ direction = "down" })'') null) # Move focus Down + (hl.bind "SUPER + K" (hl.mkLuaInline ''hl.dsp.focus({ direction = "up" })'') null) # Move focus Up + (hl.bind "SUPER + L" (hl.mkLuaInline ''hl.dsp.focus({ direction = "right" })'') null) # Move focus Right + (hl.bind "SUPER + SHIFT + H" (hl.mkLuaInline ''hl.dsp.focus({ monitor = "-1" })'') null) # Focus previous monitor + (hl.bind "SUPER + SHIFT + J" (hl.mkLuaInline ''hl.dsp.layout("removemaster")'') null) # Remove from master + (hl.bind "SUPER + SHIFT + K" (hl.mkLuaInline ''hl.dsp.layout("addmaster")'') null) # Add to master + (hl.bind "SUPER + SHIFT + L" (hl.mkLuaInline ''hl.dsp.focus({ monitor = "+1" })'') null) # Focus next monitor # Utilities - "$shiftMod, S, exec, ${lib.getExe pkgs.grimblast} copy area" # Capture region - ", Print, exec, ${lib.getExe pkgs.grimblast} copy area" # Capture region - "$shiftMod+Alt, S, exec, ${lib.getExe pkgs.grimblast} save area" # Capture region + (hl.bind "SUPER + SHIFT + S" (hl.exec "${lib.getExe pkgs.grimblast} copy area") null) # Capture region + (hl.bind "Print" (hl.exec "${lib.getExe pkgs.grimblast} copy area") null) # Capture region + (hl.bind "SUPER + SHIFT + ALT + S" (hl.exec "${lib.getExe pkgs.grimblast} save area") null) # Capture region ] + # Workspaces: keycodes 10-18 are the number row keys 1-9 ++ (builtins.concatLists ( builtins.genList ( i: let - ws = i + 1; + ws = toString (i + 1); in [ - "$mod,code:1${toString i}, workspace, ${toString ws}" - "$mod SHIFT,code:1${toString i}, movetoworkspace, ${toString ws}" + (hl.bind "SUPER + code:1${toString i}" (hl.mkLuaInline "hl.dsp.focus({ workspace = ${ws} })") null) + (hl.bind "SUPER + SHIFT + code:1${toString i}" (hl.mkLuaInline "hl.dsp.window.move({ workspace = ${ws} })") null) ] ) 9 - )); + )) + # Mouse + ++ [ + (hl.bind "SUPER + mouse:272" (hl.mkLuaInline "hl.dsp.window.drag()") {mouse = true;}) # Move Window (mouse) + (hl.bind "SUPER + R" (hl.mkLuaInline "hl.dsp.window.resize()") {mouse = true;}) # Resize Window (mouse) + ] + # Locked (also work on the lockscreen) + ++ (map (b: hl.bind b.key (hl.exec b.cmd) {locked = true;}) [ + # Brightness + { + key = "XF86MonBrightnessUp"; + cmd = "${lib.getExe pkgs.brightnessctl} set 5%+"; + } + { + key = "XF86MonBrightnessDown"; + cmd = "${lib.getExe pkgs.brightnessctl} set 5%-"; + } - bindm = [ - "$mod,mouse:272, movewindow" # Move Window (mouse) - "$mod,R, resizewindow" # Resize Window (mouse) - ]; + # Media + { + key = "XF86AudioPlay"; + cmd = "${lib.getExe pkgs.playerctl} play-pause"; + } + { + key = "XF86AudioPause"; + cmd = "${lib.getExe pkgs.playerctl} play-pause"; + } + { + key = "XF86AudioNext"; + cmd = "${lib.getExe pkgs.playerctl} next"; + } + { + key = "XF86AudioPrev"; + cmd = "${lib.getExe pkgs.playerctl} previous"; + } + { + key = "XF86AudioStop"; + cmd = "${lib.getExe pkgs.playerctl} stop"; + } - bindl = [ - # Brightness - ", XF86MonBrightnessUp, exec, ${lib.getExe pkgs.brightnessctl} set 5%+" - ", XF86MonBrightnessDown, exec, ${lib.getExe pkgs.brightnessctl} set 5%-" - - # Media - ", XF86AudioPlay, exec, ${lib.getExe pkgs.playerctl} play-pause" - ", XF86AudioPause, exec, ${lib.getExe pkgs.playerctl} play-pause" - ", XF86AudioNext, exec, ${lib.getExe pkgs.playerctl} next" - ", XF86AudioPrev, exec, ${lib.getExe pkgs.playerctl} previous" - ", XF86AudioStop, exec, ${lib.getExe pkgs.playerctl} stop" - - # Sound - ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle" - ", XF86AudioRaiseVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" - ", XF86AudioLowerVolume, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-" - ]; + # Sound + { + key = "XF86AudioMute"; + cmd = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + } + { + key = "XF86AudioRaiseVolume"; + cmd = "wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"; + } + { + key = "XF86AudioLowerVolume"; + cmd = "wpctl set-mute @DEFAULT_AUDIO_SINK@ 0; wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; + } + ]); }; } diff --git a/home/system/hyprland/default.nix b/home/system/hyprland/default.nix index 1870635..ab1b7d8 100644 --- a/home/system/hyprland/default.nix +++ b/home/system/hyprland/default.nix @@ -14,6 +14,7 @@ blur = config.theme.blur; keyboardLayout = config.var.keyboardLayout; background = "rgba(" + config.lib.stylix.colors.base00 + "EE)"; + hl = import ./lib.nix {inherit lib;}; in { imports = [ ./animations.nix @@ -48,7 +49,7 @@ in { wayland.windowManager.hyprland = { enable = true; - configType = "hyprlang"; + configType = "lua"; xwayland.enable = true; systemd = { enable = false; @@ -60,116 +61,137 @@ in { portalPackage = null; settings = { - exec-once = [ + on = hl.execOnce [ "dbus-update-activation-environment --systemd --all &" ]; + # default for every monitor without an explicit rule (hosts add their own) monitor = [ - ",prefered,auto,1" # default + { + output = ""; + mode = "preferred"; + position = "auto"; + scale = 1; + } ]; - env = [ - "XDG_CURRENT_DESKTOP,Hyprland" - "XDG_SESSION_TYPE,wayland" - "XDG_SESSION_DESKTOP,Hyprland" - "ANKI_WAYLAND,1" - "DISABLE_QT5_COMPAT,0" - "QT_AUTO_SCREEN_SCALE_FACTOR,1" - "QT_QPA_PLATFORM,wayland;xcb" - "QT_QPA_PLATFORMTHEME,gtk3" - "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" - "ELECTRON_OZONE_PLATFORM_HINT,auto" - "DIRENV_LOG_FORMAT," - "SDL_VIDEODRIVER,wayland" - "CLUTTER_BACKEND,wayland" + env = lib.mapAttrsToList (name: value: {_args = [name value];}) { + XDG_CURRENT_DESKTOP = "Hyprland"; + XDG_SESSION_TYPE = "wayland"; + XDG_SESSION_DESKTOP = "Hyprland"; + ANKI_WAYLAND = "1"; + DISABLE_QT5_COMPAT = "0"; + QT_AUTO_SCREEN_SCALE_FACTOR = "1"; + QT_QPA_PLATFORM = "wayland;xcb"; + QT_QPA_PLATFORMTHEME = "gtk3"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + ELECTRON_OZONE_PLATFORM_HINT = "auto"; + DIRENV_LOG_FORMAT = ""; + SDL_VIDEODRIVER = "wayland"; + CLUTTER_BACKEND = "wayland"; + }; + + config = { + cursor.no_hardware_cursors = true; + + general = { + resize_on_border = true; + gaps_in = gaps-in; + gaps_out = gaps-out; + border_size = border-size; + layout = "master"; + col.inactive_border = lib.mkForce background; + }; + + decoration = { + active_opacity = active-opacity; + inactive_opacity = inactive-opacity; + inherit rounding; + shadow = { + enabled = true; + range = 20; + render_power = 3; + }; + blur = { + enabled = blur; + size = 18; + }; + }; + + master = { + new_status = "slave"; + allow_small_split = true; + mfact = 0.5; + }; + + misc = { + disable_hyprland_logo = true; + disable_splash_rendering = true; + disable_autoreload = true; + focus_on_activate = true; + }; + + input = { + kb_layout = keyboardLayout; + + kb_options = "caps:escape"; + follow_mouse = 1; + sensitivity = 0.0; # or whatever speed you prefer + accel_profile = "flat"; + + repeat_delay = 300; + repeat_rate = 50; + numlock_by_default = true; + + touchpad = { + natural_scroll = true; + clickfinger_behavior = true; + }; + }; + + ecosystem.no_update_news = true; + }; + + gesture = { + fingers = 3; + direction = "horizontal"; + action = "workspace"; + }; + + window_rule = [ + { + name = "suppress-maximize"; + match.class = ".*"; + suppress_event = "maximize"; + } + { + name = "helium-fullscreen"; + match.class = "helium"; + suppress_event = "fullscreen"; + sync_fullscreen = false; + } + { + name = "proton-authenticator"; + match.class = "proton-authenticator"; + float = true; + center = true; + size = [500 400]; + } + { + name = "protonvpn-app"; + match.class = "protonvpn-app"; + float = true; + center = true; + size = [500 400]; + } + { + name = "run-bg"; + match.title = "run-bg"; + float = true; + center = true; + size = [700 80]; + } ]; - - cursor = { - no_hardware_cursors = true; - default_monitor = "eDP-2"; - }; - - general = { - resize_on_border = true; - gaps_in = gaps-in; - gaps_out = gaps-out; - border_size = border-size; - layout = "master"; - "col.inactive_border" = lib.mkForce background; - }; - - decoration = { - active_opacity = active-opacity; - inactive_opacity = inactive-opacity; - rounding = rounding; - shadow = { - enabled = true; - range = 20; - render_power = 3; - }; - blur = { - enabled = - if blur - then "true" - else "false"; - size = 18; - }; - }; - - master = { - new_status = "slave"; - allow_small_split = true; - mfact = 0.5; - }; - - gesture = "3, horizontal, workspace"; - - windowrule = [ - "match:class .*, suppress_event maximize" - "match:class helium, suppress_event fullscreen" - "match:class helium, sync_fullscreen false" - - "match:class proton-authenticator, float on" - "match:class proton-authenticator, center on" - "match:class proton-authenticator, size 500 400" - - "match:class protonvpn-app, float on" - "match:class protonvpn-app, center on" - "match:class protonvpn-app, size 500 400" - - "match:title run-bg, float on" - "match:title run-bg, center on" - "match:title run-bg, size 700 80" - ]; - - misc = { - disable_hyprland_logo = true; - disable_splash_rendering = true; - disable_autoreload = true; - focus_on_activate = true; - }; - - input = { - kb_layout = keyboardLayout; - - kb_options = "caps:escape"; - follow_mouse = 1; - sensitivity = 0.0; # or whatever speed you prefer - accel_profile = "flat"; - - repeat_delay = 300; - repeat_rate = 50; - numlock_by_default = true; - - touchpad = { - natural_scroll = true; - clickfinger_behavior = true; - }; - }; - - ecosystem = { - no_update_news = true; - }; }; }; } diff --git a/home/system/hyprland/keyboard-backlight.nix b/home/system/hyprland/keyboard-backlight.nix index 53b72ca..51f439f 100644 --- a/home/system/hyprland/keyboard-backlight.nix +++ b/home/system/hyprland/keyboard-backlight.nix @@ -3,8 +3,10 @@ { pkgs, config, + lib, ... }: let + hl = import ./lib.nix {inherit lib;}; alert-when-low-battery = false; keyboard-backlight = pkgs.writeShellScriptBin "keyboard-backlight" '' function set_keyboard_backlight { @@ -40,5 +42,5 @@ command = "bash ${keyboard-backlight}/bin/keyboard-backlight &"; in { - wayland.windowManager.hyprland.settings.exec-once = [command]; + wayland.windowManager.hyprland.settings.on = hl.execOnce [command]; } diff --git a/home/system/hyprland/lib.nix b/home/system/hyprland/lib.nix new file mode 100644 index 0000000..1e4b4ae --- /dev/null +++ b/home/system/hyprland/lib.nix @@ -0,0 +1,25 @@ +# Small helpers for writing the Hyprland Lua config through home-manager's `settings` +{lib}: rec { + inherit (lib.generators) mkLuaInline; + toLua = lib.generators.toLua {}; + + # hl.dsp.exec_cmd("...") + exec = cmd: mkLuaInline "hl.dsp.exec_cmd(${toLua cmd})"; + + # hl.bind(keys, dispatcher, opts?) + bind = keys: dsp: opts: { + _args = [keys dsp] ++ lib.optional (opts != null) opts; + }; + + # Run commands once at compositor start (replacement for `exec-once`) + execOnce = cmds: [ + { + _args = [ + "hyprland.start" + (mkLuaInline '' + function() + ${lib.concatMapStrings (c: " hl.exec_cmd(${toLua c})\n") cmds}end'') + ]; + } + ]; +} diff --git a/home/system/hyprland/polkitagent.nix b/home/system/hyprland/polkitagent.nix index 221d359..448e912 100644 --- a/home/system/hyprland/polkitagent.nix +++ b/home/system/hyprland/polkitagent.nix @@ -1,6 +1,12 @@ # HyprPolkitAgent is a simple polkit agent for wayland compositors -{pkgs, ...}: { +{ + pkgs, + lib, + ... +}: let + hl = import ./lib.nix {inherit lib;}; +in { home.packages = with pkgs; [hyprpolkitagent]; - wayland.windowManager.hyprland.settings.exec-once = ["systemctl --user start hyprpolkitagent"]; + wayland.windowManager.hyprland.settings.on = hl.execOnce ["systemctl --user start hyprpolkitagent"]; } diff --git a/home/system/hyprpaper/default.nix b/home/system/hyprpaper/default.nix index be04dbd..1306469 100644 --- a/home/system/hyprpaper/default.nix +++ b/home/system/hyprpaper/default.nix @@ -1,5 +1,7 @@ # Hyprpaper is used to set the wallpaper on the system -{lib, ...}: { +{lib, ...}: let + hl = import ../hyprland/lib.nix {inherit lib;}; +in { # The wallpaper is set by stylix services.hyprpaper = { enable = true; @@ -10,7 +12,7 @@ }; systemd.user.services.hyprpaper.Unit.After = lib.mkForce "graphical-session.target"; - wayland.windowManager.hyprland.settings.exec-once = [ + wayland.windowManager.hyprland.settings.on = hl.execOnce [ "systemctl --user enable --now hyprpaper.service" ]; } diff --git a/home/system/walker/default.nix b/home/system/walker/default.nix index 78284ef..cca63c1 100644 --- a/home/system/walker/default.nix +++ b/home/system/walker/default.nix @@ -1,6 +1,10 @@ -{ pkgs, ... }: - { + pkgs, + lib, + ... +}: let + hl = import ../hyprland/lib.nix {inherit lib;}; +in { home.packages = with pkgs; [ walker elephant @@ -35,7 +39,7 @@ }; }; - wayland.windowManager.hyprland.settings.exec-once = [ + wayland.windowManager.hyprland.settings.on = hl.execOnce [ "dbus-update-activation-environment --systemd --all" "systemctl --user start elephant.service walker.service" ]; diff --git a/home/system/waybar/default.nix b/home/system/waybar/default.nix index f168144..b5a61db 100644 --- a/home/system/waybar/default.nix +++ b/home/system/waybar/default.nix @@ -7,6 +7,7 @@ let terminal = cmd: "uwsm app -- ${lib.getExe pkgs.ghostty} -e ${cmd}"; radius = toString config.theme.bar-rounding; + hl = import ../hyprland/lib.nix {inherit lib;}; in { home.packages = with pkgs; [ @@ -269,9 +270,5 @@ in } ''; - wayland.windowManager.hyprland.settings = { - exec-once = [ - "waybar" - ]; - }; + wayland.windowManager.hyprland.settings.on = hl.execOnce ["waybar"]; } diff --git a/hosts/home-pc/configuration.nix b/hosts/home-pc/configuration.nix index cf8d720..7bba700 100644 --- a/hosts/home-pc/configuration.nix +++ b/hosts/home-pc/configuration.nix @@ -1,8 +1,8 @@ {config, ...}: { imports = [ # ───────────────────────────────────────────────────────────── - # System configuration - # ───────────────────────────────────────────────────────────── + # System configuration + # ───────────────────────────────────────────────────────────── ../../nixos/audio.nix ../../nixos/docker.nix ../../nixos/bluetooth.nix @@ -16,15 +16,15 @@ ../../nixos/utils.nix ../../nixos/hyprland.nix - # ───────────────────────────────────────────────────────────── - # Graphics Card - # ───────────────────────────────────────────────────────────── - ../../nixos/amd-graphics.nix + # ───────────────────────────────────────────────────────────── + # Graphics Card + # ───────────────────────────────────────────────────────────── + ../../nixos/amd-graphics.nix - # ───────────────────────────────────────────────────────────── - # System integration for Steam - # ───────────────────────────────────────────────────────────── - ../../nixos/steam.nix + # ───────────────────────────────────────────────────────────── + # System integration for Steam + # ───────────────────────────────────────────────────────────── + ../../nixos/steam.nix # You should let those lines as is ./hardware-configuration.nix @@ -33,7 +33,7 @@ programs.nix-ld.enable = true; #Dynamic Linking home-manager.users."${config.var.username}" = import ./home.nix; - services.flatpak.enable = true; + services.flatpak.enable = true; # Don't touch this system.stateVersion = "24.05"; } diff --git a/hosts/home-pc/flake.nix b/hosts/home-pc/flake.nix index 28da1a5..5c8c148 100644 --- a/hosts/home-pc/flake.nix +++ b/hosts/home-pc/flake.nix @@ -3,7 +3,6 @@ nixpkgs, ... }: - nixpkgs.lib.nixosSystem { modules = [ { @@ -13,19 +12,16 @@ nixpkgs.lib.nixosSystem { }; } - ({ config, pkgs, lib, ... }: { + ({ + config, + pkgs, + lib, + ... + }: { + # ───────────────────────────────────────────────────────────── + # AMD Microcode # ───────────────────────────────────────────────────────────── - # AMD Microcode - # ───────────────────────────────────────────────────────────── hardware.cpu.amd.updateMicrocode = true; - - # ───────────────────────────────────────────────────────────── - # Hardware accelaration - # ───────────────────────────────────────────────────────────── - hardware.graphics = { - enable = true; - enable32Bit = true; - }; }) inputs.home-manager.nixosModules.home-manager diff --git a/hosts/home-pc/home.nix b/hosts/home-pc/home.nix index 6779c95..9fa7473 100644 --- a/hosts/home-pc/home.nix +++ b/hosts/home-pc/home.nix @@ -15,19 +15,19 @@ ../../home/programs/spotatui ../../home/programs/yazi - # ───────────────────────────────────────────────────────────── + # ───────────────────────────────────────────────────────────── # Gaming # ───────────────────────────────────────────────────────────── - ../../home/programs/steam + ../../home/programs/steam ../../home/programs/star-citizen - # ───────────────────────────────────────────────────────────── + # ───────────────────────────────────────────────────────────── # Groups # ───────────────────────────────────────────────────────────── ../../home/programs/group/basic-apps.nix ../../home/programs/group/dev.nix ../../home/programs/group/misc.nix - ../../home/programs/group/gaming-apps.nix + ../../home/programs/group/gaming-apps.nix ../../home/programs/group/music-apps.nix # ───────────────────────────────────────────────────────────── @@ -46,7 +46,7 @@ home = { inherit (config.var) username; homeDirectory = "/home/" + config.var.username; - file.".face" = { + file.".face" = { source = ./profile_picture.jpg; }; @@ -55,8 +55,18 @@ }; wayland.windowManager.hyprland.settings.monitor = [ - "DP-3,1920x1080@144.0,1920x0,1.0" - "HDMI-A-1,1920x1080@60.0,0x0,1.0" + { + output = "DP-3"; + mode = "1920x1080@144.0"; + position = "1920x0"; + scale = 1; + } + { + output = "HDMI-A-1"; + mode = "1920x1080@60.0"; + position = "0x0"; + scale = 1; + } ]; programs = { diff --git a/hosts/home-pc/variables.nix b/hosts/home-pc/variables.nix index 679641d..ac181f4 100644 --- a/hosts/home-pc/variables.nix +++ b/hosts/home-pc/variables.nix @@ -11,7 +11,7 @@ config.var = { hostname = "home-pc"; username = "andi"; - configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory + configDirectory = "/etc/nixos/nixy"; # The path of the nixos configuration directory keyboardLayout = "de"; @@ -21,7 +21,7 @@ git = { username = "kptltd00m"; - email = "kptltd00m.doomlabs.de"; + email = "kptltd00m@doomlabs.de"; }; autoUpgrade = false; diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 0fdd732..3d8f3bd 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -1,33 +1,32 @@ -{ config, ... }: { - imports = [ - # ───────────────────────────────────────────────────────────── - # System configuration - # ───────────────────────────────────────────────────────────── - ../../nixos/audio.nix - ../../nixos/bluetooth.nix - ../../nixos/fonts.nix - ../../nixos/home-manager.nix - ../../nixos/nix.nix - ../../nixos/systemd-boot.nix - ../../nixos/tuigreet.nix - ../../nixos/users.nix - ../../nixos/utils.nix - ../../nixos/hyprland.nix +{config, ...}: { + imports = [ + # ───────────────────────────────────────────────────────────── + # System configuration + # ───────────────────────────────────────────────────────────── + ../../nixos/audio.nix + ../../nixos/bluetooth.nix + ../../nixos/fonts.nix + ../../nixos/home-manager.nix + ../../nixos/nix.nix + ../../nixos/systemd-boot.nix + ../../nixos/tuigreet.nix + ../../nixos/users.nix + ../../nixos/utils.nix + ../../nixos/hyprland.nix - # ───────────────────────────────────────────────────────────── - # System integration for Steam - # ───────────────────────────────────────────────────────────── - ../../nixos/steam.nix + # ───────────────────────────────────────────────────────────── + # System integration for Steam + # ───────────────────────────────────────────────────────────── + ../../nixos/steam.nix - # You should let those lines as is - ./hardware-configuration.nix - ./variables.nix + # You should let those lines as is + ./hardware-configuration.nix + ./variables.nix + ]; - ]; - - programs.nix-ld.enable = true; #Dynamic Linking - home-manager.users."${config.var.username}" = import ./home.nix; - services.flatpak.enable = true; - # Don't touch this - system.stateVersion = "24.05"; + programs.nix-ld.enable = true; #Dynamic Linking + home-manager.users."${config.var.username}" = import ./home.nix; + services.flatpak.enable = true; + # Don't touch this + system.stateVersion = "24.05"; } diff --git a/hosts/laptop/home.nix b/hosts/laptop/home.nix index 783ad02..a4da732 100644 --- a/hosts/laptop/home.nix +++ b/hosts/laptop/home.nix @@ -16,12 +16,12 @@ ../../home/programs/yazi ../../home/programs/zen - # ───────────────────────────────────────────────────────────── + # ───────────────────────────────────────────────────────────── # Gaming # ───────────────────────────────────────────────────────────── - ../../home/programs/steam + ../../home/programs/steam - # ───────────────────────────────────────────────────────────── + # ───────────────────────────────────────────────────────────── # Groups # ───────────────────────────────────────────────────────────── ../../home/programs/group/basic-apps.nix @@ -60,7 +60,13 @@ }; wayland.windowManager.hyprland.settings.monitor = [ - "eDP-1,1920x1080,0x0,1.5" # My internal laptop screen + # My internal laptop screen + { + output = "eDP-1"; + mode = "1920x1080"; + position = "0x0"; + scale = 1.5; + } ]; programs = { diff --git a/hosts/laptop/variables.nix b/hosts/laptop/variables.nix index 32f49cc..ebbf626 100644 --- a/hosts/laptop/variables.nix +++ b/hosts/laptop/variables.nix @@ -11,7 +11,7 @@ config.var = { hostname = "thinkpad"; username = "andi"; - configDirectory = "/home/" + config.var.username + "/.config/nixos"; # The path of the nixos configuration directory + configDirectory = "/etc/nixos/nixy"; # The path of the nixos configuration directory keyboardLayout = "de"; diff --git a/hosts/server/configuration.nix b/hosts/server/configuration.nix index 4f2be5c..7d23166 100644 --- a/hosts/server/configuration.nix +++ b/hosts/server/configuration.nix @@ -15,15 +15,12 @@ ../../server-modules/glance ../../server-modules/adguardhome.nix ../../server-modules/arr.nix - ../../server-modules/blog.nix - ../../server-modules/awesome-wallpapers.nix ../../server-modules/iknowyou.nix ../../server-modules/stirling-pdf.nix ../../server-modules/cyberchef.nix ../../server-modules/mazanoke.nix ../../server-modules/kernel-hardening.nix ../../server-modules/fail2ban.nix - ../../server-modules/default-creds.nix ../../server-modules/umami.nix ../../server-modules/gitea.nix ../../server-modules/mealie.nix diff --git a/hosts/server/flake.nix b/hosts/server/flake.nix index f4a3df3..fe6b3a4 100644 --- a/hosts/server/flake.nix +++ b/hosts/server/flake.nix @@ -11,7 +11,6 @@ nixpkgs.lib.nixosSystem { inputs.sops-nix.nixosModules.sops inputs.nixarr.nixosModules.default inputs.nix-index-database.nixosModules.default - inputs.default-creds.nixosModules.default ./configuration.nix ]; } diff --git a/hosts/work/home.nix b/hosts/work/home.nix index 3f7887d..158181f 100644 --- a/hosts/work/home.nix +++ b/hosts/work/home.nix @@ -41,7 +41,12 @@ }; wayland.windowManager.hyprland.settings.monitor = [ - "desc:Philips Consumer Electronics Company PHL 221B8L ZV02144013987,highres,0x0,1" + { + output = "desc:Philips Consumer Electronics Company PHL 221B8L ZV02144013987"; + mode = "highres"; + position = "0x0"; + scale = 1; + } ]; programs = { diff --git a/hosts/work/secrets/default.nix b/hosts/work/secrets/default.nix index 093d5f0..9860801 100644 --- a/hosts/work/secrets/default.nix +++ b/hosts/work/secrets/default.nix @@ -4,8 +4,10 @@ inputs, pkgs, config, + lib, ... }: let + hl = import ../../../home/system/hyprland/lib.nix {inherit lib;}; home = config.home.homeDirectory; in { imports = [inputs.sops-nix.homeManagerModules.sops]; @@ -54,5 +56,5 @@ in { age ]; - wayland.windowManager.hyprland.settings.exec-once = ["systemctl --user start sops-nix"]; + wayland.windowManager.hyprland.settings.on = hl.execOnce ["systemctl --user start sops-nix"]; } diff --git a/nixos/utils.nix b/nixos/utils.nix index 60abc8b..59f6be4 100644 --- a/nixos/utils.nix +++ b/nixos/utils.nix @@ -77,7 +77,7 @@ in { enable = true; implementation = "broker"; packages = with pkgs; [ - gcr + gcr_4 gnome-settings-daemon ]; }; @@ -144,8 +144,5 @@ in { # userland niceness rtkit.enable = true; - - # don't ask for password for wheel group - sudo.wheelNeedsPassword = false; }; } diff --git a/server-modules/awesome-wallpapers.nix b/server-modules/awesome-wallpapers.nix deleted file mode 100644 index b3dd75b..0000000 --- a/server-modules/awesome-wallpapers.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ - config, - inputs, - lib, - ... -}: let - inherit (import ./mk-container.nix {inherit lib config;}) mkContainer; -in { - imports = [ - (mkContainer { - name = "wallpapers"; - hostIp = "10.233.4.1"; - containerIp = "10.233.4.2"; - nixosConfig = {pkgs, ...}: { - services.nginx = { - enable = true; - virtualHosts."wallpapers" = { - root = "${inputs.awesome-wallpapers.packages.${pkgs.stdenv.hostPlatform.system}.default}/share/awesome-wallpapers"; - listen = [ - { - addr = "0.0.0.0"; - port = 8080; - } - ]; - locations."/" = { - tryFiles = "$uri $uri/ /index.html"; - }; - extraConfig = '' - port_in_redirect off; - absolute_redirect off; - ''; - }; - }; - networking.firewall.allowedTCPPorts = [8080]; - system.stateVersion = "24.05"; - }; - }) - ]; - - services.cloudflared.tunnels."${config.var.tunnelId}".ingress."wallpapers.${config.var.domain}" = "http://10.233.4.2:8080"; -} diff --git a/server-modules/blog.nix b/server-modules/blog.nix deleted file mode 100644 index 33c9618..0000000 --- a/server-modules/blog.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ - config, - inputs, - lib, - ... -}: let - inherit (import ./mk-container.nix {inherit lib config;}) mkContainer; - domain = config.var.domain; -in { - imports = [ - (mkContainer { - name = "blog"; - hostIp = "10.233.3.1"; - containerIp = "10.233.3.2"; - nixosConfig = {pkgs, ...}: { - services.nginx = { - enable = true; - virtualHosts = { - "blog" = { - root = "${inputs.blog.packages.${pkgs.stdenv.hostPlatform.system}.default}/share/blog"; - listen = [ - { - addr = "0.0.0.0"; - port = 8080; - } - ]; - locations."/" = { - tryFiles = "$uri $uri/ =404"; - }; - extraConfig = '' - port_in_redirect off; - absolute_redirect off; - error_page 403 /403.html; - error_page 404 /404.html; - error_page 500 /500.html; - error_page 503 /503.html; - add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' data: https://umami.${domain}; style-src 'self' 'unsafe-inline'; img-src 'self' data: https://git.${domain}; connect-src 'self' https://umami.${domain};" always; - add_header X-Frame-Options "SAMEORIGIN" always; - add_header X-Content-Type-Options "nosniff" always; - add_header Permissions-Policy "camera=(), microphone=(), geolocation=()" always; - ''; - }; - "www-redirect" = { - listen = [ - { - addr = "0.0.0.0"; - port = 8081; - } - ]; - extraConfig = "return 301 https://${domain}$request_uri;"; - }; - }; - }; - networking.firewall.allowedTCPPorts = [ - 8080 - 8081 - ]; - system.stateVersion = "24.05"; - }; - }) - ]; - - services.cloudflared.tunnels."${config.var.tunnelId}".ingress = { - "${config.var.domain}" = "http://10.233.3.2:8080"; - "www.${config.var.domain}" = "http://10.233.3.2:8081"; - }; -} diff --git a/server-modules/default-creds.nix b/server-modules/default-creds.nix deleted file mode 100644 index 297baaf..0000000 --- a/server-modules/default-creds.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ - config, - inputs, - lib, - ... -}: let - inherit (import ./mk-container.nix {inherit lib config;}) mkContainer; - domain = config.var.domain; -in { - imports = [ - (mkContainer { - name = "def-creds"; - hostIp = "10.233.6.1"; - containerIp = "10.233.6.2"; - nixosConfig = {...}: { - imports = [inputs.default-creds.nixosModules.default]; - services.default-creds = { - enable = true; - port = 8087; - }; - networking.firewall.allowedTCPPorts = [8087]; - systemd.services.default-creds.environment = { - HOST = lib.mkForce "0.0.0.0"; - PUBLIC_UMAMI_URL = "https://umami.${domain}"; - PUBLIC_UMAMI_WEBSITE_ID = "7197484c-01ad-488e-9caa-5ab7b7595f08"; - UMAMI_URL = "https://umami.${domain}"; - UMAMI_WEBSITE_ID = "7197484c-01ad-488e-9caa-5ab7b7595f08"; - }; - system.stateVersion = "24.05"; - }; - }) - ]; - - services.default-creds.enable = lib.mkForce false; - services.cloudflared.tunnels."${config.var.tunnelId}".ingress."default-creds.${config.var.domain}" = "http://10.233.6.2:8087"; -} diff --git a/server-modules/glance/server.nix b/server-modules/glance/server.nix index 79584c1..ff08693 100644 --- a/server-modules/glance/server.nix +++ b/server-modules/glance/server.nix @@ -33,11 +33,6 @@ url = "https://adguard.${domain}"; icon = "si:adguard"; } - { - title = "Blog"; - url = "https://${domain}"; - icon = "si:blogger"; - } { title = "Gitea"; url = "https://git.${domain}"; @@ -63,11 +58,6 @@ url = "https://iknowyou-prod.${domain}"; icon = "sh:iknowyou"; } - { - title = "Wallpapers"; - url = "https://wallpapers.${domain}"; - icon = "si:unsplash"; - } { title = "Mazanoke"; url = "https://mazanoke.${domain}"; @@ -78,11 +68,6 @@ url = "https://pdf.${domain}"; icon = "sh:stirling-pdf"; } - { - title = "Default-creds"; - url = "https://default-creds.${domain}"; - icon = "si:passbolt"; - } { title = "Cyberchef"; url = "https://cyberchef.${domain}";