diff --git a/flake.lock b/flake.lock index d80729b..a0559ea 100644 --- a/flake.lock +++ b/flake.lock @@ -78,11 +78,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1762174035, - "narHash": "sha256-I5AEdZ17rUUvOK9KDD7KgcPhiYvsZwt5UYcx4ZU/lhg=", + "lastModified": 1762735459, + "narHash": "sha256-VZRCyMRSLFORBzH+pYzDSx/ooIBD5Ohrv28sWktSiqk=", "owner": "HeitorAugustoLN", "repo": "betterfox-nix", - "rev": "9505c7f12d01462782eeb46686677f11a4b998e5", + "rev": "37ac3490a7e2825985ce5c0004489b2264ea1cd0", "type": "github" }, "original": { @@ -100,11 +100,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1762233483, - "narHash": "sha256-7xrOMk264pHNe1EC55k+Q4KX+pebIepNIPAsqXCgnGk=", + "lastModified": 1762741551, + "narHash": "sha256-m37GDrMOQWwB+QUpispta1ZCVLpV4keBlPoEu1tPGb0=", "owner": "chaotic-cx", "repo": "nyx", - "rev": "035a14f12abe016db315413480fb913196c4ed14", + "rev": "438c8d1c8cd61df1227e280a2e6114423494a5ab", "type": "github" }, "original": { @@ -194,11 +194,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1762359868, - "narHash": "sha256-FKn8KF2UNbxZIQJ09VitZ/16E8toZN4gM+qqljVf45E=", + "lastModified": 1762766112, + "narHash": "sha256-Rir5cR/b9c0q257IW9g1Kjcx4qNb1hJJhPfDJ/lj2pc=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "e828183cf33679f67da737218bb7a3b5ab89a5dd", + "rev": "66d20d181a2f42ad4878e8557ae8bdd2ba9482c4", "type": "github" }, "original": { @@ -217,11 +217,11 @@ ] }, "locked": { - "lastModified": 1762359868, - "narHash": "sha256-FKn8KF2UNbxZIQJ09VitZ/16E8toZN4gM+qqljVf45E=", + "lastModified": 1762763403, + "narHash": "sha256-O7DYpoDsRjWEdn2bBP0m6as8br/fqZnxjIUqIsxb3Fc=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "e828183cf33679f67da737218bb7a3b5ab89a5dd", + "rev": "722ba5c4d7b5fcaed65b18b25f7f572fc4236791", "type": "github" }, "original": { @@ -286,11 +286,11 @@ ] }, "locked": { - "lastModified": 1762040540, - "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=", + "lastModified": 1762440070, + "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "0010412d62a25d959151790968765a70c436598b", + "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", "type": "github" }, "original": { @@ -364,11 +364,11 @@ "nixpkgs-lib": "nixpkgs-lib_2" }, "locked": { - "lastModified": 1762040540, - "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=", + "lastModified": 1762440070, + "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "0010412d62a25d959151790968765a70c436598b", + "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", "type": "github" }, "original": { @@ -385,11 +385,11 @@ ] }, "locked": { - "lastModified": 1762040540, - "narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=", + "lastModified": 1762440070, + "narHash": "sha256-xxdepIcb39UJ94+YydGP221rjnpkDZUlykKuF54PsqI=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "0010412d62a25d959151790968765a70c436598b", + "rev": "26d05891e14c88eb4a5d5bee659c0db5afb609d8", "type": "github" }, "original": { @@ -559,17 +559,15 @@ }, "helix": { "inputs": { - "nixpkgs": [ - "nixpkgs" - ], + "nixpkgs": "nixpkgs_3", "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1762352939, - "narHash": "sha256-yYFrlLL3UCyWfZOMnoAtUzS3BB8gk2KpEnl0vHQvkfM=", + "lastModified": 1762716787, + "narHash": "sha256-YfcY28igFL5ZPCTtVBaVUvnhcWg8tyiBVSlULpXEIeQ=", "owner": "helix-editor", "repo": "helix", - "rev": "3f4a286c8dc586d3261bfba3cb2ec3fad5c36efe", + "rev": "a79292b630ae4a0e6e37814ad21411ab50926c73", "type": "github" }, "original": { @@ -587,11 +585,11 @@ ] }, "locked": { - "lastModified": 1762146130, - "narHash": "sha256-/XOEA0a61fZ45i/BpaSsyLNNbw/yKwjMbkB/IWSGLzU=", + "lastModified": 1762661401, + "narHash": "sha256-SVmijc8t23UMwru5f/9X1Ak5bSwvYkm0OQ5SxR7hOB0=", "owner": "nix-community", "repo": "home-manager", - "rev": "b5ed4afc2277339bdf0e9edf59befff7350cf075", + "rev": "c053d701d64f0727f62e0269c7940da5805bc9bc", "type": "github" }, "original": { @@ -607,11 +605,11 @@ ] }, "locked": { - "lastModified": 1762463325, - "narHash": "sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU=", + "lastModified": 1762721397, + "narHash": "sha256-E428EuouA4nFTNlLuqlL4lVR78X+EbBIqDqsBFnB79w=", "owner": "nix-community", "repo": "home-manager", - "rev": "0562fef070a1027325dd4ea10813d64d2c967b39", + "rev": "b8645b18b0f5374127bbade6de7381ef0b3d5720", "type": "github" }, "original": { @@ -622,11 +620,11 @@ }, "import-tree": { "locked": { - "lastModified": 1761120675, - "narHash": "sha256-TEbh9zISiQcU82VwVoEbmXHnSGlUxTwvjJA9g9ErSDA=", + "lastModified": 1762327901, + "narHash": "sha256-AJ96FNj50DU0bTyIzAPkPOjCZTHqjURVjok8qoXvmqM=", "owner": "vic", "repo": "import-tree", - "rev": "a037ed2a58fc0ebed9e93b9ef79b0646e648f719", + "rev": "90fa129798be99cde036b78658e89475710966a1", "type": "github" }, "original": { @@ -672,11 +670,11 @@ ] }, "locked": { - "lastModified": 1761748321, - "narHash": "sha256-hD5mVzmUeyVppjArdy2uVdQe/CQUR9i3WgZB05onE7A=", + "lastModified": 1762452596, + "narHash": "sha256-Iaga+mkwWnWa6FxsAYknpHzeP344VCKGkdudX420LgA=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "533db5857c9e00ca352558a928417116ee08a824", + "rev": "99919fd35e70c1b18ce948d5329928d751031312", "type": "github" }, "original": { @@ -690,7 +688,7 @@ "crane": "crane", "flake-compat": "flake-compat_2", "flake-parts": "flake-parts_3", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "pre-commit-hooks-nix": "pre-commit-hooks-nix", "rust-overlay": "rust-overlay_3" }, @@ -752,14 +750,14 @@ "inputs": { "flake-parts": "flake-parts_4", "neovim-src": "neovim-src", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1762473887, - "narHash": "sha256-4VHnHYQGQ8K+i5slfTwnpyP12hi7mq0V4Wra6EB3k5A=", + "lastModified": 1762733080, + "narHash": "sha256-kgGO0tdvFChcUk3KXHwqrvKfY1Td3i4EehtE2xsch8s=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "52fab1d59b4bc5a4d11a1c7f8cdfb47412ff8572", + "rev": "383208e4ec49f9eb568d25fd9f5efa0625873e59", "type": "github" }, "original": { @@ -771,11 +769,11 @@ "neovim-src": { "flake": false, "locked": { - "lastModified": 1762421241, - "narHash": "sha256-sRgrLaZ1XOAxAKq0iENJVmVj/X7jhAd99x25+OKbxLc=", + "lastModified": 1762729645, + "narHash": "sha256-QnSYFDWlfQAtPWLtOY7Ab3SipYC5l27eCCJKX0i8jkY=", "owner": "neovim", "repo": "neovim", - "rev": "f2bfde9140ca646db3e2b67b97b1e54b70408703", + "rev": "76fdd9b882489b233ca00a0809d719c70e48b164", "type": "github" }, "original": { @@ -796,11 +794,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1762492910, - "narHash": "sha256-XFsC9zakODOSU15VUvz61SI7EBR0WkMQJ+HU8OeVhdI=", + "lastModified": 1762752888, + "narHash": "sha256-46uhRb9nooRZATUb2dya58MPzn6i/o1XFWvslW+AUMo=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "ba50ee8656c5808cb945d08a3858cde049fa77f8", + "rev": "fbe8bfd6050d7c3acc795095ba97643cb7b4b475", "type": "github" }, "original": { @@ -829,11 +827,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1762146685, - "narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=", + "lastModified": 1762492604, + "narHash": "sha256-cjXYF5+gGaapr6d1Jz70GZQVzK4qzwDUwU86p9+H2mM=", "owner": "YaLTeR", "repo": "niri", - "rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943", + "rev": "2144f9a6ae7b675213f9bd86d0989c334baa1c00", "type": "github" }, "original": { @@ -852,11 +850,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1762418669, - "narHash": "sha256-y80u5pGLXbhD72il0s/x9IwIzIlCoTyCmBKLROs8Rbw=", + "lastModified": 1762769782, + "narHash": "sha256-wNOnbHeEfvXaesvQofkHKgfmZOFHSG65dIfmpRK5E3I=", "owner": "marienz", "repo": "nix-doom-emacs-unstraightened", - "rev": "6a76389b304a33d05c28999cadfcb90c944b85c8", + "rev": "c7fd9e387155b5f59de591d473bbcc58b56ab369", "type": "github" }, "original": { @@ -868,14 +866,14 @@ "nix-gaming": { "inputs": { "flake-parts": "flake-parts_5", - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1762480511, - "narHash": "sha256-NIFQhQG7quJiysxPNP7k/3rRMaRKSL2x8qR8jjvk6yk=", + "lastModified": 1762740007, + "narHash": "sha256-CtMgV9vfm16x/0NBQmQQe/Vbv423cPWeNfBtiVYcUBk=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "cf716e9b2f0fda1b1809156121037f646815eb26", + "rev": "8dce0b23e30b03efbdc94e8db7cb27298446e4cc", "type": "github" }, "original": { @@ -918,11 +916,11 @@ ] }, "locked": { - "lastModified": 1759653262, - "narHash": "sha256-uTiQXY/ZlplEq1j2jH0k6oDzldid0xHgnLsLQyRRbvk=", + "lastModified": 1762651903, + "narHash": "sha256-2gdNl8glUCVf8EBmITIgEavrHT8bWshA8FgV4Ci5LAc=", "owner": "nix-community", "repo": "nix4nvchad", - "rev": "9d91858966b5d4e87ee52e16993988dfea9b0f94", + "rev": "b671afe8a4974ad70c32de470bc98f8ccea36396", "type": "github" }, "original": { @@ -949,11 +947,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", + "lastModified": 1762596750, + "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", + "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", "type": "github" }, "original": { @@ -1011,11 +1009,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1762233356, - "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=", + "lastModified": 1762498405, + "narHash": "sha256-Zg/SCgCaAioc0/SVZQJxuECGPJy+OAeBcGeA5okdYDc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8", + "rev": "6faeb062ee4cf4f105989d490831713cc5a43ee1", "type": "github" }, "original": { @@ -1027,11 +1025,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1762233356, - "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=", + "lastModified": 1762498405, + "narHash": "sha256-Zg/SCgCaAioc0/SVZQJxuECGPJy+OAeBcGeA5okdYDc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8", + "rev": "6faeb062ee4cf4f105989d490831713cc5a43ee1", "type": "github" }, "original": { @@ -1041,119 +1039,7 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1762111121, - "narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1754243818, - "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "c460617dfb709a67d18bb31e15e455390ee4ee1c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable-small", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1762361079, - "narHash": "sha256-lz718rr1BDpZBYk7+G8cE6wee3PiBUpn8aomG/vLLiY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ffcdcf99d65c61956d882df249a9be53e5902ea5", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1761880412, - "narHash": "sha256-QoJjGd4NstnyOG4mm4KXF+weBzA2AH/7gn1Pmpfcb0A=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a7fc11be66bdfb5cdde611ee5ce381c183da8386", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1762363567, - "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1762156382, - "narHash": "sha256-Yg7Ag7ov5+36jEFC1DaZh/12SEXo6OO3/8rqADRxiqs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "7241bcbb4f099a66aafca120d37c65e8dda32717", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1762363567, - "narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { + "nixpkgs_10": { "locked": { "lastModified": 1761236834, "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", @@ -1169,19 +1055,147 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1762596750, + "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1762596750, + "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { + "lastModified": 1754243818, + "narHash": "sha256-sEPw2W01UPf0xNGnMGNZIaE1XHkk7O+lLLetYEXVZHk=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c460617dfb709a67d18bb31e15e455390ee4ee1c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_5": { + "locked": { + "lastModified": 1762482733, + "narHash": "sha256-g/da4FzvckvbiZT075Sb1/YDNDr+tGQgh4N8i5ceYMg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e1ebeec86b771e9d387dd02d82ffdc77ac753abc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_6": { + "locked": { + "lastModified": 1762361079, + "narHash": "sha256-lz718rr1BDpZBYk7+G8cE6wee3PiBUpn8aomG/vLLiY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ffcdcf99d65c61956d882df249a9be53e5902ea5", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_7": { + "locked": { + "lastModified": 1762596750, + "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_8": { + "locked": { + "lastModified": 1762482733, + "narHash": "sha256-g/da4FzvckvbiZT075Sb1/YDNDr+tGQgh4N8i5ceYMg=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e1ebeec86b771e9d387dd02d82ffdc77ac753abc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_9": { + "locked": { + "lastModified": 1762596750, + "narHash": "sha256-rXXuz51Bq7DHBlfIjN7jO8Bu3du5TV+3DSADBX7/9YQ=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "b6a8526db03f735b89dd5ff348f53f752e7ddc8e", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "nixvim": { "inputs": { "flake-parts": "flake-parts_6", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "nuschtosSearch": "nuschtosSearch", "systems": "systems_6" }, "locked": { - "lastModified": 1762473729, - "narHash": "sha256-0mKCvL4MUuraS3dVFgRETOM96t0n68J851gZ0HK8U1k=", + "lastModified": 1762691346, + "narHash": "sha256-dyYnqvYrgViB22inBqNern/XSWtOiweP8NTfJQJeTis=", "owner": "nix-community", "repo": "nixvim", - "rev": "f0dceb449af35c83a0e2bf23c71f50fc61aff42f", + "rev": "faf1fb4b7cd069ce44469e45c3259b7bcf106f81", "type": "github" }, "original": { @@ -1190,17 +1204,41 @@ "type": "github" } }, + "noctalia": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "quickshell": [ + "quickshell" + ], + "systems": "systems_7" + }, + "locked": { + "lastModified": 1762823933, + "narHash": "sha256-1/WhEHJCYxXOh+fHL3izqir0h9rAn+V3zfnS+kGiMyk=", + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "rev": "d59299798fe8298ad5d0467c9096a6b1ee2d6133", + "type": "github" + }, + "original": { + "owner": "noctalia-dev", + "repo": "noctalia-shell", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": "flake-parts_7", - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1762490224, - "narHash": "sha256-2wsVxoPC2T3d7FMd0oPtdoxe5YM+KUdC28AswkwXAaI=", + "lastModified": 1762770405, + "narHash": "sha256-HJo5R+/+LOhALb8PF16YaR983+HscBgMAJKUaVfNhik=", "owner": "nix-community", "repo": "NUR", - "rev": "4318ccbc77e8db38d8c81bbbb0215962091a4e0e", + "rev": "552b8fe95b4befc7078b9d6c971b65989657c158", "type": "github" }, "original": { @@ -1299,6 +1337,26 @@ "type": "github" } }, + "quickshell": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1761897390, + "narHash": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=", + "owner": "outfoxxed", + "repo": "quickshell", + "rev": "fc704e6b5d445899a1565955268c91942a4f263f", + "type": "github" + }, + "original": { + "owner": "outfoxxed", + "repo": "quickshell", + "type": "github" + } + }, "root": { "inputs": { "betterfox-nix": "betterfox-nix", @@ -1318,11 +1376,13 @@ "nix-gaming": "nix-gaming", "nix4nvchad": "nix4nvchad", "nixos-hardware": "nixos-hardware", - "nixpkgs": "nixpkgs_6", + "nixpkgs": "nixpkgs_7", "nixpkgs-455083": "nixpkgs-455083", "nixvim": "nixvim", + "noctalia": "noctalia", "nur": "nur", "nvchad-starter": "nvchad-starter", + "quickshell": "quickshell", "sops-nix": "sops-nix", "spacemacs": "spacemacs", "stylix": "stylix", @@ -1337,11 +1397,11 @@ ] }, "locked": { - "lastModified": 1762137611, - "narHash": "sha256-sTqb10FR/YQCuGbw16qxliX0NFlYg6evSEjN8w+9IYE=", + "lastModified": 1762655942, + "narHash": "sha256-hOM12KcQNQALrhB9w6KJmV5hPpm3GA763HRe9o7JUiI=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "3a0ebe5d2965692f990cb27e62f501ad35e3deeb", + "rev": "6ac961b02d4235572692241e333d0470637f5492", "type": "github" }, "original": { @@ -1399,11 +1459,11 @@ ] }, "locked": { - "lastModified": 1760998189, - "narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", + "lastModified": 1762659808, + "narHash": "sha256-2Kv2mANf+FRisqhpfeZ8j9firBxb23ZvEXwdcunbpGI=", "owner": "Mic92", "repo": "sops-nix", - "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", + "rev": "524312bc62e3f34bd9231a2f66622663d3355133", "type": "github" }, "original": { @@ -1415,11 +1475,11 @@ "spacemacs": { "flake": false, "locked": { - "lastModified": 1762463183, - "narHash": "sha256-yX7Y447SV3ww5QciuUlaGFZEj5yEhZyOoYFa0rdKw3A=", + "lastModified": 1762718507, + "narHash": "sha256-lSVUv72H0OzK36JRiYS7+unR0TWgr8ftqhpXW44GszE=", "owner": "syl20bnr", "repo": "spacemacs", - "rev": "3b82bf591e735d5ad31467fae55eb85585f6aba3", + "rev": "6043d1a231f6b07c7029b28a3e2e791ff881ad3e", "type": "github" }, "original": { @@ -1443,7 +1503,7 @@ "nixpkgs" ], "nur": "nur_2", - "systems": "systems_7", + "systems": "systems_8", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -1569,6 +1629,21 @@ "type": "github" } }, + "systems_8": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-foot": { "flake": false, "locked": { @@ -1652,7 +1727,7 @@ }, "treefmt-nix": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1762410071, @@ -1688,11 +1763,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1762488100, - "narHash": "sha256-pD8YqwP0/irHWzJtVElnVljR+OaJPAVbJBwqix+uB5A=", + "lastModified": 1762747449, + "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "3cd3edffe1be197326e9314816b16bb4e3d685b1", + "rev": "6338574bc5c036487486acde264f38f39ea15fad", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 803014f..b191e4a 100644 --- a/flake.nix +++ b/flake.nix @@ -65,9 +65,6 @@ owner = "helix-editor"; repo = "helix"; ref = "master"; - inputs = { - nixpkgs.follows = "nixpkgs"; - }; }; home-manager = { @@ -228,5 +225,21 @@ owner = "fufexan"; repo = "nix-gaming"; }; + + quickshell = { + type = "github"; + owner = "outfoxxed"; + repo = "quickshell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + noctalia = { + type = "github"; + owner = "noctalia-dev"; + repo = "noctalia-shell"; + inputs = { + nixpkgs.follows = "nixpkgs"; + quickshell.follows = "quickshell"; + }; + }; }; } diff --git a/home/david/modules/programs/niri/config.nix b/home/david/modules/programs/niri/config.nix index 0279482..f038743 100644 --- a/home/david/modules/programs/niri/config.nix +++ b/home/david/modules/programs/niri/config.nix @@ -1,515 +1,513 @@ { config, - pkgs, lib, inputs, - osConfig ? (throw "Trying to access osConfig, the home-manager module is not being used in the nixos module"), ... }: { - config.david.programs.niri.config = let - inherit (lib) getExe getExe'; - inherit - (inputs.niri-flake.lib.kdl) - # node with args, props and children - # node:: \lambda name -> [argOrProp] -> [child] -> Output - # arg: single value - # prop: attr contains one or more key-value pair - # children: node - node - # node without children - # leaf:: \lambda name -> [argOrProp] -> Output - leaf - # node only name - # flag:: \lambda name -> Output - flag - # node without args/props - # plain:: \lambda name -> [child] -> Output - plain - ; + config.david.programs.niri.config = + let + inherit (lib) getExe; + inherit + (inputs.niri-flake.lib.kdl) + # node with args, props and children + # node:: \lambda name -> [argOrProp] -> [child] -> Output + # arg: single value + # prop: attr contains one or more key-value pair + # children: node + node + # node without children + # leaf:: \lambda name -> [argOrProp] -> Output + leaf + # node only name + # flag:: \lambda name -> Output + flag + # node without args/props + # plain:: \lambda name -> [child] -> Output + plain + ; - swaylock = getExe config.programs.swaylock.package; - fuzzel = getExe config.programs.fuzzel.package; - waybar = getExe config.programs.waybar.package; - swaync = getExe config.services.swaync.package; - fcitx5 = lib.getExe' osConfig.i18n.inputMethod.package "fcitx5"; + # swaylock = getExe config.programs.swaylock.package; + # fuzzel = getExe config.programs.fuzzel.package; + # waybar = getExe config.programs.waybar.package; + # swaync = getExe config.services.swaync.package; - polkit-kde-agent = getExe' pkgs.kdePackages.polkit-kde-agent-1 "polkit-kde-agent"; - wpctl = getExe' pkgs.wireplumber "wpctl"; - waypaper = getExe pkgs.waypaper; - default-terminal = getExe config.programs.ghostty.package; - wl-paste = getExe' pkgs.wl-clipboard "wl-paste"; - cliphist = getExe' pkgs.cliphist "cliphist"; - cliphist-fuzzel-img = getExe' pkgs.cliphist "cliphist-fuzzel-img"; - wl-clip-persist = getExe pkgs.wl-clip-persist; - in - ( - let - spawn = leaf "spawn"; - in [ - (plain "binds" [ - (plain "Mod+V" [ - (spawn [cliphist-fuzzel-img]) - ]) - (plain "Mod+Shift+P" [ - (spawn [ - swaylock - "--screenshots" - "--clock" - "--indicator" - "--indicator-radius" - "100" - "--indicator-thickness" - "7" - "--effect-blur" - "7x5" - "--effect-vignette" - "0.5:0.5" - "--grace" - "2" - "--fade-in" - "0.5" + # wpctl = getExe' pkgs.wireplumber "wpctl"; + # waypaper = getExe pkgs.waypaper; + default-terminal = getExe config.programs.ghostty.package; + # wl-paste = getExe' pkgs.wl-clipboard "wl-paste"; + # cliphist = getExe' pkgs.cliphist "cliphist"; + # cliphist-fuzzel-img = getExe' pkgs.cliphist "cliphist-fuzzel-img"; + # wl-clip-persist = getExe pkgs.wl-clip-persist; + in + ( + let + spawn = leaf "spawn"; + in [ + (plain "binds" [ + # (plain "Mod+V" [ + # (spawn [cliphist-fuzzel-img]) + # ]) + # (plain "Mod+Shift+P" [ + # (spawn [ + # swaylock + # "--screenshots" + # "--clock" + # "--indicator" + # "--indicator-radius" + # "100" + # "--indicator-thickness" + # "7" + # "--effect-blur" + # "7x5" + # "--effect-vignette" + # "0.5:0.5" + # "--grace" + # "2" + # "--fade-in" + # "0.5" + # ]) + # ]) + (plain "Mod+Shift+Slash" [ + (flag "show-hotkey-overlay") ]) - ]) - (plain "Mod+Shift+Slash" [ - (flag "show-hotkey-overlay") - ]) - (plain "Mod+T" [ - (spawn [ - default-terminal + (plain "Mod+T" [ + (spawn [ + default-terminal + ]) ]) - ]) - (plain "Mod+Shift+T" [ - (flag "toggle-column-tabbed-display") - ]) - (plain "Mod+Space" [ - (spawn [fuzzel]) - ]) - ( - node "XF86AudioRaiseVolume" - [{allow-when-locked = true;}] - [ - (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "0.1+" - ]) - ] - ) - ( - node "XF86AudioLowerVolume" - [{allow-when-locked = true;}] - [ - (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "0.1-" - ]) - ] - ) - ( - node "XF86AudioMute" - [{allow-when-locked = true;}] - [ - (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SINK@" - "toggle" - ]) - ] - ) - ( - node "XF86AudioMicMute" - [{allow-when-locked = true;}] - [ - (spawn [ - wpctl - "set-volume" - "@DEFAULT_AUDIO_SOURCE@" - "toggle" - ]) - ] - ) - (plain "Mod+Q" [ - (flag "close-window") - ]) - ( - node "Mod+O" - [{repeat = false;}] - [ - (flag "toggle-overview") - ] - ) - (plain "Mod+Left" [ - (flag "focus-column-left") - ]) - (plain "Mod+Down" [ - (flag "focus-window-down") - ]) - (plain "Mod+Up" [ - (flag "focus-window-up") - ]) - (plain "Mod+Right" [ - (flag "focus-column-right") - ]) - (plain "Mod+H" [ - (flag "focus-column-or-monitor-left") - ]) - (plain "Mod+J" [ - (flag "focus-window-or-workspace-down") - ]) - (plain "Mod+K" [ - (flag "focus-window-or-workspace-up") - ]) - (plain "Mod+L" [ - (flag "focus-column-or-monitor-right") - ]) - (plain "Mod+Shift+Left" [ - (flag "move-column-left") - ]) - (plain "Mod+Shift+Down" [ - (flag "move-window-down") - ]) - (plain "Mod+Shift+Up" [ - (flag "move-window-up") - ]) - (plain "Mod+Shift+Right" [ - (flag "move-column-right") - ]) - (plain "Mod+Shift+H" [ - (flag "move-column-left-or-to-monitor-left") - ]) - (plain "Mod+Shift+J" [ - (flag "move-window-down-or-to-workspace-down") - ]) - (plain "Mod+Shift+K" [ - (flag "move-window-up-or-to-workspace-up") - ]) - (plain "Mod+Shift+L" [ - (flag "move-column-right-or-to-monitor-right") - ]) - (plain "Mod+Home" [ - (flag "focus-column-first") - ]) - (plain "Mod+End" [ - (flag "focus-column-last") - ]) - (plain "Mod+Ctrl+Home" [ - (flag "move-column-to-first") - ]) - (plain "Mod+Ctrl+End" [ - (flag "move-column-to-last") - ]) - (plain "Mod+Ctrl+Left" [ - (flag "focus-monitor-left") - ]) - (plain "Mod+Ctrl+Down" [ - (flag "focus-monitor-down") - ]) - (plain "Mod+Ctrl+Up" [ - (flag "focus-monitor-up") - ]) - (plain "Mod+Ctrl+Right" [ - (flag "focus-monitor-right") - ]) - (plain "Mod+Ctrl+H" [ - (flag "focus-monitor-left") - ]) - (plain "Mod+Ctrl+J" [ - (flag "focus-monitor-down") - ]) - (plain "Mod+Ctrl+K" [ - (flag "focus-monitor-up") - ]) - (plain "Mod+Ctrl+L" [ - (flag "focus-monitor-right") - ]) - (plain "Mod+Shift+Ctrl+Left" [ - (flag "move-column-to-monitor-left") - ]) - (plain "Mod+Shift+Ctrl+Down" [ - (flag "move-column-to-monitor-down") - ]) - (plain "Mod+Shift+Ctrl+Up" [ - (flag "move-column-to-monitor-up") - ]) - (plain "Mod+Shift+Ctrl+Right" [ - (flag "move-column-to-monitor-right") - ]) - (plain "Mod+Shift+Ctrl+H" [ - (flag "move-column-to-monitor-left") - ]) - (plain "Mod+Shift+Ctrl+J" [ - (flag "move-column-to-monitor-down") - ]) - (plain "Mod+Shift+Ctrl+K" [ - (flag "move-column-to-monitor-up") - ]) - (plain "Mod+Shift+Ctrl+L" [ - (flag "move-column-to-monitor-right") - ]) - (plain "Mod+Page_Down" [ - (flag "focus-workspace-down") - ]) - (plain "Mod+Page_Up" [ - (flag "focus-workspace-up") - ]) - (plain "Mod+U" [ - (flag "focus-workspace-down") - ]) - (plain "Mod+I" [ - (flag "focus-workspace-up") - ]) - (plain "Mod+Shift+Page_Down" [ - (flag "move-column-to-workspace-down") - ]) - (plain "Mod+Shift+Page_Up" [ - (flag "move-column-to-workspace-up") - ]) - (plain "Mod+Shift+U" [ - (flag "move-column-to-workspace-down") - ]) - (plain "Mod+Shift+I" [ - (flag "move-column-to-workspace-up") - ]) - (plain "Mod+Ctrl+Page_Down" [ - (flag "move-workspace-down") - ]) - (plain "Mod+Ctrl+Page_Up" [ - (flag "move-workspace-up") - ]) - (plain "Mod+Ctrl+U" [ - (flag "move-workspace-down") - ]) - (plain "Mod+Ctrl+I" [ - (flag "move-workspace-up") - ]) - ( - node "Mod+Shift+WheelScrollDown" - [{cooldown-ms = 150;}] - [ + (plain "Mod+Shift+T" [ + (flag "toggle-column-tabbed-display") + ]) + # (plain "Mod+Space" [ + # (spawn [fuzzel]) + # ]) + # ( + # node "XF86AudioRaiseVolume" + # [{allow-when-locked = true;}] + # [ + # (spawn [ + # wpctl + # "set-volume" + # "@DEFAULT_AUDIO_SINK@" + # "0.1+" + # ]) + # ] + # ) + # ( + # node "XF86AudioLowerVolume" + # [{allow-when-locked = true;}] + # [ + # (spawn [ + # wpctl + # "set-volume" + # "@DEFAULT_AUDIO_SINK@" + # "0.1-" + # ]) + # ] + # ) + # ( + # node "XF86AudioMute" + # [{allow-when-locked = true;}] + # [ + # (spawn [ + # wpctl + # "set-volume" + # "@DEFAULT_AUDIO_SINK@" + # "toggle" + # ]) + # ] + # ) + # ( + # node "XF86AudioMicMute" + # [{allow-when-locked = true;}] + # [ + # (spawn [ + # wpctl + # "set-volume" + # "@DEFAULT_AUDIO_SOURCE@" + # "toggle" + # ]) + # ] + # ) + (plain "Mod+Q" [ + (flag "close-window") + ]) + ( + node "Mod+O" + [{repeat = false;}] + [ + (flag "toggle-overview") + ] + ) + (plain "Mod+Left" [ + (flag "focus-column-left") + ]) + (plain "Mod+Down" [ + (flag "focus-window-down") + ]) + (plain "Mod+Up" [ + (flag "focus-window-up") + ]) + (plain "Mod+Right" [ + (flag "focus-column-right") + ]) + (plain "Mod+H" [ + (flag "focus-column-or-monitor-left") + ]) + (plain "Mod+J" [ + (flag "focus-window-or-workspace-down") + ]) + (plain "Mod+K" [ + (flag "focus-window-or-workspace-up") + ]) + (plain "Mod+L" [ + (flag "focus-column-or-monitor-right") + ]) + (plain "Mod+Shift+Left" [ + (flag "move-column-left") + ]) + (plain "Mod+Shift+Down" [ + (flag "move-window-down") + ]) + (plain "Mod+Shift+Up" [ + (flag "move-window-up") + ]) + (plain "Mod+Shift+Right" [ + (flag "move-column-right") + ]) + (plain "Mod+Shift+H" [ + (flag "move-column-left-or-to-monitor-left") + ]) + (plain "Mod+Shift+J" [ + (flag "move-window-down-or-to-workspace-down") + ]) + (plain "Mod+Shift+K" [ + (flag "move-window-up-or-to-workspace-up") + ]) + (plain "Mod+Shift+L" [ + (flag "move-column-right-or-to-monitor-right") + ]) + (plain "Mod+Home" [ + (flag "focus-column-first") + ]) + (plain "Mod+End" [ + (flag "focus-column-last") + ]) + (plain "Mod+Ctrl+Home" [ + (flag "move-column-to-first") + ]) + (plain "Mod+Ctrl+End" [ + (flag "move-column-to-last") + ]) + (plain "Mod+Ctrl+Left" [ + (flag "focus-monitor-left") + ]) + (plain "Mod+Ctrl+Down" [ + (flag "focus-monitor-down") + ]) + (plain "Mod+Ctrl+Up" [ + (flag "focus-monitor-up") + ]) + (plain "Mod+Ctrl+Right" [ + (flag "focus-monitor-right") + ]) + (plain "Mod+Ctrl+H" [ + (flag "focus-monitor-left") + ]) + (plain "Mod+Ctrl+J" [ + (flag "focus-monitor-down") + ]) + (plain "Mod+Ctrl+K" [ + (flag "focus-monitor-up") + ]) + (plain "Mod+Ctrl+L" [ + (flag "focus-monitor-right") + ]) + (plain "Mod+Shift+Ctrl+Left" [ + (flag "move-column-to-monitor-left") + ]) + (plain "Mod+Shift+Ctrl+Down" [ + (flag "move-column-to-monitor-down") + ]) + (plain "Mod+Shift+Ctrl+Up" [ + (flag "move-column-to-monitor-up") + ]) + (plain "Mod+Shift+Ctrl+Right" [ + (flag "move-column-to-monitor-right") + ]) + (plain "Mod+Shift+Ctrl+H" [ + (flag "move-column-to-monitor-left") + ]) + (plain "Mod+Shift+Ctrl+J" [ + (flag "move-column-to-monitor-down") + ]) + (plain "Mod+Shift+Ctrl+K" [ + (flag "move-column-to-monitor-up") + ]) + (plain "Mod+Shift+Ctrl+L" [ + (flag "move-column-to-monitor-right") + ]) + (plain "Mod+Page_Down" [ (flag "focus-workspace-down") - ] - ) - ( - node "Mod+Shift+WheelScrollUp" - [{cooldown-ms = 150;}] - [ + ]) + (plain "Mod+Page_Up" [ (flag "focus-workspace-up") - ] - ) - (plain "Mod+WheelScrollDown" [ - (flag "focus-column-right") + ]) + (plain "Mod+U" [ + (flag "focus-workspace-down") + ]) + (plain "Mod+I" [ + (flag "focus-workspace-up") + ]) + (plain "Mod+Shift+Page_Down" [ + (flag "move-column-to-workspace-down") + ]) + (plain "Mod+Shift+Page_Up" [ + (flag "move-column-to-workspace-up") + ]) + (plain "Mod+Shift+U" [ + (flag "move-column-to-workspace-down") + ]) + (plain "Mod+Shift+I" [ + (flag "move-column-to-workspace-up") + ]) + (plain "Mod+Ctrl+Page_Down" [ + (flag "move-workspace-down") + ]) + (plain "Mod+Ctrl+Page_Up" [ + (flag "move-workspace-up") + ]) + (plain "Mod+Ctrl+U" [ + (flag "move-workspace-down") + ]) + (plain "Mod+Ctrl+I" [ + (flag "move-workspace-up") + ]) + ( + node "Mod+Shift+WheelScrollDown" + [{cooldown-ms = 150;}] + [ + (flag "focus-workspace-down") + ] + ) + ( + node "Mod+Shift+WheelScrollUp" + [{cooldown-ms = 150;}] + [ + (flag "focus-workspace-up") + ] + ) + (plain "Mod+WheelScrollDown" [ + (flag "focus-column-right") + ]) + (plain "Mod+WheelScrollUp" [ + (flag "focus-column-left") + ]) + (plain "Mod+1" [ + (leaf "focus-workspace" [1]) + ]) + (plain "Mod+2" [ + (leaf "focus-workspace" [2]) + ]) + (plain "Mod+3" [ + (leaf "focus-workspace" [3]) + ]) + (plain "Mod+4" [ + (leaf "focus-workspace" [4]) + ]) + (plain "Mod+5" [ + (leaf "focus-workspace" [5]) + ]) + (plain "Mod+6" [ + (leaf "focus-workspace" [6]) + ]) + (plain "Mod+7" [ + (leaf "focus-workspace" [7]) + ]) + (plain "Mod+8" [ + (leaf "focus-workspace" [8]) + ]) + (plain "Mod+9" [ + (leaf "focus-workspace" [9]) + ]) + (plain "Mod+Shift+1" [ + (leaf "move-column-to-workspace" [1]) + ]) + (plain "Mod+Shift+2" [ + (leaf "move-column-to-workspace" [2]) + ]) + (plain "Mod+Shift+3" [ + (leaf "move-column-to-workspace" [3]) + ]) + (plain "Mod+Shift+4" [ + (leaf "move-column-to-workspace" [4]) + ]) + (plain "Mod+Shift+5" [ + (leaf "move-column-to-workspace" [5]) + ]) + (plain "Mod+Shift+6" [ + (leaf "move-column-to-workspace" [6]) + ]) + (plain "Mod+Shift+7" [ + (leaf "move-column-to-workspace" [7]) + ]) + (plain "Mod+Shift+8" [ + (leaf "move-column-to-workspace" [8]) + ]) + (plain "Mod+Shift+9" [ + (leaf "move-column-to-workspace" [9]) + ]) + (plain "Mod+F" [ + (flag "toggle-window-floating") + ]) + (plain "Mod+Shift+F" [ + (flag "toggle-windowed-fullscreen") + ]) + (plain "Mod+Tab" [ + (flag "focus-window-previous") + ]) + (plain "Mod+Shift+Tab" [ + (flag "switch-focus-between-floating-and-tiling") + ]) + (plain "Mod+BracketLeft" [ + (flag "consume-or-expel-window-left") + ]) + (plain "Mod+BracketRight" [ + (flag "consume-or-expel-window-right") + ]) + (plain "Mod+Comma" [ + (flag "consume-window-into-column") + ]) + (plain "Mod+Period" [ + (flag "expel-window-from-column") + ]) + ( + node "Mod+R" + [{repeat = false;}] + [ + (flag "switch-preset-column-width") + ] + ) + ( + node "Mod+Shift+R" + [{repeat = false;}] + [ + (flag "switch-preset-window-height") + ] + ) + (plain "Mod+Ctrl+R" [ + (flag "reset-window-height") + ]) + ( + node "Mod+M" + [{repeat = false;}] + [ + (flag "maximize-column") + ] + ) + ( + node "Mod+Shift+M" + [{repeat = false;}] + [ + (flag "fullscreen-window") + ] + ) + ( + node "Mod+Ctrl+M" + [{repeat = false;}] + [ + (flag "maximize-window-to-edges") + ] + ) + (plain "Mod+Z" [ + (flag "center-column") + ]) + ( + node "Mod+Minus" + [{repeat = false;}] + [ + (leaf "set-column-width" ["-10%"]) + ] + ) + ( + node "Mod+Equal" + [{repeat = false;}] + [ + (leaf "set-column-width" ["+10%"]) + ] + ) + ( + node "Mod+Shift+Minus" + [{repeat = false;}] + [ + (leaf "set-window-height" ["-10%"]) + ] + ) + ( + node "Mod+Shift+Equal" + [{repeat = false;}] + [ + (leaf "set-window-height" ["+10%"]) + ] + ) + (plain "Print" [ + (flag "screenshot") + ]) + (plain "Ctrl+Print" [ + (flag "screenshot-screen") + ]) + (plain "Alt+Print" [ + (flag "screenshot-window") + ]) + (plain "Mod+Shift+Q" [ + (flag "quit") + ]) + (plain "Mod+E" [ + (flag "expand-column-to-available-width") + ]) + (plain "Mod+Shift+S" [ + (flag "toggle-keyboard-shortcuts-inhibit") + ]) + (plain "Mod+Shift+C" [ + (flag "set-dynamic-cast-window") + ]) + (plain "Mod+Shift+Ctrl+C" [ + (flag "clear-dynamic-cast-target") + ]) ]) - (plain "Mod+WheelScrollUp" [ - (flag "focus-column-left") - ]) - (plain "Mod+1" [ - (leaf "focus-workspace" [1]) - ]) - (plain "Mod+2" [ - (leaf "focus-workspace" [2]) - ]) - (plain "Mod+3" [ - (leaf "focus-workspace" [3]) - ]) - (plain "Mod+4" [ - (leaf "focus-workspace" [4]) - ]) - (plain "Mod+5" [ - (leaf "focus-workspace" [5]) - ]) - (plain "Mod+6" [ - (leaf "focus-workspace" [6]) - ]) - (plain "Mod+7" [ - (leaf "focus-workspace" [7]) - ]) - (plain "Mod+8" [ - (leaf "focus-workspace" [8]) - ]) - (plain "Mod+9" [ - (leaf "focus-workspace" [9]) - ]) - (plain "Mod+Shift+1" [ - (leaf "move-column-to-workspace" [1]) - ]) - (plain "Mod+Shift+2" [ - (leaf "move-column-to-workspace" [2]) - ]) - (plain "Mod+Shift+3" [ - (leaf "move-column-to-workspace" [3]) - ]) - (plain "Mod+Shift+4" [ - (leaf "move-column-to-workspace" [4]) - ]) - (plain "Mod+Shift+5" [ - (leaf "move-column-to-workspace" [5]) - ]) - (plain "Mod+Shift+6" [ - (leaf "move-column-to-workspace" [6]) - ]) - (plain "Mod+Shift+7" [ - (leaf "move-column-to-workspace" [7]) - ]) - (plain "Mod+Shift+8" [ - (leaf "move-column-to-workspace" [8]) - ]) - (plain "Mod+Shift+9" [ - (leaf "move-column-to-workspace" [9]) - ]) - (plain "Mod+F" [ - (flag "toggle-window-floating") - ]) - (plain "Mod+Shift+F" [ - (flag "toggle-windowed-fullscreen") - ]) - (plain "Mod+Tab" [ - (flag "focus-window-previous") - ]) - (plain "Mod+Shift+Tab" [ - (flag "switch-focus-between-floating-and-tiling") - ]) - (plain "Mod+BracketLeft" [ - (flag "consume-or-expel-window-left") - ]) - (plain "Mod+BracketRight" [ - (flag "consume-or-expel-window-right") - ]) - (plain "Mod+Comma" [ - (flag "consume-window-into-column") - ]) - (plain "Mod+Period" [ - (flag "expel-window-from-column") - ]) - ( - node "Mod+R" - [{repeat = false;}] - [ - (flag "switch-preset-column-width") - ] - ) - ( - node "Mod+Shift+R" - [{repeat = false;}] - [ - (flag "switch-preset-window-height") - ] - ) - (plain "Mod+Ctrl+R" [ - (flag "reset-window-height") - ]) - ( - node "Mod+M" - [{repeat = false;}] - [ - (flag "maximize-column") - ] - ) - ( - node "Mod+Shift+M" - [{repeat = false;}] - [ - (flag "fullscreen-window") - ] - ) - ( - node "Mod+Ctrl+M" - [{repeat = false;}] - [ - (flag "maximize-window-to-edges") - ] - ) - (plain "Mod+Z" [ - (flag "center-column") - ]) - ( - node "Mod+Minus" - [{repeat = false;}] - [ - (leaf "set-column-width" ["-10%"]) - ] - ) - ( - node "Mod+Equal" - [{repeat = false;}] - [ - (leaf "set-column-width" ["+10%"]) - ] - ) - ( - node "Mod+Shift+Minus" - [{repeat = false;}] - [ - (leaf "set-window-height" ["-10%"]) - ] - ) - ( - node "Mod+Shift+Equal" - [{repeat = false;}] - [ - (leaf "set-window-height" ["+10%"]) - ] - ) - (plain "Print" [ - (flag "screenshot") - ]) - (plain "Ctrl+Print" [ - (flag "screenshot-screen") - ]) - (plain "Alt+Print" [ - (flag "screenshot-window") - ]) - (plain "Mod+Shift+Q" [ - (flag "quit") - ]) - (plain "Mod+E" [ - (flag "expand-column-to-available-width") - ]) - (plain "Mod+Shift+S" [ - (flag "toggle-keyboard-shortcuts-inhibit") - ]) - (plain "Mod+Shift+C" [ - (flag "set-dynamic-cast-window") - ]) - (plain "Mod+Shift+Ctrl+C" [ - (flag "clear-dynamic-cast-target") - ]) - ]) - ] # binds - ) - ++ ( - let - spawn-at-startup = leaf "spawn-at-startup"; - in [ + ] # binds + ) + ++ + # let + # spawn-at-startup = leaf "spawn-at-startup"; + # in + [ (leaf "screenshot-path" ["${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d_%H:%M:%S.png"]) (plain "hotkey-overlay" [ (flag "skip-at-startup") ]) (flag "prefer-no-csd") - (spawn-at-startup [waybar]) - (spawn-at-startup [swaync]) - (spawn-at-startup [ - waypaper - "--restore" - ]) - (spawn-at-startup [ - wl-paste - "--watch" - cliphist - "store" - ]) - (spawn-at-startup [ - wl-clip-persist - "--clipboard" - "regular" - ]) - (spawn-at-startup [ - fcitx5 - "--replace" - ]) + # (spawn-at-startup [waybar]) + # (spawn-at-startup [swaync]) + # (spawn-at-startup [ + # waypaper + # "--restore" + # ]) + # (spawn-at-startup [ + # wl-paste + # "--watch" + # cliphist + # "store" + # ]) + # (spawn-at-startup [ + # wl-clip-persist + # "--clipboard" + # "regular" + # ]) + # (spawn-at-startup [ + # fcitx5 + # "--replace" + # ]) (plain "input" [ (plain "touchpad" [ (leaf "click-method" ["clickfinger"]) @@ -580,130 +578,130 @@ ]) ]) ] # others - ) - ++ ( - let - window-rule = plain "window-rule"; - match = leaf "match"; - in [ - (window-rule [ - (leaf "draw-border-with-background" [true]) - (leaf "geometry-corner-radius" [0.0]) - (leaf "clip-to-geometry" [true]) - ]) - (window-rule [ - (match [{app-id = "^org\\.keepassxc\\.KeePassXC$";}]) - (match [{app-id = "^org\\.gnome\\.World\\.Secrets$";}]) - (leaf "block-out-from" ["screen-capture"]) - ]) - (window-rule [ - (match [{is-active = true;}]) - (leaf "opacity" [1.0]) - ]) - (window-rule [ - (match [{is-active = false;}]) - (leaf "opacity" [0.8]) - (leaf "draw-border-with-background" [false]) - ]) - (window-rule [ - (match [{app-id = "^Alacritty$";}]) - (match [{app-id = "^com\\.mitchellh\\.ghostty$";}]) - (match [{app-id = "^neovide$";}]) - (leaf "draw-border-with-background" [false]) - ]) - (window-rule [ - (match [{app-id = "^org\\.kde\\.polkit-kde-authentication-agent-1$";}]) - (leaf "open-floating" [true]) - ]) - (window-rule [ - (match [{app-id = "^swayimg$";}]) - (leaf "draw-border-with-background" [false]) - (leaf "open-floating" [true]) - ]) - (window-rule [ - (match [{is-window-cast-target = true;}]) - (plain "focus-ring" [ - (leaf "active-color" ["#f38ba8"]) - (leaf "inactive-color" ["#7d0d2d"]) + ++ ( + let + window-rule = plain "window-rule"; + match = leaf "match"; + in [ + (window-rule [ + (leaf "draw-border-with-background" [true]) + (leaf "geometry-corner-radius" [0.0]) + (leaf "clip-to-geometry" [true]) ]) - (plain "border" [ - (leaf "active-color" ["#f38ba8"]) - (leaf "inactive-color" ["#7d0d2d"]) + (window-rule [ + (match [{app-id = "^org\\.keepassxc\\.KeePassXC$";}]) + (match [{app-id = "^org\\.gnome\\.World\\.Secrets$";}]) + (leaf "block-out-from" ["screen-capture"]) ]) - (plain "tab-indicator" [ - (leaf "active-color" ["#f38ba8"]) - (leaf "inactive-color" ["#7d0d2d"]) + (window-rule [ + (match [{is-active = true;}]) + (leaf "opacity" [1.0]) ]) - (plain "shadow" [ - (flag "on") + (window-rule [ + (match [{is-active = false;}]) + (leaf "opacity" [0.8]) + (leaf "draw-border-with-background" [false]) ]) - ]) - (window-rule [ - (match [ - { - app-id = "^org\\.telegram\\.desktop$"; - title = "Media viewer"; - } + (window-rule [ + (match [{app-id = "^Alacritty$";}]) + (match [{app-id = "^com\\.mitchellh\\.ghostty$";}]) + (match [{app-id = "^neovide$";}]) + (leaf "draw-border-with-background" [false]) ]) - (match [ - { - app-id = "^QQ$"; - title = "图片查看器"; - } + (window-rule [ + (match [{app-id = "^org\\.kde\\.polkit-kde-authentication-agent-1$";}]) + (leaf "open-floating" [true]) ]) - (leaf "open-floating" [true]) - (leaf "open-fullscreen" [false]) - ]) - (window-rule [ - (match [ - { - app-id = "^wechat$"; - title = "^wechat$"; - } + (window-rule [ + (match [{app-id = "^swayimg$";}]) + (leaf "draw-border-with-background" [false]) + (leaf "open-floating" [true]) ]) - (leaf "open-focused" [false]) - ]) - (window-rule [ - (match [ - { - app-id = "^steam$"; - title = "^notificationtoasts_\\d+_desktop$"; - } + (window-rule [ + (match [{is-window-cast-target = true;}]) + (plain "focus-ring" [ + (leaf "active-color" ["#f38ba8"]) + (leaf "inactive-color" ["#7d0d2d"]) + ]) + (plain "border" [ + (leaf "active-color" ["#f38ba8"]) + (leaf "inactive-color" ["#7d0d2d"]) + ]) + (plain "tab-indicator" [ + (leaf "active-color" ["#f38ba8"]) + (leaf "inactive-color" ["#7d0d2d"]) + ]) + (plain "shadow" [ + (flag "on") + ]) ]) - (leaf "open-floating" [true]) - (leaf "open-focused" [false]) - (leaf "default-floating-position" [ - { - x = 10; - y = 10; - "relative-to" = "bottom-right"; - } + (window-rule [ + (match [ + { + app-id = "^org\\.telegram\\.desktop$"; + title = "Media viewer"; + } + ]) + (match [ + { + app-id = "^QQ$"; + title = "图片查看器"; + } + ]) + (leaf "open-floating" [true]) + (leaf "open-fullscreen" [false]) ]) - (leaf "clip-to-geometry" [false]) - ]) - ] # window-rule - ) - ++ ( - let - layer-rule = plain "layer-rule"; - match = leaf "match"; - in [ - (layer-rule [ - (match [{namespace = "^swaync-notification-window$";}]) - (match [{namespace = "^swaync-control-center$";}]) - (leaf "block-out-from" ["screen-capture"]) - ]) - (layer-rule [ - (match [{namespace = "^launcher$";}]) - (plain "shadow" [ - (flag "on") + (window-rule [ + (match [ + { + app-id = "^wechat$"; + title = "^wechat$"; + } + ]) + (leaf "open-focused" [false]) ]) - (leaf "geometry-corner-radius" [10.0]) - ]) - (layer-rule [ - (match [{namespace = "^mpvpaper$";}]) - (leaf "place-within-backdrop" [true]) - ]) - ] # layer-rule - ); + (window-rule [ + (match [ + { + app-id = "^steam$"; + title = "^notificationtoasts_\\d+_desktop$"; + } + ]) + (leaf "open-floating" [true]) + (leaf "open-focused" [false]) + (leaf "default-floating-position" [ + { + x = 10; + y = 10; + "relative-to" = "bottom-right"; + } + ]) + (leaf "clip-to-geometry" [false]) + ]) + ] # window-rule + ) + # ++ ( + # let + # layer-rule = plain "layer-rule"; + # match = leaf "match"; + # in [ + # (layer-rule [ + # (match [{namespace = "^swaync-notification-window$";}]) + # (match [{namespace = "^swaync-control-center$";}]) + # (leaf "block-out-from" ["screen-capture"]) + # ]) + # (layer-rule [ + # (match [{namespace = "^launcher$";}]) + # (plain "shadow" [ + # (flag "on") + # ]) + # (leaf "geometry-corner-radius" [10.0]) + # ]) + # (layer-rule [ + # (match [{namespace = "^mpvpaper$";}]) + # (leaf "place-within-backdrop" [true]) + # ]) + # ] # layer-rule + # ) + ; } diff --git a/home/david/modules/programs/niri/default.nix b/home/david/modules/programs/niri/default.nix index 15d3e7d..3e7d6b0 100644 --- a/home/david/modules/programs/niri/default.nix +++ b/home/david/modules/programs/niri/default.nix @@ -22,6 +22,22 @@ in { config = lib.mkOption { type = inputs.niri-flake.lib.kdl.types.kdl-document; }; + configHelper = lib.mkOption { + type = lib.types.anything; + default = { + validated-config-for = configuration: + pkgs.runCommand "config.kdl" { + inherit configuration; + passAsFile = ["configuration"]; + buildInputs = [config.programs.niri.package]; + } + #bash + '' + niri validate -c $configurationPath + cp $configurationPath $out + ''; + }; + }; wluma.extraSettings = lib.mkOption { inherit (options.david.programs.wluma.extraSettings) type; }; @@ -45,9 +61,9 @@ in { config = lib.mkMerge [ (lib.mkIf cfg.enable { home.packages = with pkgs; [ - swaynotificationcenter + # swaynotificationcenter wl-clipboard - cliphist + # cliphist swayimg seahorse ]; @@ -65,22 +81,29 @@ in { }; }; david.programs = { - fuzzel.enable = true; - waybar = { - enable = true; - inherit (cfg.waybar) settings; - }; - wluma = { - enable = true; - inherit (cfg.wluma) extraSettings; - }; - swaync.enable = true; - swaylock.enable = true; - waypaper.enable = true; + # fuzzel.enable = true; + # waybar = { + # enable = true; + # inherit (cfg.waybar) settings; + # }; + # wluma = { + # enable = true; + # inherit (cfg.wluma) extraSettings; + # }; + # swaync.enable = true; + # swaylock.enable = true; + # waypaper.enable = true; kanshi.enable = true; + noctalia.enable = true; }; - programs.niri = { - inherit (cfg) config; + programs = { + niri = { + config = + cfg.config + ++ [ + (inputs.niri-flake.lib.kdl.leaf "include" [(toString config.david.programs.noctalia.niriExtraConfig)]) + ]; + }; }; }) (lib.mkIf (!cfg.enable) { diff --git a/home/david/modules/programs/noctalia.nix b/home/david/modules/programs/noctalia.nix new file mode 100644 index 0000000..87b48ab --- /dev/null +++ b/home/david/modules/programs/noctalia.nix @@ -0,0 +1,208 @@ +{ + config, + lib, + inputs, + ... +}: let + cfg = config.david.programs.noctalia; + inherit (inputs.niri-flake.lib.kdl) node leaf flag plain; + spawn = leaf "spawn"; + noctalia = args: (spawn (["noctalia-shell" "ipc" "call"] ++ args)); + + layer-rule = plain "layer-rule"; + match = leaf "match"; +in { + options = { + david.programs.noctalia = { + enable = lib.mkEnableOption "noctalia"; + niriExtraConfig = lib.mkOption { + type = inputs.niri-flake.lib.kdl.types.kdl-document; + default = [ + (plain "binds" [ + (plain "Mod+V" [(noctalia ["launcher" "clipboard"])]) + (plain "Mod+Shift+P" [(noctalia ["lockScreen" "lock"])]) + (plain "Mod+Space" [(noctalia ["launcher" "toggle"])]) + (node "XF86AudioRaiseVolume" [{allow-when-locked = true;}] + [(noctalia ["volume" "increase"])]) + (node "XF86AudioLowerVolume" [{allow-when-locked = true;}] + [(noctalia ["volume" "decrease"])]) + (node "XF86AudioMute" [{allow-when-locked = true;}] + [(noctalia ["volume" "muteOutput"])]) + (node "XF86AudioMicMute" [{allow-when-locked = true;}] + [(noctalia ["volume" "muteInput"])]) + ]) + (layer-rule [ + (match [{namespace = "^noctalia-wallpaper-.*$";}]) + (leaf "place-within-backdrop" [true]) + ]) + (layer-rule [ + (match [{namespace = "^noctalia-notifications-.*$";}]) + (leaf "block-out-from" ["screen-capture"]) + ]) + ]; + apply = configuration: config.david.programs.niri.configHelper.validated-config-for (inputs.niri-flake.lib.kdl.serialize.nodes configuration); + }; + }; + }; + config = lib.mkIf cfg.enable { + programs.noctalia-shell = { + enable = true; + systemd.enable = true; + settings = { + settingsVersion = 21; + appLauncher = { + enableClipboardHistory = true; + position = "center"; + sortByMostUsed = true; + terminalCommand = "ghostty -e"; + }; + audio = { + volumeStep = 1; + volumeOverdrive = true; + cavaFrameRate = 165; + visualizerQuality = "high"; + visualizerType = "mirrored"; + }; + bar = { + density = "comfortable"; + exclusive = true; + floating = false; + outerCorners = true; + position = "right"; + showCapsule = true; + widgets = { + center = [ + {id = "Taskbar";} + { + id = "Workspace"; + hideUnoccupied = true; + } + ]; + left = [ + {id = "SystemMonitor";} + { + id = "MediaMini"; + hideWhenIdle = false; + hideMode = "hidden"; + showAlbumArt = true; + } + { + id = "AudioVisualizer"; + hideWhenIdle = true; + } + ]; + right = [ + {id = "WallpaperSelector";} + {id = "ScreenRecorder";} + {id = "Brightness";} + {id = "DarkMode";} + {id = "NotificationHistory";} + {id = "Volume";} + { + id = "Tray"; + drawerEnabled = true; + favorites = [ + "Fcitx" + ]; + } + {id = "Clock";} + ]; + }; + }; + brightness = { + brightnessStep = 1; + enableDdcSupport = true; + enforceMinimum = true; + }; + colorSchemes = { + generateTemplatesForPredefined = false; + predefineScheme = "Catppuccin"; + schedulingMode = "location"; + useWallpaperColors = false; + darkMode = false; + }; + controlCenter = { + cards = [ + { + enabled = true; + id = "profile-card"; + } + { + enabled = true; + id = "shortcuts-card"; + } + { + enabled = true; + id = "audio-card"; + } + { + enabled = true; + id = "weather-card"; + } + { + enabled = true; + id = "media-sysmon-card"; + } + ]; + position = "close_to_bar_button"; + shortcuts = { + left = [{id = "Bluetooth";} {id = "WallpaperSelector";}]; + right = [{id = "KeepAwake";} {id = "NightLight";}]; + }; + }; + dock = { + enabled = false; + }; + general = { + animationSpeed = 2; + avatarImage = "${config.home.homeDirectory}/.face"; + compactLockScreen = false; + dimDesktop = false; + enableShadows = true; + forceBlackScreenCorners = false; + language = "zh-CN"; + lockOnSuspend = true; + showScreenCorners = false; + }; + location = { + firstDayOfWeek = 1; + showCalendarEvents = true; + showCalendarWeather = true; + weatherEnabled = true; + }; + network = { + wifiEnabled = false; + }; + notifications = { + enabled = true; + location = "bottom_right"; + overlayLayer = true; + respectExpireTimeout = true; + }; + osd = { + enabled = true; + location = "bottom"; + overlayLayer = true; + }; + setupCompleted = true; + ui = { + fontDefault = "Source Han Serif SC"; + fontFixed = "Maple Mono NF CN"; + panelsAttachedToBar = true; + settingsPanelAttachToBar = false; + tooltipsEnabled = true; + }; + wallpaper = { + directory = "${config.home.homeDirectory}/wallpaper"; + enabled = true; + panelPosition = "center"; + randomEnabled = true; + randomIntervalSec = 900; + recursiveSearch = true; + transitionDuration = 1500; + transitionType = "random"; + }; + }; + }; + }; +} diff --git a/home/modules/default.nix b/home/modules/default.nix index 5e02002..5f2bbef 100644 --- a/home/modules/default.nix +++ b/home/modules/default.nix @@ -8,6 +8,7 @@ sops-nix.homeManagerModules.sops betterfox-nix.homeModules.betterfox nix4nvchad.homeManagerModule + noctalia.homeModules.default ]) ++ lib.youthlic.loadImports ./.; diff --git a/pkgs/wallpapers.nix b/pkgs/wallpapers.nix index 96ad9cb..806cb42 100644 --- a/pkgs/wallpapers.nix +++ b/pkgs/wallpapers.nix @@ -7,7 +7,7 @@ wallpapers = with lib; pipe srcs [ (filterAttrs (name: _value: hasPrefix "wallpaper" name)) - (concatMapAttrsStringSep "\n" (name: value: "ln -s ${value.src} $out/${name}")) + (concatMapAttrsStringSep "\n" (name: value: "cp ${value.src} $out/${name}")) ]; in runCommandLocal "wallpapers" {} '' @@ -15,5 +15,5 @@ in ${wallpapers} - ln -s ${rootPath + "/assets/wallpaper/01.png"} $out/01.png + cp ${rootPath + "/assets/wallpaper/01.png"} $out/01.png ''