diff --git a/flake.lock b/flake.lock index bfcdd6238..899296033 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1717576207, - "narHash": "sha256-LU6d1xX7jN1zt10YU7Oym07MtzVfziSmUEznGFdbuaw=", + "lastModified": 1721135360, + "narHash": "sha256-ZhSA0e45UxiOAjEVqkym/aULh0Dt+KHJLNda7bjx9UI=", "owner": "anyrun-org", "repo": "anyrun", - "rev": "7aabad8d5bb7d1bffae903ce86427b888ab824b4", + "rev": "c6101a31a80b51e32e96f6a77616b609770172e0", "type": "github" }, "original": { @@ -39,6 +39,27 @@ "type": "github" } }, + "aquamarine-patched": { + "inputs": { + "hyprutils": "hyprutils", + "hyprwayland-scanner": "hyprwayland-scanner", + "nixpkgs": "nixpkgs_3", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1721772593, + "narHash": "sha256-4iG4+c2Dhx/vT38Y6iRh1sss8wu+CIhu3FyopSmTKVA=", + "owner": "sjcobb2022", + "repo": "aquamarine-patched", + "rev": "3c007df65793f009c28a772b955edbe0ddff704c", + "type": "github" + }, + "original": { + "owner": "sjcobb2022", + "repo": "aquamarine-patched", + "type": "github" + } + }, "catppuccin": { "locked": { "lastModified": 1720472194, @@ -56,7 +77,7 @@ }, "catppuccin-cursors": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1717893279, @@ -112,11 +133,11 @@ ] }, "locked": { - "lastModified": 1720845312, - "narHash": "sha256-yPhAsJTpyoIPQZJGC8Fw8W2lAXyhLoTn+HP20bmfkfk=", + "lastModified": 1721719500, + "narHash": "sha256-nnkqjv4Y37Hydjh6HE9wW4kSkV5Q7q4iIXlL5lwUFOw=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "5ce8503cf402cf76b203eba4b7e402bea8e44abc", + "rev": "884f3fe6d9bf056ba0017c132c39c1f0d07d4fec", "type": "github" }, "original": { @@ -412,11 +433,11 @@ ] }, "locked": { - "lastModified": 1719877454, - "narHash": "sha256-g5N1yyOSsPNiOlFfkuI/wcUjmtah+nxdImJqrSATjOU=", + "lastModified": 1719994518, + "narHash": "sha256-pQMhCCHyQGRzdfAkdJ4cIWiw+JNuWsTX7f0ZYSyz0VY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "4e3583423212f9303aa1a6337f8dffb415920e4f", + "rev": "9227223f6d922fee3c7b190b2cc238a99527bbb7", "type": "github" }, "original": { @@ -427,7 +448,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1705309234, @@ -483,7 +504,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_10" + "systems": "systems_9" }, "locked": { "lastModified": 1681202837, @@ -501,7 +522,7 @@ }, "flake-utils_3": { "inputs": { - "systems": "systems_11" + "systems": "systems_10" }, "locked": { "lastModified": 1710146030, @@ -519,7 +540,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_12" + "systems": "systems_11" }, "locked": { "lastModified": 1710146030, @@ -537,7 +558,7 @@ }, "flake-utils_5": { "inputs": { - "systems": "systems_13" + "systems": "systems_12" }, "locked": { "lastModified": 1701680307, @@ -570,7 +591,7 @@ }, "flake-utils_7": { "inputs": { - "systems": "systems_14" + "systems": "systems_13" }, "locked": { "lastModified": 1694529238, @@ -588,7 +609,7 @@ }, "flake-utils_8": { "inputs": { - "systems": "systems_15" + "systems": "systems_14" }, "locked": { "lastModified": 1710146030, @@ -638,11 +659,11 @@ ] }, "locked": { - "lastModified": 1719259945, - "narHash": "sha256-F1h+XIsGKT9TkGO3omxDLEb/9jOOsI6NnzsXFsZhry4=", + "lastModified": 1721042469, + "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "0ff4381bbb8f7a52ca4a851660fc7a437a4c6e07", + "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", "type": "github" }, "original": { @@ -756,11 +777,11 @@ ] }, "locked": { - "lastModified": 1720734513, - "narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=", + "lastModified": 1721714663, + "narHash": "sha256-ZDW5+rlROxaOuoEfIQM7Gqhoa+WALEYdYIiZhyJjAu0=", "owner": "nix-community", "repo": "home-manager", - "rev": "90ae324e2c56af10f20549ab72014804a3064c7f", + "rev": "7560dc942a6fbd37ebd1310b3dbda513de2d4b82", "type": "github" }, "original": { @@ -777,11 +798,11 @@ ] }, "locked": { - "lastModified": 1719827439, - "narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=", + "lastModified": 1721534365, + "narHash": "sha256-XpZOkaSJKdOsz1wU6JfO59Rx2fqtcarQ0y6ndIOKNpI=", "owner": "nix-community", "repo": "home-manager", - "rev": "59ce796b2563e19821361abbe2067c3bb4143a7d", + "rev": "635563f245309ef5320f80c7ebcb89b2398d2949", "type": "github" }, "original": { @@ -827,11 +848,11 @@ ] }, "locked": { - "lastModified": 1720108799, - "narHash": "sha256-AxRkTJlbB8r7aG6gvc7IaLhc2T9TO4/8uqanKRxukBQ=", + "lastModified": 1721330371, + "narHash": "sha256-aYlHTWylczLt6ERJyg6E66Y/XSCbVL7leVcRuJmVbpI=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "a5c0d57325c5f0814c39110a70ca19c070ae9486", + "rev": "4493a972b48f9c3014befbbf381ed5fff91a65dc", "type": "github" }, "original": { @@ -843,15 +864,16 @@ "hypridle": { "inputs": { "hyprlang": "hyprlang", - "nixpkgs": "nixpkgs_5", + "hyprutils": "hyprutils_2", + "nixpkgs": "nixpkgs_6", "systems": "systems_5" }, "locked": { - "lastModified": 1719068457, - "narHash": "sha256-q2p1YzCg9Dq2jt+6+kjHec9lb6BjCbg5rnVP2Uc/840=", + "lastModified": 1721332982, + "narHash": "sha256-UiNq9EDnnWXaG7d5AExvPlzapuw4VyWnFHTo38Q3kn4=", "owner": "hyprwm", "repo": "Hypridle", - "rev": "7c5747b7855d06b4a63a4f515625ab3229278298", + "rev": "e5366d34b5e1f06a1233667cded3ef05b482778c", "type": "github" }, "original": { @@ -862,20 +884,23 @@ }, "hyprland": { "inputs": { + "aquamarine": [ + "aquamarine-patched" + ], "hyprcursor": "hyprcursor", "hyprlang": "hyprlang_2", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_6", + "hyprutils": "hyprutils_3", + "hyprwayland-scanner": "hyprwayland-scanner_2", + "nixpkgs": "nixpkgs_7", "systems": "systems_6", "xdph": "xdph" }, "locked": { - "lastModified": 1720818319, - "narHash": "sha256-HCjjU259K+7fD/l12u8CkBM9VjQqXleEGpmbdZ0r3oY=", + "lastModified": 1721770738, + "narHash": "sha256-8w1p5dJsz9ybK1xgfBoWBC1fS5jWcuLHwYClFgP700Y=", "ref": "refs/heads/main", - "rev": "f85c6416c6f5e56c75178ecb24c11e346069197d", - "revCount": 4918, + "rev": "8a4548e4302b1cc00fca368a7cc2e3171516420c", + "revCount": 4967, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -888,7 +913,7 @@ }, "hyprland-contrib": { "inputs": { - "nixpkgs": "nixpkgs_7" + "nixpkgs": "nixpkgs_8" }, "locked": { "lastModified": 1720709712, @@ -921,11 +946,11 @@ ] }, "locked": { - "lastModified": 1719784423, - "narHash": "sha256-D7O5+nh2Wn9tQPJArWHrDSZeEfBCtj5zTGd86701LPE=", + "lastModified": 1721668405, + "narHash": "sha256-ZnIXa+jeMXoerhRz/ZJwVoYHaROjcLyQsr1b6JZ2AjQ=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "98cb18c6fcfe8196ef4150d09fbae305b7bb2954", + "rev": "4c2cef8326711fbd91b7a313f095545eb50d2a57", "type": "github" }, "original": { @@ -963,18 +988,25 @@ }, "hyprlang": { "inputs": { + "hyprutils": [ + "hypridle", + "hyprutils" + ], "nixpkgs": [ "hypridle", "nixpkgs" ], - "systems": "systems_4" + "systems": [ + "hypridle", + "systems" + ] }, "locked": { - "lastModified": 1713121246, - "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", + "lastModified": 1721324361, + "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", + "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086", "type": "github" }, "original": { @@ -999,11 +1031,11 @@ ] }, "locked": { - "lastModified": 1720381373, - "narHash": "sha256-lyC/EZdHULsaAKVryK11lgHY9u6pXr7qR4irnxNWC7k=", + "lastModified": 1721324361, + "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "5df0174fd09de4ac5475233d65ffc703e89b82eb", + "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086", "type": "github" }, "original": { @@ -1028,11 +1060,11 @@ ] }, "locked": { - "lastModified": 1717881852, - "narHash": "sha256-XeeVoKHQgfKuXoP6q90sUqKyl7EYy3ol2dVZGM+Jj94=", + "lastModified": 1721324361, + "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "ec6938c66253429192274d612912649a0cfe4d28", + "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086", "type": "github" }, "original": { @@ -1043,15 +1075,25 @@ }, "hyprlang_4": { "inputs": { - "nixpkgs": "nixpkgs_8", - "systems": "systems_8" + "hyprutils": [ + "hyprpaper", + "hyprutils" + ], + "nixpkgs": [ + "hyprpaper", + "nixpkgs" + ], + "systems": [ + "hyprpaper", + "systems" + ] }, "locked": { - "lastModified": 1713121246, - "narHash": "sha256-502X0Q0fhN6tJK7iEUA8CghONKSatW/Mqj4Wappd++0=", + "lastModified": 1721324361, + "narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "78fcaa27ae9e1d782faa3ff06c8ea55ddce63706", + "rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086", "type": "github" }, "original": { @@ -1063,18 +1105,16 @@ "hyprlock": { "inputs": { "hyprlang": "hyprlang_3", - "hyprutils": "hyprutils_2", - "nixpkgs": [ - "nixpkgs" - ], + "hyprutils": "hyprutils_4", + "nixpkgs": "nixpkgs_9", "systems": "systems_7" }, "locked": { - "lastModified": 1720707332, - "narHash": "sha256-OpUjVqJIxuouqUMmOAQI63XEOVk5EYyHwFVWdyrUdC8=", + "lastModified": 1721563228, + "narHash": "sha256-w+AyYuqlZ/uWEimiptlHjtDFECm/JlUOD2ciCw8/+/8=", "owner": "hyprwm", "repo": "Hyprlock", - "rev": "b407128caeb551ae808cf8d0fb653a252a271709", + "rev": "dba9d8b5175a6f23463035aafc6b0c741f9b73a5", "type": "github" }, "original": { @@ -1086,15 +1126,17 @@ "hyprpaper": { "inputs": { "hyprlang": "hyprlang_4", - "nixpkgs": "nixpkgs_9", - "systems": "systems_9" + "hyprutils": "hyprutils_5", + "hyprwayland-scanner": "hyprwayland-scanner_3", + "nixpkgs": "nixpkgs_10", + "systems": "systems_8" }, "locked": { - "lastModified": 1719939251, - "narHash": "sha256-N58i+BSqmz9n7WKFY0Q8c27NWetyzbJf/1NtJuNEQLg=", + "lastModified": 1721686135, + "narHash": "sha256-Hu2r0BX0/98FzNXI5Nmr+Y0C03iymd+TBiCdR8poW+M=", "owner": "hyprwm", "repo": "hyprpaper", - "rev": "13fcdd79efe439a81d807572cc4b4737abbad918", + "rev": "f1f7fc60f5ae2609a369964aeb7ddbf6f9277de7", "type": "github" }, "original": { @@ -1104,6 +1146,56 @@ } }, "hyprutils": { + "inputs": { + "nixpkgs": [ + "aquamarine-patched", + "nixpkgs" + ], + "systems": [ + "aquamarine-patched", + "systems" + ] + }, + "locked": { + "lastModified": 1721324102, + "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "962582a090bc233c4de9d9897f46794280288989", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_2": { + "inputs": { + "nixpkgs": [ + "hypridle", + "nixpkgs" + ], + "systems": [ + "hypridle", + "systems" + ] + }, + "locked": { + "lastModified": 1721324102, + "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "962582a090bc233c4de9d9897f46794280288989", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_3": { "inputs": { "nixpkgs": [ "hyprland", @@ -1115,11 +1207,11 @@ ] }, "locked": { - "lastModified": 1720545076, - "narHash": "sha256-Pxacc2uoxI00koXp5+CyNqHOTQlqNlK0rlRHDBHX4+g=", + "lastModified": 1721324102, + "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "6174a2a25f4e216c0f1d0c4278adc23c476b1d09", + "rev": "962582a090bc233c4de9d9897f46794280288989", "type": "github" }, "original": { @@ -1128,7 +1220,7 @@ "type": "github" } }, - "hyprutils_2": { + "hyprutils_4": { "inputs": { "nixpkgs": [ "hyprlock", @@ -1140,11 +1232,36 @@ ] }, "locked": { - "lastModified": 1717881334, - "narHash": "sha256-a0inRgJhPL6v9v7RPM/rx1kbXdfe3xJA1c9z0ZkYnh4=", + "lastModified": 1721324102, + "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", + "owner": "hyprwm", + "repo": "hyprutils", + "rev": "962582a090bc233c4de9d9897f46794280288989", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprutils", + "type": "github" + } + }, + "hyprutils_5": { + "inputs": { + "nixpkgs": [ + "hyprpaper", + "nixpkgs" + ], + "systems": [ + "hyprpaper", + "systems" + ] + }, + "locked": { + "lastModified": 1721324102, + "narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "0693f9398ab693d89c9a0aa3b3d062dd61b7a60e", + "rev": "962582a090bc233c4de9d9897f46794280288989", "type": "github" }, "original": { @@ -1154,6 +1271,31 @@ } }, "hyprwayland-scanner": { + "inputs": { + "nixpkgs": [ + "aquamarine-patched", + "nixpkgs" + ], + "systems": [ + "aquamarine-patched", + "systems" + ] + }, + "locked": { + "lastModified": 1721324119, + "narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwayland-scanner_2": { "inputs": { "nixpkgs": [ "hyprland", @@ -1165,11 +1307,36 @@ ] }, "locked": { - "lastModified": 1720215857, - "narHash": "sha256-JPdL+Qul+jEueAn8CARfcWP83eJgwkhMejQYfDvrgvU=", + "lastModified": 1721324119, + "narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=", + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprwayland-scanner", + "type": "github" + } + }, + "hyprwayland-scanner_3": { + "inputs": { + "nixpkgs": [ + "hyprpaper", + "nixpkgs" + ], + "systems": [ + "hyprpaper", + "systems" + ] + }, + "locked": { + "lastModified": 1721324119, + "narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "d5fa094ca27e0039be5e94c0a80ae433145af8bb", + "rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30", "type": "github" }, "original": { @@ -1230,11 +1397,11 @@ ] }, "locked": { - "lastModified": 1719845423, - "narHash": "sha256-ZLHDmWAsHQQKnmfyhYSHJDlt8Wfjv6SQhl2qek42O7A=", + "lastModified": 1721655289, + "narHash": "sha256-eJQQwXOKWjom9gtb7HvHd3+Wj5Sp+WrYR44r0EnaO5w=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "ec12b88104d6c117871fad55e931addac4626756", + "rev": "2ae24bcafdb88fdf70b061cc8b18d070dbd9013a", "type": "github" }, "original": { @@ -1250,11 +1417,11 @@ ] }, "locked": { - "lastModified": 1720334033, - "narHash": "sha256-X9pEvvHTVWJphhbUYqXvlLedOndNqGB7rvhSvL2CIgU=", + "lastModified": 1721531260, + "narHash": "sha256-O72uxk4gYFQDwNkoBioyrR3GK9EReZmexCStBaORMW8=", "owner": "nix-community", "repo": "nix-index-database", - "rev": "685e40e1348007d2cf76747a201bab43d86b38cb", + "rev": "b6db9fd8dc59bb2ccb403f76d16ba8bbc1d5263d", "type": "github" }, "original": { @@ -1272,11 +1439,11 @@ ] }, "locked": { - "lastModified": 1720830151, - "narHash": "sha256-5m2CnO1fM1Ek7UAxWCMT4Wy3St9LOSAc4cJUJauLpWE=", + "lastModified": 1721394956, + "narHash": "sha256-VnayJVKngasaNNiMlBhkeA//+V9EpEuT/mkOsFUbFDg=", "owner": "nix-community", "repo": "nix-ld-rs", - "rev": "971bf6fe2d8134b4ea0501b374be60fc2c7f22fb", + "rev": "2f1fe38bc69d2400652e0848d9d2ce2955a39cf6", "type": "github" }, "original": { @@ -1294,11 +1461,11 @@ ] }, "locked": { - "lastModified": 1720787015, - "narHash": "sha256-U3IqoGmIzBKEJ0ihRQ10GRRtdoDBI6Oxl6aiGbUA59A=", + "lastModified": 1721650907, + "narHash": "sha256-2VX/zPeLhGTsHpToFH1gfI+oGNS6m7ZUWWaqwmw3HVY=", "owner": "nix-community", "repo": "nixos-wsl", - "rev": "371b5076d718f7f637d3959d0203061f06af1263", + "rev": "6686cbe947cb8b135e229ad2a3447b88d1cf6da9", "type": "github" }, "original": { @@ -1391,11 +1558,11 @@ }, "nixpkgs-stable_3": { "locked": { - "lastModified": 1720282526, - "narHash": "sha256-dudRkHPRivMNOhd04YI+v4sWvn2SnN5ODSPIu5IVbco=", + "lastModified": 1721524707, + "narHash": "sha256-5NctRsoE54N86nWd0psae70YSLfrOek3Kv1e8KoXe/0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "550ac3e955c30fe96dd8b2223e37e0f5d225c927", + "rev": "556533a23879fc7e5f98dd2e0b31a6911a213171", "type": "github" }, "original": { @@ -1407,11 +1574,27 @@ }, "nixpkgs_10": { "locked": { - "lastModified": 1720542800, - "narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=", + "lastModified": 1721138476, + "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { + "lastModified": 1721562059, + "narHash": "sha256-Tybxt65eyOARf285hMHIJ2uul8SULjFZbT9ZaEeUnP8=", "owner": "nixos", "repo": "nixpkgs", - "rev": "feb2849fdeb70028c70d73b848214b00d324a497", + "rev": "68c9ed8bbed9dfce253cc91560bf9043297ef2fe", "type": "github" }, "original": { @@ -1421,13 +1604,13 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_12": { "locked": { - "lastModified": 1719848872, - "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=", + "lastModified": 1721562059, + "narHash": "sha256-Tybxt65eyOARf285hMHIJ2uul8SULjFZbT9ZaEeUnP8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8", + "rev": "68c9ed8bbed9dfce253cc91560bf9043297ef2fe", "type": "github" }, "original": { @@ -1437,7 +1620,7 @@ "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_13": { "locked": { "lastModified": 1719082008, "narHash": "sha256-jHJSUH619zBQ6WdC21fFAlDxHErKVDJ5fpN0Hgx4sjs=", @@ -1453,13 +1636,13 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_14": { "locked": { - "lastModified": 1718983919, - "narHash": "sha256-+1xgeIow4gJeiwo4ETvMRvWoircnvb0JOt7NS9kUhoM=", + "lastModified": 1721466660, + "narHash": "sha256-pFSxgSZqZ3h+5Du0KvEL1ccDZBwu4zvOil1zzrPNb3c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "90338afd6177fc683a04d934199d693708c85a3b", + "rev": "6e14bbce7bea6c4efd7adfa88a40dac750d80100", "type": "github" }, "original": { @@ -1484,15 +1667,15 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1716948383, - "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", - "owner": "nixos", + "lastModified": 1721138476, + "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", + "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" @@ -1500,43 +1683,43 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1706487304, - "narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=", - "owner": "NixOS", + "lastModified": 1716948383, + "narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=", + "owner": "nixos", "repo": "nixpkgs", - "rev": "90f456026d284c22b3e3497be980b2e47d0b28ac", + "rev": "ad57eef4ef0659193044870c731987a6df5cf56b", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", + "owner": "nixos", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_5": { "locked": { - "lastModified": 1712963716, - "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", + "lastModified": 1706487304, + "narHash": "sha256-LE8lVX28MV2jWJsidW13D2qrHU/RUUONendL2Q/WlJg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", + "rev": "90f456026d284c22b3e3497be980b2e47d0b28ac", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" } }, "nixpkgs_6": { "locked": { - "lastModified": 1720542800, - "narHash": "sha256-ZgnNHuKV6h2+fQ5LuqnUaqZey1Lqqt5dTUAiAnqH0QQ=", + "lastModified": 1721138476, + "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "feb2849fdeb70028c70d73b848214b00d324a497", + "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", "type": "github" }, "original": { @@ -1548,11 +1731,11 @@ }, "nixpkgs_7": { "locked": { - "lastModified": 1712163089, - "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", + "lastModified": 1721379653, + "narHash": "sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", + "rev": "1d9c2c9b3e71b9ee663d11c5d298727dace8d374", "type": "github" }, "original": { @@ -1564,11 +1747,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1708475490, - "narHash": "sha256-g1v0TsWBQPX97ziznfJdWhgMyMGtoBFs102xSYO4syU=", + "lastModified": 1712163089, + "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0e74ca98a74bc7270d28838369593635a5db3260", + "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", "type": "github" }, "original": { @@ -1580,11 +1763,11 @@ }, "nixpkgs_9": { "locked": { - "lastModified": 1712963716, - "narHash": "sha256-WKm9CvgCldeIVvRz87iOMi8CFVB1apJlkUT4GGvA0iM=", + "lastModified": 1721138476, + "narHash": "sha256-+W5eZOhhemLQxelojLxETfbFbc19NWawsXBlapYpqIA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cfd6b5fc90b15709b780a5a1619695a88505a176", + "rev": "ad0b5eed1b6031efaed382844806550c3dcb4206", "type": "github" }, "original": { @@ -1602,15 +1785,15 @@ "git-hooks": "git-hooks", "home-manager": "home-manager_2", "nix-darwin": "nix-darwin", - "nixpkgs": "nixpkgs_11", + "nixpkgs": "nixpkgs_12", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1720804407, - "narHash": "sha256-mLVzkOpfOqYPmwjAAHRmeVUoOUmpLpxmfKDObT1FVtc=", + "lastModified": 1721769661, + "narHash": "sha256-58PNElnK77DGprTqkakVi0wB9oTcOUtyYkw80wb/2Sk=", "owner": "nix-community", "repo": "nixvim", - "rev": "89d74cdce173223f57754c6a315c929f8fc14229", + "rev": "10cc58d497ab422801b68ec8cde036b521f76a50", "type": "github" }, "original": { @@ -1621,11 +1804,11 @@ }, "nur": { "locked": { - "lastModified": 1720843460, - "narHash": "sha256-iUA+xNeyVZOAApZ+6hnueGQgNU3JybcRgsHwBttStcc=", + "lastModified": 1721771144, + "narHash": "sha256-XWOhdlTNf58pR8Mwu3a59vrA7aOftt/KSt4EI2GwZNY=", "owner": "nix-community", "repo": "NUR", - "rev": "3aa39365e8468ecb3bad4494b37a784c325b986e", + "rev": "a6160422592deae0a754b2d969cf611f9339f212", "type": "github" }, "original": { @@ -1669,15 +1852,15 @@ "inputs": { "flake-compat": "flake-compat_6", "gitignore": "gitignore_3", - "nixpkgs": "nixpkgs_12", + "nixpkgs": "nixpkgs_13", "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1720524665, - "narHash": "sha256-ni/87oHPZm6Gv0ECYxr1f6uxB0UKBWJ6HvS7lwLU6oY=", + "lastModified": 1721042469, + "narHash": "sha256-6FPUl7HVtvRHCCBQne7Ylp4p+dpP3P/OYuzjztZ4s70=", "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "8d6a17d0cdf411c55f12602624df6368ad86fac1", + "rev": "f451c19376071a90d8c58ab1a953c6e9840527fd", "type": "github" }, "original": { @@ -1690,6 +1873,7 @@ "inputs": { "anyrun": "anyrun", "anyrun-nixos-options": "anyrun-nixos-options", + "aquamarine-patched": "aquamarine-patched", "catppuccin": "catppuccin", "catppuccin-cursors": "catppuccin-cursors", "darwin": "darwin", @@ -1707,8 +1891,7 @@ "nix-index-database": "nix-index-database", "nix-ld-rs": "nix-ld-rs", "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_10", - "nixpkgs-small": "nixpkgs-small", + "nixpkgs": "nixpkgs_11", "nixvim": "nixvim", "nur": "nur", "pre-commit-hooks-nix": "pre-commit-hooks-nix_2", @@ -1724,7 +1907,7 @@ "rust-overlay": { "inputs": { "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1714529851, @@ -1773,11 +1956,11 @@ ] }, "locked": { - "lastModified": 1719022649, - "narHash": "sha256-ZDS8x9XpFeSBs9gMTHoujKWPn+i9ecqE9NWEUF07Yuc=", + "lastModified": 1721441897, + "narHash": "sha256-gYGX9/22tPNeF7dR6bWN5rsrpU4d06GnQNNgZ6ZiXz0=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "ff019b65a656d36dca3e57b43c40c44eec7852c5", + "rev": "b7996075da11a2d441cfbf4e77c2939ce51506fd", "type": "github" }, "original": { @@ -1862,11 +2045,11 @@ "nixpkgs-stable": "nixpkgs-stable_3" }, "locked": { - "lastModified": 1720479166, - "narHash": "sha256-jqvhLDXzTLTHq9ZviFOpcTmXXmnbLfz7mWhgMNipMN4=", + "lastModified": 1721688883, + "narHash": "sha256-9jsjsRKtJRqNSTXKj9zuDFRf2PGix30nMx9VKyPgD2U=", "owner": "Mic92", "repo": "sops-nix", - "rev": "67035a355b1d52d2d238501f8cc1a18706979760", + "rev": "aff2f88277dabe695de4773682842c34a0b7fd54", "type": "github" }, "original": { @@ -1883,11 +2066,11 @@ ] }, "locked": { - "lastModified": 1720757491, - "narHash": "sha256-ctJJF0+SMA6ctYcmsYudGsWlYo8CvA3x/a0gW0M/bM8=", + "lastModified": 1721727694, + "narHash": "sha256-X3qaEUG5zgJi9G1ceLpjuvlC9euTVNGlnJilfCgWJu4=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "45c8a1d76c34d95ff6f948fff8356f46bc8ef48c", + "rev": "597ae057680ac250083166efab806dcc2e47dd6b", "type": "github" }, "original": { @@ -1986,22 +2169,22 @@ "type": "github" } }, - "systems_15": { + "systems_2": { "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default", + "repo": "default-linux", "type": "github" } }, - "systems_2": { + "systems_3": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -2016,7 +2199,7 @@ "type": "github" } }, - "systems_3": { + "systems_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -2031,21 +2214,6 @@ "type": "github" } }, - "systems_4": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, "systems_5": { "locked": { "lastModified": 1689347949, @@ -2108,16 +2276,16 @@ }, "systems_9": { "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "type": "github" }, "original": { "owner": "nix-systems", - "repo": "default-linux", + "repo": "default", "type": "github" } }, @@ -2129,11 +2297,11 @@ ] }, "locked": { - "lastModified": 1719887753, - "narHash": "sha256-p0B2r98UtZzRDM5miGRafL4h7TwGRC4DII+XXHDHqek=", + "lastModified": 1721458737, + "narHash": "sha256-wNXLQ/ATs1S4Opg1PmuNoJ+Wamqj93rgZYV3Di7kxkg=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "bdb6355009562d8f9313d9460c0d3860f525bc6c", + "rev": "888bfb10a9b091d9ed2f5f8064de8d488f7b7c97", "type": "github" }, "original": { @@ -2144,7 +2312,7 @@ }, "utils": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1701680307, @@ -2168,11 +2336,11 @@ ] }, "locked": { - "lastModified": 1720847119, - "narHash": "sha256-Lss9JGxfnEcmIYI/JDh2t2zU8GBZg9XI6saJ7xnB5T0=", + "lastModified": 1721631968, + "narHash": "sha256-BwBRNmGv2nX1nEhitOKyoOvmk+G6WoBaBHAlKYy5Edg=", "owner": "Alexays", "repo": "Waybar", - "rev": "3d0fd14f3f26085d2669b0197ab23c241100a2b4", + "rev": "003dd3a9a260a212648b6ab4a70f058c6437d40d", "type": "github" }, "original": { @@ -2187,17 +2355,17 @@ "freetype2": "freetype2", "harfbuzz": "harfbuzz", "libpng": "libpng", - "nixpkgs": "nixpkgs_13", + "nixpkgs": "nixpkgs_14", "rust-overlay": "rust-overlay_3", "zlib": "zlib" }, "locked": { "dir": "nix", - "lastModified": 1719842966, - "narHash": "sha256-jZqQMXdyL5UypCVXqyKYH/GlDdjRPSMKrB0PzCjd1D8=", + "lastModified": 1721660996, + "narHash": "sha256-einWGKcn7zLSCYChDXN1aKrw1nz3P89dF/gK+OPD0Qw=", "owner": "wez", "repo": "wezterm", - "rev": "69686f4564ea460111936dee3179ecf8c80e9930", + "rev": "7e8fdc118d2d7ceb51c720a966090f6cb65089b7", "type": "github" }, "original": { @@ -2224,11 +2392,11 @@ ] }, "locked": { - "lastModified": 1720194466, - "narHash": "sha256-Rizg9efi6ue95zOp0MeIV2ZedNo+5U9G2l6yirgBUnA=", + "lastModified": 1721648131, + "narHash": "sha256-cyyxu/oj4QEFp3CVx2WeXa9T4OAUyynuBJHGkBZSxJI=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "b9b97e5ba23fe7bd5fa4df54696102e8aa863cf6", + "rev": "663be9cad424b170b28b9fa8a61042d721007f3b", "type": "github" }, "original": { @@ -2240,11 +2408,11 @@ "yubikey-guide": { "flake": false, "locked": { - "lastModified": 1720404778, - "narHash": "sha256-LqZkHvA7bv0nldxe/cm51aHkTV0EBDbO3eU1g1C60Us=", + "lastModified": 1721595697, + "narHash": "sha256-xHsdj0ui2YzWNxUHbOXrvB73blIui9dwScKtzoruJxs=", "owner": "drduh", "repo": "YubiKey-Guide", - "rev": "a46409e2e8e5e360290a2d720bfc3bc71b76be30", + "rev": "d9af1dea5014a229ddd639c30f7628bda7acf311", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 68c9c1b52..56a77e1a4 100644 --- a/flake.nix +++ b/flake.nix @@ -5,6 +5,8 @@ anyrun.url = "github:anyrun-org/anyrun"; anyrun-nixos-options.url = "github:n3oney/anyrun-nixos-options"; + aquamarine-patched.url = "github:sjcobb2022/aquamarine-patched"; + catppuccin-cursors.url = "github:catppuccin/cursors"; catppuccin.url = "github:catppuccin/nix"; @@ -40,12 +42,11 @@ # Hyprlock hyprlock = { url = "github:hyprwm/Hyprlock"; - # NOTE: required to prevent red screen on lock - inputs.nixpkgs.follows = "nixpkgs"; }; # Hyprland hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; + hyprland.inputs.aquamarine.follows = "aquamarine-patched"; # hyprland.url = "git+https://github.com/khaneliman/Hyprland?ref=windows&submodules=1"; # Hyprpaper @@ -99,6 +100,7 @@ url = "github:nix-community/nix-ld-rs"; inputs.nixpkgs.follows = "nixpkgs"; }; + # Neovim nix configuration nixvim = { url = "github:nix-community/nixvim"; diff --git a/homes/aarch64-darwin/khaneliman@khanelimac/default.nix b/homes/aarch64-darwin/khaneliman@khanelimac/default.nix index a572ea2c1..0e9199407 100644 --- a/homes/aarch64-darwin/khaneliman@khanelimac/default.nix +++ b/homes/aarch64-darwin/khaneliman@khanelimac/default.nix @@ -68,12 +68,14 @@ in suites = { business = enabled; common = enabled; + desktop = enabled; development = { enable = true; nixEnable = true; }; music = enabled; + networking = enabled; photo = enabled; social = enabled; }; diff --git a/homes/x86_64-linux/khaneliman@khanelinix/default.nix b/homes/x86_64-linux/khaneliman@khanelinix/default.nix index 900eb43ce..0ca4bfbf1 100644 --- a/homes/x86_64-linux/khaneliman@khanelinix/default.nix +++ b/homes/x86_64-linux/khaneliman@khanelinix/default.nix @@ -60,8 +60,8 @@ in prependConfig = # bash lib.concatStringsSep "\n" [ "# See https://wiki.hyprland.org/Configuring/Monitors/" - "monitor=DP-3, 3840x2160@60, 1420x0, 2" - "monitor=DP-1, 5120x1440@120, 0x1080, 1" + "monitor=DP-3, 3840x2160@60, 1420x0, 2, bitdepth, 10" + "monitor=DP-1, 5120x1440@120, 0x1080, 1, bitdepth, 10" "" ( "exec-once = ${getExe pkgs.xorg.xrandr} " @@ -80,6 +80,59 @@ in "workspace = 9, monitor:DP-1, persistent:true" ]; }; + + sway = { + enable = true; + + settings = { + output = { + "DP-3" = { + resolution = "3840x2160"; + position = "1420,0"; + scale = "2"; + }; + "DP-1" = { + resolution = "5120x1440"; + position = "0,1080"; + }; + }; + + workspaceOutputAssign = [ + { + workspace = "1"; + output = "DP-3"; + } + { + workspace = "2"; + output = "DP-1"; + } + { + workspace = "3"; + output = "DP-1"; + } + { + workspace = "4"; + output = "DP-1"; + } + { + workspace = "5"; + output = "DP-1"; + } + { + workspace = "6"; + output = "DP-1"; + } + { + workspace = "7"; + output = "DP-1"; + } + { + workspace = "8"; + output = "DP-1"; + } + ]; + }; + }; }; }; @@ -162,6 +215,7 @@ in emulation = enabled; games = enabled; music = enabled; + networking = enabled; photo = enabled; social = enabled; video = enabled; diff --git a/lib/module/default.nix b/lib/module/default.nix index f061275ad..2bf69ae23 100644 --- a/lib/module/default.nix +++ b/lib/module/default.nix @@ -32,5 +32,9 @@ rec { default-attrs = mapAttrs (_key: mkDefault); + force-attrs = mapAttrs (_key: mkForce); + nested-default-attrs = mapAttrs (_key: default-attrs); + + nested-force-attrs = mapAttrs (_key: force-attrs); } diff --git a/modules/darwin/archetypes/workstation/default.nix b/modules/darwin/archetypes/workstation/default.nix index 4c116c5f5..178a89800 100644 --- a/modules/darwin/archetypes/workstation/default.nix +++ b/modules/darwin/archetypes/workstation/default.nix @@ -17,7 +17,7 @@ in config = mkIf cfg.enable { khanelinix = { - desktop.addons.barrier = enabled; + # TODO: input-leap replace barrier suites = { business = enabled; diff --git a/modules/darwin/desktop/addons/barrier/default.nix b/modules/darwin/desktop/addons/barrier/default.nix deleted file mode 100644 index c6ee6bc49..000000000 --- a/modules/darwin/desktop/addons/barrier/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - lib, - namespace, - ... -}: -let - inherit (lib) mkIf; - inherit (lib.${namespace}) mkBoolOpt; - - cfg = config.${namespace}.desktop.addons.barrier; -in -{ - options.${namespace}.desktop.addons.barrier = { - enable = mkBoolOpt false "Whether or not to enable barrier."; - }; - - config = mkIf cfg.enable { - homebrew = { - casks = [ "barrier" ]; - }; - }; -} diff --git a/modules/darwin/suites/networking/default.nix b/modules/darwin/suites/networking/default.nix index 5749c24a6..936466e5d 100644 --- a/modules/darwin/suites/networking/default.nix +++ b/modules/darwin/suites/networking/default.nix @@ -1,7 +1,6 @@ { config, lib, - pkgs, namespace, ... }: @@ -26,14 +25,5 @@ in networking = enabled; }; }; - - environment.systemPackages = with pkgs; [ - # ifstat-legacy - nmap - openssh - speedtest-cli - ssh-copy-id - wireguard-go - ]; }; } diff --git a/modules/home/programs/graphical/bars/sketchybar/config/items/today/weather.lua b/modules/home/programs/graphical/bars/sketchybar/config/items/today/weather.lua index 74347a1e9..038b0368d 100644 --- a/modules/home/programs/graphical/bars/sketchybar/config/items/today/weather.lua +++ b/modules/home/programs/graphical/bars/sketchybar/config/items/today/weather.lua @@ -61,7 +61,7 @@ weather.details = Sbar.add("item", "weather.details", { }) -- Update function -weather.temp:subscribe({ "routine", "forced", "weather_update" }, function() +weather.temp:subscribe({ "routine", "forced", "system_woke", "weather_update" }, function() -- Reset popup state weather.temp:set({ popup = { drawing = false } }) diff --git a/modules/home/programs/graphical/bars/waybar/default.nix b/modules/home/programs/graphical/bars/waybar/default.nix index bc84fa76a..2f0803a16 100644 --- a/modules/home/programs/graphical/bars/waybar/default.nix +++ b/modules/home/programs/graphical/bars/waybar/default.nix @@ -30,6 +30,7 @@ let default-modules = import ./modules/default-modules.nix { inherit lib pkgs; }; group-modules = import ./modules/group-modules.nix; hyprland-modules = import ./modules/hyprland-modules.nix { inherit config lib; }; + sway-modules = import ./modules/sway-modules.nix { inherit config lib; }; commonAttributes = { layer = "top"; @@ -39,36 +40,45 @@ let margin-left = 20; margin-right = 20; - modules-left = [ - "custom/power" - "hyprland/workspaces" - "custom/separator-left" - "hyprland/window" - ]; + modules-left = + [ "custom/power" ] + ++ lib.optionals config.${namespace}.programs.graphical.wms.hyprland.enable [ + "hyprland/workspaces" + ] + ++ lib.optionals config.${namespace}.programs.graphical.wms.sway.enable [ "sway/workspaces" ] + ++ [ "custom/separator-left" ] + ++ lib.optionals config.${namespace}.programs.graphical.wms.hyprland.enable [ "hyprland/window" ] + ++ lib.optionals config.${namespace}.programs.graphical.wms.sway.enable [ "sway/window" ]; }; fullSizeModules = { - modules-right = [ - "group/tray" - "custom/separator-right" - "group/stats" - "custom/separator-right" - "group/control-center" - "hyprland/submap" - "custom/weather" - "clock" - ]; + modules-right = + [ + "group/tray" + "custom/separator-right" + "group/stats" + "custom/separator-right" + "group/control-center" + ] + ++ lib.optionals config.${namespace}.programs.graphical.wms.hyprland.enable [ "hyprland/submap" ] + ++ [ + "custom/weather" + "clock" + ]; }; condensedModules = { - modules-right = [ - "group/tray-drawer" - "group/stats-drawer" - "group/control-center" - "hyprland/submap" - "custom/weather" - "clock" - ]; + modules-right = + [ + "group/tray-drawer" + "group/stats-drawer" + "group/control-center" + ] + ++ lib.optionals config.${namespace}.programs.graphical.wms.hyprland.enable [ "hyprland/submap" ] + ++ [ + "custom/weather" + "clock" + ]; }; mkBarSettings = @@ -80,6 +90,7 @@ let default-modules group-modules (lib.mkIf config.${namespace}.programs.graphical.wms.hyprland.enable hyprland-modules) + (lib.mkIf config.${namespace}.programs.graphical.wms.sway.enable sway-modules) ]; generateOutputSettings = diff --git a/modules/home/programs/graphical/bars/waybar/modules/custom-modules.nix b/modules/home/programs/graphical/bars/waybar/modules/custom-modules.nix index b442a7201..08bdd686e 100644 --- a/modules/home/programs/graphical/bars/waybar/modules/custom-modules.nix +++ b/modules/home/programs/graphical/bars/waybar/modules/custom-modules.nix @@ -128,21 +128,23 @@ in menu-actions = let systemctl = getExe' pkgs.systemd "systemctl"; - lock = getExe config.programs.hyprlock.package; + hyprlock = getExe config.programs.hyprlock.package; + swaylock = getExe config.programs.swaylock.package; poweroff = getExe' pkgs.systemd "poweroff"; reboot = getExe' pkgs.systemd "reboot"; terminal = getExe config.programs.kitty.package; top = getExe config.programs.btop.package; hyprctl = getExe' config.wayland.windowManager.hyprland.package "hyprctl"; + swaymsg = getExe' config.wayland.windowManager.sway.package "swaymsg"; in { inherit poweroff reboot; hibernate = "${systemctl} hibernate"; - lock = "${lock} --immediate"; + lock = ''([[ "$XDG_CURRENT_DESKTOP" == "sway" ]] && ${swaylock} -defF) || ([[ "$XDG_CURRENT_DESKTOP" == "Hyprland" ]] && ${hyprlock} --immediate)''; suspend = "${systemctl} suspend"; top = "${terminal} ${top}"; - logout = "${hyprctl} dispatch exit && ${systemctl} --user exit "; + logout = "$(${hyprctl} dispatch exit || ${swaymsg} exit) && ${systemctl} --user exit "; }; }; diff --git a/modules/home/programs/graphical/bars/waybar/modules/default-modules.nix b/modules/home/programs/graphical/bars/waybar/modules/default-modules.nix index 8ce01dbd1..1e628c09c 100644 --- a/modules/home/programs/graphical/bars/waybar/modules/default-modules.nix +++ b/modules/home/programs/graphical/bars/waybar/modules/default-modules.nix @@ -1,6 +1,8 @@ { lib, pkgs, ... }: let inherit (lib) getExe getExe'; + + catppuccin = import (lib.snowfall.fs.get-file "modules/home/theme/catppuccin/colors.nix"); in { backlight = @@ -83,6 +85,26 @@ in clock = { tooltip-format = "{:%Y %B}\n{calendar}"; format = "󰃭 {:%a %d %b \n 󰅐 %I:%M %p}"; + calendar = { + mode = "year"; + mode-mon-col = 3; + weeks-pos = "right"; + on-scroll = 1; + format = { + months = "{}"; + days = "{}"; + weeks = "W{}"; + weekdays = "{}"; + today = "{}"; + }; + }; + actions = { + on-click-right = "mode"; + on-click-forward = "tz_up"; + on-click-backward = "tz_down"; + on-scroll-up = "shift_up"; + on-scroll-down = "shift_down"; + }; }; cpu = { diff --git a/modules/home/programs/graphical/bars/waybar/modules/hyprland-modules.nix b/modules/home/programs/graphical/bars/waybar/modules/hyprland-modules.nix index aff561119..01134d9df 100644 --- a/modules/home/programs/graphical/bars/waybar/modules/hyprland-modules.nix +++ b/modules/home/programs/graphical/bars/waybar/modules/hyprland-modules.nix @@ -109,7 +109,7 @@ in "class" = ""; "class" = "󰚯"; "class" = "󰢹"; - "class" = "󰕼"; + "class" = "󱍼"; "class title<.*WL-1.*>" = ""; "class" = ""; "code-url-handler" = "󰨞"; diff --git a/modules/home/programs/graphical/bars/waybar/modules/sway-modules.nix b/modules/home/programs/graphical/bars/waybar/modules/sway-modules.nix new file mode 100644 index 000000000..efcbb90bd --- /dev/null +++ b/modules/home/programs/graphical/bars/waybar/modules/sway-modules.nix @@ -0,0 +1,121 @@ +{ config, lib, ... }: +let + inherit (lib) getExe'; +in +{ + "sway/window" = { + format = "{}"; + separate-outputs = true; + }; + + "sway/workspaces" = { + all-outputs = false; + active-only = "false"; + on-click = "activate"; + on-scroll-up = "${getExe' config.wayland.windowManager.sway.package "swaymsg"} workspace next"; + on-scroll-down = "${getExe' config.wayland.windowManager.sway.package "swaymsg"} workspace prev"; + format = "{icon} {windows}"; + format-icons = { + "1" = "󰎤"; + "2" = "󰎧"; + "3" = "󰎪"; + "4" = "󰎭"; + "5" = "󰎱"; + "6" = "󰎳"; + "7" = "󰎶"; + "8" = "󰎹"; + "9" = "󰎼"; + "10" = "󰽽"; + "urgent" = "󱨇"; + "default" = ""; + "empty" = "󱓼"; + }; + persistent-workspaces = { + "1" = [ "DP-3" ]; + "2" = [ "DP-1" ]; + "3" = [ "DP-1" ]; + "4" = [ "DP-1" ]; + "5" = [ "DP-1" ]; + "6" = [ "DP-1" ]; + "7" = [ "DP-1" ]; + "8" = [ "DP-1" ]; + }; + window-format = "{name}"; + window-rewrite-default = ""; + window-rewrite = { + "class<.blueman-manager-wrapped>" = ""; + "class<.devede_ng.py-wrapped>" = ""; + "class<.pitivi-wrapped>" = "󱄢"; + "class<.xemu-wrapped>" = ""; + "class<1Password>" = "󰢁"; + "class" = ""; + "class" = ""; + "class" = "󰞀"; + "class" = "󰈎"; + "class" = ""; + "class" = "󰭹"; + "class" = "󰄄"; + "class" = "󰊤"; + "class" = ""; + "class" = ""; + "class" = ""; + "class" = "󰛮"; + "class" = "󰟡"; + "class" = "󰒱"; + "class" = ""; + "class" = ""; + "class" = ""; + "class" = "󰨞"; + "class" = "󰡔"; + "class" = "󰙯"; + "class" = ""; + "class" = ""; + "class title<.*github.*>" = ""; + "class title<.*twitch|youtube|plex|tntdrama|bally sports.*>" = ""; + "class" = ""; + "class" = ""; + "class" = "󱢾"; + "class" = "󰜭"; + "class" = ""; + "class" = ""; + "class" = "󱎏"; + "class" = "󰽉"; + "class" = "󱎐"; + "class" = ""; + "class" = "󱎓"; + "class" = "󱂷"; + "class" = "󱁇"; + "class" = "󰍳"; + "class" = ""; + "class" = "󰉋"; + "class" = "󰄄"; + "class" = ""; + "class" = "󰍳"; + "class" = ""; + "class" = "󰈰"; + "class" = ""; + "class" = ""; + "class" = ""; + "class" = ""; + "class" = ""; + "class" = ""; + "class" = ""; + "class" = "󱩺"; + "class" = "󰊻"; + "class" = "󰉋"; + "class" = ""; + "class" = "󰚯"; + "class" = "󰢹"; + "class" = "󱍼"; + "class" = "󱍼"; + "class title<.*WL-1.*>" = ""; + "class" = ""; + "code-url-handler" = "󰨞"; + "title" = ""; + "title" = ""; + "title" = ""; + }; + }; +} diff --git a/modules/home/programs/graphical/bars/waybar/modules/wlr-modules.nix b/modules/home/programs/graphical/bars/waybar/modules/wlr-modules.nix deleted file mode 100644 index 8763026b9..000000000 --- a/modules/home/programs/graphical/bars/waybar/modules/wlr-modules.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ - "wlr/workspaces" = { - all-outputs = false; - active-only = "false"; - on-click = "activate"; - format = "{icon}"; - format-icons = { - "1" = ""; - "2" = ""; - "3" = ""; - "4" = ""; - "5" = ""; - "6" = ""; - "7" = ""; - "8" = "󰢹"; - "urgent" = ""; - "default" = ""; - }; - persistent_workspaces = { - "1" = [ "DP-3" ]; - "2" = [ "DP-1" ]; - "3" = [ "DP-1" ]; - "4" = [ "DP-1" ]; - "5" = [ "DP-1" ]; - "6" = [ "DP-1" ]; - "7" = [ "DP-1" ]; - "8" = [ "DP-1" ]; - }; - }; -} diff --git a/modules/home/programs/graphical/wms/hyprland/default.nix b/modules/home/programs/graphical/wms/hyprland/default.nix index 7a8f6b631..922995fd2 100644 --- a/modules/home/programs/graphical/wms/hyprland/default.nix +++ b/modules/home/programs/graphical/wms/hyprland/default.nix @@ -52,7 +52,12 @@ in config = mkIf cfg.enable { home = { - packages = with pkgs; [ xwaylandvideobridge ]; + packages = with pkgs; [ + xwaylandvideobridge + # NOTE: xdph requirement + grim + slurp + ]; sessionVariables = { @@ -95,6 +100,8 @@ in }; services = { + cliphist.systemdTargets = [ "hyprland-session.target" ]; + hypridle = enabled; hyprpaper = { @@ -113,8 +120,6 @@ in }; }; - services.cliphist.systemdTarget = "hyprland-session.target"; - wayland.windowManager.hyprland = { enable = true; @@ -138,6 +143,11 @@ in systemd = { enable = true; enableXdgAutostart = true; + extraCommands = [ + "systemctl --user stop hyprland-session.target" + "systemctl --user reset-failed" + "systemctl --user start hyprland-session.target" + ]; variables = [ "--all" ]; }; diff --git a/modules/home/programs/graphical/wms/hyprland/variables.nix b/modules/home/programs/graphical/wms/hyprland/variables.nix index f8c2468af..ccdecfa8d 100644 --- a/modules/home/programs/graphical/wms/hyprland/variables.nix +++ b/modules/home/programs/graphical/wms/hyprland/variables.nix @@ -56,6 +56,7 @@ in colored_stdout_logs = true; disable_logs = false; enable_stdout_logs = true; + error_position = -1; }; decoration = { @@ -88,7 +89,7 @@ in }; general = { - allow_tearing = true; + # allow_tearing = true; border_size = 2; "col.active_border" = "rgba(7793D1FF)"; "col.inactive_border" = "rgb(5e6798)"; @@ -139,6 +140,7 @@ in sensitivity = 0; # -1.0 - 1.0, 0 means no modification. scroll_factor = 1.0; + emulate_discrete_scroll = 1; # repeat_delay = 500; # Mimic the responsiveness of mac setup # repeat_rate = 50; # Mimic the responsiveness of mac setup }; diff --git a/modules/home/programs/graphical/wms/sway/apps.nix b/modules/home/programs/graphical/wms/sway/apps.nix new file mode 100644 index 000000000..bc0ba7650 --- /dev/null +++ b/modules/home/programs/graphical/wms/sway/apps.nix @@ -0,0 +1,34 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) mkIf getExe; + + cfg = config.${namespace}.programs.graphical.wms.sway; +in +{ + config = mkIf cfg.enable { + wayland.windowManager.sway = { + config = { + startup = [ + { command = getExe config.programs.firefox.package; } + { command = getExe pkgs.steam; } + { command = getExe pkgs.discord; } + { command = getExe pkgs.thunderbird; } + + # Startup background apps + { command = "${getExe pkgs.openrgb-with-all-plugins} --startminimized --profile default"; } + { command = "${getExe pkgs._1password-gui} --silent"; } + { command = getExe pkgs.tailscale-systray; } + { command = "run-as-service $(${getExe pkgs.wayvnc} $(${getExe pkgs.tailscale} ip --4))"; } + + { command = "${lib.getExe pkgs.libnotify} --icon ~/.face -u normal \"Hello $(whoami)\""; } + ]; + }; + }; + }; +} diff --git a/modules/home/programs/graphical/wms/sway/binds.nix b/modules/home/programs/graphical/wms/sway/binds.nix new file mode 100644 index 000000000..a6a3dda7f --- /dev/null +++ b/modules/home/programs/graphical/wms/sway/binds.nix @@ -0,0 +1,209 @@ +{ + config, + inputs, + lib, + namespace, + pkgs, + system, + ... +}: +let + inherit (lib) + mkIf + getExe + getExe' + mkForce + ; + inherit (inputs) hyprland-contrib; + + cfg = config.${namespace}.programs.graphical.wms.sway; +in +{ + config = mkIf cfg.enable { + wayland.windowManager.sway = { + config = { + keybindings = + let + swayCfg = config.wayland.windowManager.sway.config; + + convert = getExe' pkgs.imagemagick "convert"; + grimblast = getExe hyprland-contrib.packages.${system}.grimblast; + wl-copy = getExe' pkgs.wl-clipboard "wl-copy"; + wl-paste = getExe' pkgs.wl-clipboard "wl-paste"; + + getDateTime = getExe ( + pkgs.writeShellScriptBin "getDateTime" # bash + '' + echo $(date +'%Y%m%d_%H%M%S') + '' + ); + + screenshot-path = "/home/${config.${namespace}.user.name}/Pictures/screenshots"; + browser = "${getExe config.programs.firefox.package}"; + explorer = "${getExe pkgs.xfce.thunar}"; + notification_center = "${getExe' config.services.swaync.package "swaync-client"}"; + launcher = "anyrun"; + looking-glass = "${getExe pkgs.looking-glass-client}"; + screen-locker = "${getExe config.programs.swaylock.package}"; + # window-inspector = "${getExe sway-contrib.packages.${system}.hyprprop}"; + screen-recorder = "${getExe pkgs.${namespace}.record_screen}"; + + # screenshot commands + grimblast_area_file = ''file="${screenshot-path}/$(${getDateTime}).png" && ${grimblast} --freeze --notify save area "$file"''; + grimblast_active_file = ''file="${screenshot-path}/$(${getDateTime}).png" && ${grimblast} --notify save active "$file"''; + grimblast_screen_file = ''file="${screenshot-path}/$(${getDateTime}).png" && ${grimblast} --notify save screen "$file"''; + grimblast_area_swappy = ''${grimblast} --freeze save area - | ${getExe pkgs.swappy} -f -''; + grimblast_active_swappy = ''${grimblast} save active - | ${getExe pkgs.swappy} -f -''; + grimblast_screen_swappy = ''${grimblast} save screen - | ${getExe pkgs.swappy} -f -''; + grimblast_area_clipboard = "${grimblast} --freeze --notify copy area"; + grimblast_active_clipboard = "${grimblast} --notify copy active"; + grimblast_screen_clipboard = "${grimblast} --notify copy screen"; + + # utility commands + color_picker = "${getExe pkgs.hyprpicker} -a && (${convert} -size 32x32 xc:$(${wl-paste}) /tmp/color.png && ${getExe pkgs.libnotify} \"Color Code:\" \"$(${wl-paste})\" -h \"string:bgcolor:$(${wl-paste})\" --icon /tmp/color.png -u critical -t 4000)"; + cliphist = "${getExe pkgs.cliphist} list | anyrun --show-results-immediately true | ${getExe pkgs.cliphist} decode | ${wl-copy}"; + in + lib.mkMerge [ + (lib.mkOptionDefault { + "${swayCfg.modifier}+BackSpace" = "exec pkill -SIGUSR1 swaylock || WAYLAND_DISPLAY=wayland-1 $screen-locker"; + "${swayCfg.modifier}+Return" = "exec ${swayCfg.terminal}"; + "${swayCfg.modifier}+Shift+q" = "kill"; + + # "${swayCfg.modifier}+${swayCfg.left}" = "focus left"; + # "${swayCfg.modifier}+${swayCfg.down}" = "focus down"; + # "${swayCfg.modifier}+${swayCfg.up}" = "focus up"; + # "${swayCfg.modifier}+${swayCfg.right}" = "focus right"; + + # Additional bindings + # "${swayCfg.modifier}+Space" = "exec run-as-service ${launcher}"; + "Control+Space" = "exec run-as-service ${launcher}"; + "Super_L+Shift+Return" = "exec ${swayCfg.terminal} zellij"; + "Super_L+Shift+P" = "exec ${color_picker}"; + "${swayCfg.modifier}+b" = "exec ${browser}"; + "Super_L+Shift+E" = "exec ${explorer}"; + "${swayCfg.modifier}+e" = "exec ${swayCfg.terminal} yazi"; + "${swayCfg.modifier}+Control+l" = mkForce "exec ${screen-locker} --immediate"; + "${swayCfg.modifier}+t" = "exec ${swayCfg.terminal} btop"; + "${swayCfg.modifier}+n" = "exec ${notification_center} -t -sw"; + "${swayCfg.modifier}+v" = "exec ${cliphist}"; + "${swayCfg.modifier}+w" = "exec ${looking-glass}"; + # "${swayCfg.modifier}+I" = "exec ${pkgs.libnotify}/bin/notify-send ${window-inspector}"; + + # Kill window + "${swayCfg.modifier}+Q" = "kill"; + "Control+Shift+q" = "kill"; + + # File screenshots + "Print" = "exec ${grimblast_active_file}"; + "Shift+Print" = "exec ${grimblast_area_file}"; + "Super_L+Print" = "exec ${grimblast_screen_file}"; + + # Area / Window screenshots + "Alt+Print" = "exec ${grimblast_active_swappy}"; + "Alt+Control+Print" = "exec ${grimblast_area_swappy}"; + "Alt+Super_L+Print" = "exec ${grimblast_screen_swappy}"; + + # Clipboard screenshots + "Control+Print" = "exec ${grimblast_active_clipboard}"; + "Control+Shift+Print" = "exec ${grimblast_area_clipboard}"; + "Super_L+Control+Print" = "exec ${grimblast_screen_clipboard}"; + + # Screen recording + "Super_L+Control+Alt+Print" = "exec ${screen-recorder} screen"; + "Super_L+Control+Alt+Shift+Print" = "exec ${screen-recorder} area"; + + # Floating toggle + "Super_L+Alt+v" = "floating toggle"; + "${swayCfg.modifier}+p" = "layout tabbed"; + "${swayCfg.modifier}+j" = "split vertical"; + "${swayCfg.modifier}+f" = "fullscreen"; + + # Focus and move windows + "Alt+left" = "focus left"; + "Alt+right" = "focus right"; + "Alt+up" = "focus up"; + "Alt+down" = "focus down"; + "Super_L+left" = "move left"; + "Super_L+right" = "move right"; + "Super_L+up" = "move up"; + "Super_L+down" = "move down"; + + "Control+Shift+h" = "resize shrink width 10px"; + "Control+Shift+l" = "resize grow width 10px"; + + # Workspace switching + "Control+Alt+right" = "workspace next"; + "Control+Alt+left" = "workspace prev"; + "Control+Alt+l" = "workspace next"; + "Control+Alt+h" = "workspace prev"; + + # Moving to workspace + "Alt+Shift+Control+right" = "move container to workspace next"; + "Alt+Shift+Control+left" = "move container to workspace prev"; + + # Scratchpad + "Super_L+Shift+grave" = "move container to scratchpad"; + "Super_L+grave" = "scratchpad show"; + + # Inactive + "Alt+Shift+grave" = "move container to workspace special:inactive"; + "Alt+grave" = "workspace special:inactive"; + + # Monitor focus + "Super_L+Alt+up" = "focus output up"; + "Super_L+Alt+down" = "focus output down"; + "Super_L+Alt+left" = "focus output left"; + "Super_L+Alt+right" = "focus output right"; + + # Move workspace to monitor + "Hyper_L+down" = "move workspace to output down"; + "Hyper_L+up" = "move workspace to output up"; + "Hyper_L+left" = "move workspace to output left"; + "Hyper_L+right" = "move workspace to output right"; + + XF86AudioRaiseVolume = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 2.5%+"; + XF86AudioLowerVolume = "exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 2.5%-"; + XF86AudioMute = "exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; + XF86MonBrightnessUp = "exec light -A 5"; + XF86MonBrightnessDown = "exec light -U 5"; + XF86AudioMedia = "exec ${getExe pkgs.playerctl} play-pause"; + XF86AudioPlay = "exec ${getExe pkgs.playerctl} play-pause"; + XF86AudioStop = "exec ${getExe pkgs.playerctl} stop"; + XF86AudioPrev = "exec ${getExe pkgs.playerctl} previous"; + XF86AudioNext = "exec ${getExe pkgs.playerctl} next"; + }) + (lib.mkOptionDefault ( + builtins.listToAttrs ( + builtins.concatLists ( + builtins.genList ( + x: + let + ws = + let + c = (x + 1) / 10; + in + builtins.toString (x + 1 - (c * 10)); + in + [ + { + name = "Control+Alt+${ws}"; + value = "workspace number ${ws}"; + } + { + name = "Control+Alt+Shift+${ws}"; + value = "move container to workspace ${ws}"; + } + { + name = "Mod4+Shift+${ws}"; + value = "move container to workspace ${ws}"; + } + ] + ) 10 + ) + ) + )) + ]; + }; + }; + }; +} diff --git a/modules/home/programs/graphical/wms/sway/default.nix b/modules/home/programs/graphical/wms/sway/default.nix new file mode 100644 index 000000000..2bf1c36fa --- /dev/null +++ b/modules/home/programs/graphical/wms/sway/default.nix @@ -0,0 +1,217 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) mkIf mkEnableOption getExe; + inherit (lib.${namespace}) enabled; + + cfg = config.${namespace}.programs.graphical.wms.sway; + +in +{ + options.${namespace}.programs.graphical.wms.sway = { + enable = mkEnableOption "sway."; + enableDebug = mkEnableOption "Enable debug mode."; + appendConfig = lib.mkOption { + type = lib.types.lines; + default = ""; + description = '' + Extra configuration lines to add to bottom of `~/.config/hypr/sway.conf`. + ''; + }; + prependConfig = lib.mkOption { + type = lib.types.lines; + default = ""; + description = '' + Extra configuration lines to add to top of `~/.config/hypr/sway.conf`. + ''; + }; + extraSessionCommands = lib.mkOption { + type = lib.types.lines; + default = ""; + description = '' + Extra shell commands to run at start of session. + ''; + }; + + settings = lib.mkOption { + type = lib.types.attrs; + default = { }; + description = '' + Configuration to pass through to the main sway module. + ''; + }; + }; + + imports = lib.snowfall.fs.get-non-default-nix-files ./.; + + config = mkIf cfg.enable { + home = { + packages = with pkgs; [ xwaylandvideobridge ]; + + sessionVariables = { + CLUTTER_BACKEND = "wayland"; + GDK_BACKEND = "wayland,x11"; + MOZ_ENABLE_WAYLAND = "1"; + MOZ_USE_XINPUT2 = "1"; + SDL_VIDEODRIVER = "wayland"; + WLR_DRM_NO_ATOMIC = "1"; + XDG_CURRENT_DESKTOP = "sway"; + XDG_SESSION_DESKTOP = "sway"; + XDG_SESSION_TYPE = "wayland"; + _JAVA_AWT_WM_NONREPARENTING = "1"; + __GL_GSYNC_ALLOWED = "0"; + __GL_VRR_ALLOWED = "0"; + }; + }; + + khanelinix = { + programs = { + graphical = { + launchers = { + anyrun = enabled; + }; + + screenlockers = { + swaylock = enabled; + }; + }; + }; + + services = { + cliphist.systemdTargets = [ "sway-session.target" ]; + + swayidle = enabled; + }; + + suites = { + wlroots = enabled; + }; + + theme = { + gtk = enabled; + qt = enabled; + }; + }; + + wayland.windowManager.sway = { + enable = true; + package = pkgs.swayfx; + checkConfig = false; + + config = { + bars = [ ]; + + floating = { + modifier = "Shift"; + }; + + gaps = { + inner = 5; + outer = 20; + }; + + input = { + "*" = { + xkb_layout = "us"; + xkb_numlock = "enabled"; + # repeat_delay = 0; + # repeat_rate = 50; + }; + }; + + modifier = "Mod4"; + + terminal = "${getExe config.programs.wezterm.package}"; + + workspaceAutoBackAndForth = true; + workspaceLayout = "default"; + } // cfg.settings; + + extraConfig = '' + blur enable + blur_passes 4 + blur_radius 5 + + shadows_on_csd enable + titlebar_separator disable + scratchpad_minimize disable + + ${cfg.appendConfig} + ''; + + extraConfigEarly = cfg.prependConfig; + inherit (cfg) extraSessionCommands; + + systemd = { + enable = true; + xdgAutostart = true; + + variables = [ "--all" ]; + }; + + xwayland = true; + }; + }; +} + +# TODO: get what we can into sway +# decoration = { +# active_opacity = 0.95; +# fullscreen_opacity = 1.0; +# inactive_opacity = 0.9; +# rounding = 10; +# +# drop_shadow = true; +# shadow_ignore_window = true; +# shadow_range = 20; +# shadow_render_power = 3; +# "col.shadow" = "0x55161925"; +# "col.shadow_inactive" = "0x22161925"; +# }; +# +# dwindle = { +# # See https://wiki.sway.org/Configuring/Dwindle-Layout/ for more +# # force_split = 0; +# preserve_split = true; # you probably want this +# pseudotile = false; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below +# no_gaps_when_only = false; +# special_scale_factor = 0.9; +# }; +# +# general = { +# # allow_tearing = true; +# border_size = 2; +# "col.active_border" = "rgba(7793D1FF)"; +# "col.inactive_border" = "rgb(5e6798)"; +# gaps_in = 5; +# gaps_out = 20; +# layout = "dwindle"; +# }; +# +# group = { +# # new windows in a group spawn after current or at group tail +# insert_after_current = true; +# # focus on the window that has just been moved out of the group +# focus_removed_window = true; +# +# "col.border_active" = "rgba(88888888)"; +# "col.border_inactive" = "rgba(00000088)"; +# +# groupbar = { +# # groupbar stuff +# # this removes the ugly gradient around grouped windows - which sucks +# gradients = false; +# font_size = 14; +# +# # titles look ugly, and I usually know what I'm looking at +# render_titles = false; +# +# # scrolling in the groupbar changes group active window +# scrolling = true; +# }; +# }; diff --git a/modules/home/programs/graphical/wms/sway/windowrules.nix b/modules/home/programs/graphical/wms/sway/windowrules.nix new file mode 100644 index 000000000..8c70cad11 --- /dev/null +++ b/modules/home/programs/graphical/wms/sway/windowrules.nix @@ -0,0 +1,126 @@ +{ + config, + lib, + namespace, + ... +}: +let + inherit (lib) mkIf; + cfg = config.${namespace}.programs.graphical.wms.sway; +in +{ + config = mkIf cfg.enable { + wayland.windowManager.sway = { + config = { + # hide_edge_borders vertical + # mouse_warping none + # default_border pixel 1 + # default_floating_border pixel 1 + # + # #set the variables + # set { + # $float floating enable; border pixel 1; shadows enable + # } + + # TODO: use sway's app_id for wayland and class for xwayland + # use xlsclients to check which are x11 + assigns = { + "1" = [ + { title = "^(.*(Twitch|TNTdrama|YouTube|Bally Sports|Video Entertainment|Plex)).*(Firefox).*$"; } + ]; + "2" = [ + { title = "^(?!.*(Twitch|TNTdrama|YouTube|Bally Sports|Video Entertainment|Plex)).*(Firefox).*$"; } + # TODO: hide/minimize + # { title = "^(.*(hidden tabs - Workona)).*(Firefox).*$"; } + ]; + "3" = [ + { app_id = "^Code$"; } + { app_id = "^neovide$"; } + { app_id = "^GitHub Desktop$"; } + { app_id = "^GitKraken$"; } + ]; + "4" = [ + { class = "[Ss]team$"; } + { title = "[Ss]team$"; } + { class = "^gamescope|steam_app.*$"; } + { app_id = "^heroic$"; } + { app_id = "^lutris$"; } + { app_id = ".*(cemu|yuzu|Ryujinx|emulationstation|retroarch).*"; } + { title = ".*(cemu|yuzu|Ryujinx|emulationstation|retroarch).*"; } + ]; + "5" = [ + { app_id = "^Slack$"; } + { class = "[Cc]aprine$"; } + { app_id = "^org.telegram.desktop$"; } + { app_id = "^discord$"; } + # { class = "^zoom$"; } + { app_id = "^Element$"; } + { app_id = "^teams-for-linux$"; } + ]; + "6" = [ + { app_id = "^thunderbird$"; } + # { class = "^Mailspring$"; } + ]; + "7" = [ + { app_id = "^mpv|vlc|VLC|mpdevil$"; } + { app_id = "^Spotify$"; } + { title = "^Spotify$"; } + { title = "^Spotify Free$"; } + { class = "^elisa$"; } + ]; + "8" = [ + { class = "^virt-manager|qemu$"; } + { class = "^gnome-connections$"; } + { class = "^looking-glass-client$"; } + ]; + }; + + floating = { + criteria = [ + # Float specific applications + { class = "Rofi"; } + { class = "viewnior"; } + { class = "feh"; } + { class = "wlogout"; } + { class = "file_progress"; } + { class = "confirm"; } + { class = "dialog"; } + { class = "download"; } + { class = "notification"; } + { class = "error"; } + { class = "splash"; } + { class = "confirmreset"; } + { class = "org.kde.polkit-kde-authentication-agent-1"; } + { class = "wdisplays"; } + { class = "blueman-manager"; } + { class = "nm-connection-editor"; } + { title = "^(floatterm)$"; } + ]; + + # TODO: convert rules + # # Floating terminal + # [title="floatterm"] $float; resize set 1100 600; move position center; animation none + # + # # Calendar reminders + # [class="thunderbird" title=".*(Reminders)"] $float; resize set 1100 600; move position 78% 6%; sticky enable + # + # # Thunar file operation progress + # [class="thunar" title="^(File Operation Progress)$"] $float; resize set 800 600; move position 78% 6%; sticky enable + # + # # Workspace 8 (VM) layout + # [class="virt-manager" title="^(Virtual Machine Manager)$"] $float; resize set 1000 1330; move position 80% 6% + # [class="looking-glass-client"] $float; resize set 2360 1330; move position 25% 6% + # [class="virt-manager" title=".*(on QEMU/KVM)$"] $float; resize set 2360 1330; move position 25% 6% + # [class="qemu"] $float; resize set 2360 1330; move position 25% 6% + # + # # Make Firefox PiP window floating and sticky + # [title="^(Picture-in-Picture)$"] $float; sticky enable + # + # # Fix xwayland apps + # [class=".*jetbrains.*" title="^(Confirm Exit|Open Project|win424|win201|splash)$"] $float; move position center + # [class=".*jetbrains.*" title="^(splash)$"] $float; resize set 640 400 + }; + }; + }; + }; +} diff --git a/modules/home/programs/terminal/editors/neovim/plugins/catppuccin.nix b/modules/home/programs/terminal/editors/neovim/plugins/catppuccin.nix index 324523843..6107fec7e 100644 --- a/modules/home/programs/terminal/editors/neovim/plugins/catppuccin.nix +++ b/modules/home/programs/terminal/editors/neovim/plugins/catppuccin.nix @@ -1,8 +1,6 @@ _: { programs.nixvim = { colorschemes.catppuccin = { - enable = true; - settings = { dim_inactive = { enabled = false; diff --git a/modules/home/programs/terminal/editors/neovim/plugins/clangd-extensions.nix b/modules/home/programs/terminal/editors/neovim/plugins/clangd-extensions.nix new file mode 100644 index 000000000..8610b92e1 --- /dev/null +++ b/modules/home/programs/terminal/editors/neovim/plugins/clangd-extensions.nix @@ -0,0 +1,30 @@ +_: { + programs.nixvim = { + plugins = { + clangd-extensions = { + enable = true; + enableOffsetEncodingWorkaround = true; + + ast = { + roleIcons = { + type = ""; + declaration = ""; + expression = ""; + specifier = ""; + statement = ""; + templateArgument = ""; + }; + kindIcons = { + compound = ""; + recovery = ""; + translationUnit = ""; + packExpansion = ""; + templateTypeParm = ""; + templateTemplateParm = ""; + templateParamObject = ""; + }; + }; + }; + }; + }; +} diff --git a/modules/home/programs/terminal/editors/neovim/plugins/markview.nix b/modules/home/programs/terminal/editors/neovim/plugins/markview.nix index debcb332b..9bb2cdc24 100644 --- a/modules/home/programs/terminal/editors/neovim/plugins/markview.nix +++ b/modules/home/programs/terminal/editors/neovim/plugins/markview.nix @@ -1,17 +1,7 @@ { pkgs, ... }: { programs.nixvim = { - extraPlugins = [ - (pkgs.vimUtils.buildVimPlugin { - name = "markview.nvim"; - src = pkgs.fetchFromGitHub { - owner = "OXY2DEV"; - repo = "markview.nvim"; - rev = "00b988f92e52d8cb75a7f2cc61042d851a358fd7"; - hash = "sha256-jUZ6dH4JMVs5Gm6Mp/wQAtkjoXEUElNQ0I8TxOdGwaU="; - }; - }) - ]; + extraPlugins = [ pkgs.vimPlugins.markview-nvim ]; extraConfigLuaPre = # lua '' diff --git a/modules/home/programs/terminal/editors/neovim/plugins/precognition.nix b/modules/home/programs/terminal/editors/neovim/plugins/precognition.nix index ce6691571..fc38e02e5 100644 --- a/modules/home/programs/terminal/editors/neovim/plugins/precognition.nix +++ b/modules/home/programs/terminal/editors/neovim/plugins/precognition.nix @@ -1,18 +1,7 @@ { pkgs, ... }: { programs.nixvim = { - extraPlugins = [ - # TODO: Replace when https://github.com/NixOS/nixpkgs/pull/323435 is in nixos-unstable - (pkgs.vimUtils.buildVimPlugin { - name = "precognition.nvim"; - src = pkgs.fetchFromGitHub { - owner = "tris203"; - repo = "precognition.nvim"; - rev = "2a566f03eb06859298eff837f3a6686dfa5304a5"; - hash = "sha256-XLcyRB4ow5nPoQ0S29bx0utV9Z/wogg7c3rozYSqlWE="; - }; - }) - ]; + extraPlugins = [ pkgs.vimPlugins.precognition-nvim ]; keymaps = [ { diff --git a/modules/home/programs/terminal/editors/neovim/plugins/yazi.nix b/modules/home/programs/terminal/editors/neovim/plugins/yazi.nix index d13f1f9ed..93020b28e 100644 --- a/modules/home/programs/terminal/editors/neovim/plugins/yazi.nix +++ b/modules/home/programs/terminal/editors/neovim/plugins/yazi.nix @@ -1,18 +1,7 @@ { pkgs, ... }: { programs.nixvim = { - extraPlugins = [ - # TODO: Replace when https://github.com/NixOS/nixpkgs/pull/323432 is in unstable - (pkgs.vimUtils.buildVimPlugin { - name = "yazi.nvim"; - src = pkgs.fetchFromGitHub { - owner = "mikavilpas"; - repo = "yazi.nvim"; - rev = "05849f390175f2ba8fd277b224d4fd9e35455895"; - hash = "sha256-zj+lmxsOEW+YaCk5hb7u454gACUmqYPA/IeW6av4D7k="; - }; - }) - ]; + extraPlugins = [ pkgs.vimPlugins.yazi-nvim ]; keymaps = [ { diff --git a/modules/home/services/barrier/default.nix b/modules/home/services/barrier/default.nix deleted file mode 100644 index bd3c8f498..000000000 --- a/modules/home/services/barrier/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - config, - lib, - namespace, - ... -}: -let - inherit (lib) mkEnableOption mkIf types; - inherit (lib.${namespace}) mkOpt; - - cfg = config.${namespace}.services.barrier; -in -{ - options.${namespace}.services.barrier = { - enable = mkEnableOption "barrier"; - server = mkOpt types.str "192.168.1.3:24800" "Server address"; - }; - - config = mkIf cfg.enable { - services = { - barrier = { - client = { - inherit (cfg) server; - - enable = true; - enableCrypto = true; - enableDragDrop = true; - }; - }; - }; - }; -} diff --git a/modules/home/services/cliphist/default.nix b/modules/home/services/cliphist/default.nix new file mode 100644 index 000000000..833191872 --- /dev/null +++ b/modules/home/services/cliphist/default.nix @@ -0,0 +1,36 @@ +{ + config, + lib, + namespace, + ... +}: +let + inherit (lib) mkEnableOption mkIf; + + cfg = config.${namespace}.services.cliphist; +in +{ + options.${namespace}.services.cliphist = { + enable = mkEnableOption "cliphist"; + + systemdTargets = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = [ ]; + description = '' + Systemd targets for cliphist + ''; + }; + }; + + config = mkIf cfg.enable { + services = { + + cliphist = { + enable = true; + allowImages = true; + + systemdTarget = lib.concatStringsSep " " cfg.systemdTargets; + }; + }; + }; +} diff --git a/modules/home/services/hypridle/default.nix b/modules/home/services/hypridle/default.nix index b1b571cc5..3ffc775c0 100644 --- a/modules/home/services/hypridle/default.nix +++ b/modules/home/services/hypridle/default.nix @@ -43,5 +43,7 @@ in ]; }; }; + + systemd.user.services.hypridle.Install.WantedBy = [ "hyprland-session.target" ]; }; } diff --git a/modules/home/services/swayidle/default.nix b/modules/home/services/swayidle/default.nix index f57e7b9ef..db9abf707 100644 --- a/modules/home/services/swayidle/default.nix +++ b/modules/home/services/swayidle/default.nix @@ -21,15 +21,16 @@ in enable = true; package = pkgs.swayidle; + systemdTarget = "sway-session.target"; + events = [ { event = "before-sleep"; command = "${getExe config.programs.swaylock.package} -defF"; } { - # TODO: Make dynamic for window manager event = "after-resume"; - command = "${getExe' config.wayland.windowManager.hyprland.package "hyprctl"} dispatch dpms on"; + command = ''${getExe' config.wayland.windowManager.sway.package "swaymsg"} "output * dpms on"''; } { event = "lock"; @@ -38,13 +39,12 @@ in ]; timeouts = [ { - timeout = 900; + timeout = 300; command = "${getExe config.programs.swaylock.package} -defF"; } { - # TODO: Make dynamic for window manager - timeout = 1200; - command = "${getExe' config.wayland.windowManager.hyprland.package "hyprctl"} dispatch dpms off"; + timeout = 600; + command = ''${getExe' config.wayland.windowManager.sway.package "swaymsg"} "output * dpms off"''; } ]; }; diff --git a/modules/home/suites/desktop/default.nix b/modules/home/suites/desktop/default.nix index 7182a5b03..1434ad217 100644 --- a/modules/home/suites/desktop/default.nix +++ b/modules/home/suites/desktop/default.nix @@ -17,18 +17,20 @@ in }; config = mkIf cfg.enable { - home.packages = with pkgs; [ - barrier - bitwarden - bleachbit - dropbox - # TODO: remove override after https://github.com/NixOS/nixpkgs/pull/325740 is in unstable - (dupeguru.override { python3Packages = pkgs.python311Packages; }) - filelight - fontpreview - gparted - pkgs.${namespace}.pocketcasts - realvnc-vnc-viewer - ]; + home.packages = + with pkgs; + lib.optionals pkgs.stdenv.isLinux [ + bitwarden + bleachbit + dropbox + dupeguru + filelight + fontpreview + gparted + input-leap + pkgs.${namespace}.pocketcasts + realvnc-vnc-viewer + rustdesk + ]; }; } diff --git a/modules/home/suites/networking/default.nix b/modules/home/suites/networking/default.nix new file mode 100644 index 000000000..b2be29345 --- /dev/null +++ b/modules/home/suites/networking/default.nix @@ -0,0 +1,31 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt; + + cfg = config.${namespace}.suites.networking; +in +{ + options.${namespace}.suites.networking = { + enable = mkBoolOpt false "Whether or not to enable networking configuration."; + }; + + config = mkIf cfg.enable { + + home.packages = + with pkgs; + [ + nmap + openssh + speedtest-cli + ssh-copy-id + ] + ++ lib.optionals pkgs.stdenv.isLinux [ iproute2 ]; + }; +} diff --git a/modules/home/suites/video/default.nix b/modules/home/suites/video/default.nix index 70a6d54b3..4e5943655 100644 --- a/modules/home/suites/video/default.nix +++ b/modules/home/suites/video/default.nix @@ -22,7 +22,7 @@ in lib.optionals stdenv.isLinux [ celluloid devede - handbrake + # handbrake mediainfo-gui shotcut vlc diff --git a/modules/home/suites/wlroots/default.nix b/modules/home/suites/wlroots/default.nix index 972723ffc..bc95cc75e 100644 --- a/modules/home/suites/wlroots/default.nix +++ b/modules/home/suites/wlroots/default.nix @@ -41,6 +41,7 @@ in }; services = { + cliphist = enabled; keyring = enabled; }; }; @@ -49,11 +50,6 @@ in # services.network-manager-applet.enable = true; services = { blueman-applet.enable = true; - - cliphist = { - enable = true; - allowImages = true; - }; }; }; } diff --git a/modules/home/theme/catppuccin/default.nix b/modules/home/theme/catppuccin/default.nix index 7a0155900..012cd8f4d 100644 --- a/modules/home/theme/catppuccin/default.nix +++ b/modules/home/theme/catppuccin/default.nix @@ -125,7 +125,7 @@ in }; catppuccin = { - # NOTE: Need some customization and merging of configuration files so cant just enable all + # NOTE: Need some customization and merging of configuration files so cant just enable all enable = false; accent = "blue"; @@ -178,10 +178,94 @@ in }; }; - wayland.windowManager.hyprland.catppuccin = mkIf pkgs.stdenv.isLinux { - enable = true; + wayland.windowManager.hyprland.catppuccin = + mkIf config.${namespace}.programs.graphical.wms.hyprland.enable + { + enable = true; - inherit (cfg) accent; + inherit (cfg) accent; + }; + + wayland.windowManager.sway = { + catppuccin = mkIf config.${namespace}.programs.graphical.wms.sway.enable { enable = true; }; + + config.colors = { + background = "$base"; + + focused = { + childBorder = "$lavender"; + background = "$base"; + text = "$text"; + indicator = "$rosewater"; + border = "$lavender"; + }; + + focusedInactive = { + childBorder = "$overlay0"; + background = "$base"; + text = "$text"; + indicator = "$rosewater"; + border = "$overlay0"; + }; + + unfocused = { + childBorder = "$overlay0"; + background = "$base"; + text = "$text"; + indicator = "$rosewater"; + border = "$overlay0"; + }; + + urgent = { + childBorder = "$peach"; + background = "$base"; + text = "$peach"; + indicator = "$overlay0"; + border = "$peach"; + }; + + placeholder = { + childBorder = "$overlay0"; + background = "$base"; + text = "$text"; + indicator = "$overlay0"; + border = "$overlay0"; + }; + + # bar + # focusedBackground = "$base"; + # focusedStatusline = "$text"; + # focusedSeparator = "$base"; + # focusedWorkspace = { + # border = "$base"; + # background = "$base"; + # text = "$green"; + # }; + # + # activeWorkspace = { + # border = "$base"; + # background = "$base"; + # text = "$blue"; + # }; + # + # inactiveWorkspace = { + # border = "$base"; + # background = "$base"; + # text = "$surface1"; + # }; + # + # urgentWorkspace = { + # border = "$base"; + # background = "$base"; + # text = "$peach"; + # }; + # + # bindingMode = { + # border = "$base"; + # background = "$base"; + # text = "$surface1"; + # }; + }; }; programs = @@ -220,8 +304,8 @@ in "btop" "cava" "fish" - "fzf" "foot" + "fzf" "gh-dash" "gitui" "glamour" @@ -289,7 +373,7 @@ in # rofi.catppuccin.enable = true; }; - # TODO: conditional enable + # TODO: conditional enable xdg.configFile = mkIf pkgs.stdenv.isLinux { "ArmCord/themes/Catppuccin-Macchiato-BD".source = ./Catppuccin-Macchiato-BD; "BetterDiscord/themes/catppuccin-macchiato.theme.css".source = ./catppuccin-macchiato.theme.css; diff --git a/modules/nixos/programs/graphical/addons/looking-glass-client/default.nix b/modules/nixos/programs/graphical/addons/looking-glass-client/default.nix index 1ab01002b..0ef5cee5e 100644 --- a/modules/nixos/programs/graphical/addons/looking-glass-client/default.nix +++ b/modules/nixos/programs/graphical/addons/looking-glass-client/default.nix @@ -27,5 +27,16 @@ in user = "+${toString config.users.users.${user.name}.uid}"; source = ./client.ini; }; + + systemd.tmpfiles.settings = { + "looking-glass" = { + "/dev/shm/looking-glass".f = { + age = "-"; + group = "kvm"; + mode = "0660"; + user = toString config.users.users.${user.name}.uid; + }; + }; + }; }; } diff --git a/modules/nixos/programs/graphical/addons/xdg-portal/default.nix b/modules/nixos/programs/graphical/addons/xdg-portal/default.nix index 109c5f657..fd013f544 100644 --- a/modules/nixos/programs/graphical/addons/xdg-portal/default.nix +++ b/modules/nixos/programs/graphical/addons/xdg-portal/default.nix @@ -23,29 +23,35 @@ in xdg = { portal = { enable = true; + config = { - common = - let - portal = - if config.${namespace}.programs.graphical.wms.hyprland.enable == "Hyprland" then - "hyprland" - else if config.${namespace}.programs.graphical.wms.sway.enable == "sway" then - "wlr" - else - "gtk"; - in - { - default = [ - "hyprland" - "gtk" - ]; + hyprland = mkIf config.${namespace}.programs.graphical.wms.hyprland.enable { + default = [ + "hyprland" + "gtk" + ]; + "org.freedesktop.impl.portal.Screencast" = "hyprland"; + "org.freedesktop.impl.portal.Screenshot" = "hyprland"; + }; + + sway = mkIf config.${namespace}.programs.graphical.wms.sway.enable { + default = [ + "wlr" + "gtk" + ]; + "org.freedesktop.impl.portal.Screencast" = "wlr"; + "org.freedesktop.impl.portal.Screenshot" = "wlr"; + }; - # for flameshot to work - # https://github.com/flameshot-org/flameshot/issues/3363#issuecomment-1753771427 - "org.freedesktop.impl.portal.Screencast" = "${portal}"; - "org.freedesktop.impl.portal.Screenshot" = "${portal}"; - }; + common = { + default = [ "gtk" ]; + + "org.freedesktop.impl.portal.Screencast" = "gtk"; + "org.freedesktop.impl.portal.Screenshot" = "gtk"; + "org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; + }; }; + extraPortals = with pkgs; [ xdg-desktop-portal-gtk ] diff --git a/modules/nixos/programs/graphical/wms/hyprland/default.nix b/modules/nixos/programs/graphical/wms/hyprland/default.nix index 59543b783..8eb6bb2ae 100644 --- a/modules/nixos/programs/graphical/wms/hyprland/default.nix +++ b/modules/nixos/programs/graphical/wms/hyprland/default.nix @@ -138,7 +138,6 @@ in }; }; - # TODO: make sure it references same package as home-manager services.displayManager.sessionPackages = [ hyprland.packages.${system}.hyprland ]; }; } diff --git a/modules/nixos/programs/graphical/wms/sway/background.png b/modules/nixos/programs/graphical/wms/sway/background.png deleted file mode 100644 index 1a5a078b5..000000000 Binary files a/modules/nixos/programs/graphical/wms/sway/background.png and /dev/null differ diff --git a/modules/nixos/programs/graphical/wms/sway/config b/modules/nixos/programs/graphical/wms/sway/config deleted file mode 100644 index d38c2253d..000000000 --- a/modules/nixos/programs/graphical/wms/sway/config +++ /dev/null @@ -1,274 +0,0 @@ -########################################### -#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░# -#░░█▀█░█░░░█░█░█▀▀░░░█░█░█░░░▀█▀░█▀▄░█▀█░░# -#░░█▀▀░█░░░█░█░▀▀█░░░█░█░█░░░░█░░█▀▄░█▀█░░# -#░░▀░░░▀▀▀░▀▀▀░▀▀▀░░░▀▀▀░▀▀▀░░▀░░▀░▀░▀░▀░░# -#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░# -########################################### - - -######################################### -#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░# -#░░█░█░█▀█░█▀▄░▀█▀░█▀█░█▀▄░█░░░█▀▀░█▀▀░░# -#░░▀▄▀░█▀█░█▀▄░░█░░█▀█░█▀▄░█░░░█▀▀░▀▀█░░# -#░░░▀░░▀░▀░▀░▀░▀▀▀░▀░▀░▀▀░░▀▀▀░▀▀▀░▀▀▀░░# -#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░# -######################################### - -# Modifier key (Mod1 = Alt, Mod4 = Meta) -set $mod Mod4 - -# Movement keys -set $left h -set $down j -set $up k -set $right l - -# Terminal -set $term env @term@ - -# Swaylock -set $swaylock swaylock-fancy -f "Hack-Regular-Nerd-Font-Complete" - -# Menu -set $menu-run wofi --show drun --prompt search - -# Output names -set $laptop-screen eDP-1 -# set $monitor-left HDMI-A-1 -# set $monitor-center HDMI-A-2 - -# Workspace names -set $workspace1 1 -set $workspace2 2 -set $workspace3 3 -set $workspace4 4 -set $workspace5 5 -set $workspace6 6 -set $workspace7 7 -set $workspace8 8 -set $workspace9 9 -set $workspace10 10 - -############################# -#░░░░░░░░░░░░░░░░░░░░░░░░░░░# -#░░█▀█░█░█░▀█▀░█▀█░█░█░▀█▀░░# -#░░█░█░█░█░░█░░█▀▀░█░█░░█░░░# -#░░▀▀▀░▀▀▀░░▀░░▀░░░▀▀▀░░▀░░░# -#░░░░░░░░░░░░░░░░░░░░░░░░░░░# -############################# - -# Backgrounds -# output $monitor-left bg /home/short/Photos/wallpapers/left.jpg fill -# output $monitor-center bg /home/short/Photos/wallpapers/center.jpg fill - -# Positioning -# output $monitor-left resolution 1920x1080 position 0,300 -# output $monitor-center resolution 1920x1080 position 1920,0 - -################################################### -#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░# -#░░█░█░█▀▀░█░█░░░█▀▄░▀█▀░█▀█░█▀▄░▀█▀░█▀█░█▀▀░█▀▀░░# -#░░█▀▄░█▀▀░░█░░░░█▀▄░░█░░█░█░█░█░░█░░█░█░█░█░▀▀█░░# -#░░▀░▀░▀▀▀░░▀░░░░▀▀░░▀▀▀░▀░▀░▀▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀░░# -#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░# -################################################### - -# Start a terminal -bindsym $mod+Return exec $term - -# Kill focused window -bindsym $mod+q kill - -# Reload configuration -bindsym $mod+Shift+r reload - -# Exit sway -bindsym $mod+Shift+e exit - -# Lock -bindsym $mod+Control+l exec $swaylock - -# Open run menu -bindsym $mod+d exec $menu-run - -# Drag floating windows while holding down modifier key -floating_modifier $mod normal - -# Sticky windows -bindsym $mod+Shift+s sticky toggle - -# Toggle fullscreen -bindsym $mod+f fullscreen - -# Toggle floating -bindsym $mod+Shift+space floating toggle - -# Toggle floating focus -bindsym $mod+space focus mode_toggle - -# Focus the parent container -bindsym $mod+a focus parent - -# Focus the child container -bindsym $mod+c focus child - -# Split horizontal -bindsym $mod+b splith - -# Split vertical -bindsym $mod+v splitv - -# Move window into scratchpad -bindsym $mod+Shift+minus move scratchpad - -# Get window out of scratchpad -bindsym $mod+minus scratchpad show - -# Change layout style -bindsym $mod+s layout stacking -bindsym $mod+w layout tabbed -bindsym $mod+e layout toggle split -bindsym $mod+Shift+v layout splitv -bindsym $mod+Shift+b layout splith - -# Moving focus -bindsym $mod+$left focus left -bindsym $mod+$down focus down -bindsym $mod+$up focus up -bindsym $mod+$right focus right - -# Moving windows -bindsym $mod+Shift+$left move left -bindsym $mod+Shift+$down move down -bindsym $mod+Shift+$up move up -bindsym $mod+Shift+$right move right - -# Switching workspace -bindsym $mod+1 workspace $workspace1 -bindsym $mod+2 workspace $workspace2 -bindsym $mod+3 workspace $workspace3 -bindsym $mod+4 workspace $workspace4 -bindsym $mod+5 workspace $workspace5 -bindsym $mod+6 workspace $workspace6 -bindsym $mod+7 workspace $workspace7 -bindsym $mod+8 workspace $workspace8 -bindsym $mod+9 workspace $workspace9 -bindsym $mod+0 workspace $workspace10 - -# Moving windows to workspace -bindsym $mod+Shift+1 move container to workspace $workspace1 -bindsym $mod+Shift+2 move container to workspace $workspace2 -bindsym $mod+Shift+3 move container to workspace $workspace3 -bindsym $mod+Shift+4 move container to workspace $workspace4 -bindsym $mod+Shift+5 move container to workspace $workspace5 -bindsym $mod+Shift+6 move container to workspace $workspace6 -bindsym $mod+Shift+7 move container to workspace $workspace7 -bindsym $mod+Shift+8 move container to workspace $workspace8 -bindsym $mod+Shift+9 move container to workspace $workspace9 -bindsym $mod+Shift+0 move container to workspace $workspace10 - -# Brightness -bindsym XF86MonBrightnessUp exec brightnessctl set 5%+ -bindsym XF86MonBrightnessDown exec brightnessctl set 5%- - -# Sound -bindsym XF86AudioMute exec pulsemixer --toggle-mute -bindsym XF86AudioRaiseVolume exec pulsemixer --change-volume +10 -bindsym XF86AudioLowerVolume exec pulsemixer --change-volume -10 - -# Media -bindsym XF86AudioPrev exec playerctl previous -bindsym XF86AudioPlay exec playerctl play-pause -bindsym XF86AudioNext exec playerctl next - -# Print screen -bindsym Print exec grimshot --notify save screen - | swappy -f - -bindsym Shift+Print exec grimshot --notify save area - | swappy -f - -bindsym Control+Print exec grimshot --notify save window - | swappy -f - -bindsym $mod+Print exec grimshot --notify copy screen -bindsym $mod+Shift+Print exec grimshot --notify copy area -bindsym $mod+Control+Print exec grimshot --notify copy window - -# Airplane mode -# bindsym XF86RFKill exec nmcli radio all $(test $(nmcli -g wifi radio all) == "enabled" && "off" || echo "on") - -# Resize mode -mode "resize" { - # Shrink the width - bindsym $left resize shrink width 10px - - # Grow the width - bindsym $right resize grow width 10px - - # Grow the height - bindsym $up resize grow height 10px - - # Shrink the height - bindsym $down resize shrink height 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} - -# Enter resize mode -bindsym $mod+r mode "resize" - -###################### -#░░░░░░░░░░░░░░░░░░░░# -#░▀█▀░█▀█░█▀█░█░█░▀█▀# -#░░█░░█░█░█▀▀░█░█░░█░# -#░▀▀▀░▀░▀░▀░░░▀▀▀░░▀░# -#░░░░░░░░░░░░░░░░░░░░# -###################### - -input type:keyboard { - xkb_options caps:swapescape -} - -input type:touchpad { - natural_scroll enabled - tap enabled - tap_button_map lrm -} - -################# -#░░░░░░░░░░░░░░░# -#░░█▀▄░█▀█░█▀▄░░# -#░░█▀▄░█▀█░█▀▄░░# -#░░▀▀░░▀░▀░▀░▀░░# -#░░░░░░░░░░░░░░░# -################# - -bar { - # Run waybar - swaybar_command waybar -} - -######################### -#░░░░░░░░░░░░░░░░░░░░░░░# -#░░█▀▀░▀█▀░█░█░█░░░█▀▀░░# -#░░▀▀█░░█░░░█░░█░░░█▀▀░░# -#░░▀▀▀░░▀░░░▀░░▀▀▀░▀▀▀░░# -#░░░░░░░░░░░░░░░░░░░░░░░# -######################### - -# Remove title bars -default_border pixel 1 -default_floating_border pixel 1 - -client.focused #8fbcbb #8fbcbb #eceff4 #eceff4 -client.focused_inactive #2E3440 #2E3440 #e5e9f0 #5e81ac -client.unfocused #3b4252 #3b4252 #4c566a #5e81ac -client.urgent #d08770 #d08770 #eceff4 #bf616a - -for_window [app_id="wofi"] border none -# for_window [app_id="firefox"] border none - -# Don't focus moused over windows -focus_follows_mouse no - -# Gaps -gaps outer 4 -gaps inner 5 diff --git a/modules/nixos/programs/graphical/wms/sway/default.nix b/modules/nixos/programs/graphical/wms/sway/default.nix index 5e3c5c488..f98ae397e 100644 --- a/modules/nixos/programs/graphical/wms/sway/default.nix +++ b/modules/nixos/programs/graphical/wms/sway/default.nix @@ -6,27 +6,10 @@ ... }: let - inherit (lib) - types - mkIf - getExe - getExe' - ; - inherit (lib.${namespace}) - mkBoolOpt - mkOpt - enabled - fileWithText - optionalString - ; - inherit (config.${namespace}.desktop.addons) term; + inherit (lib) types mkIf; + inherit (lib.${namespace}) mkBoolOpt mkOpt enabled; cfg = config.${namespace}.programs.graphical.wms.sway; - - substitutedConfig = pkgs.substituteAll { - src = ./config; - term = term.pkg.pname or term.pkg.name; - }; in { options.${namespace}.programs.graphical.wms.sway = with types; { @@ -36,87 +19,31 @@ in }; config = mkIf cfg.enable { - environment.systemPackages = [ - (pkgs.writeTextFile { - name = "startsway"; - destination = "/bin/startsway"; - executable = true; - text = # bash - '' - #! ${getExe pkgs.bash} - - # Import environment variables from the login manager - systemctl --user import-environment - - # Start Sway - exec systemctl --user start sway.service - ''; - }) - pkgs.brightnessctl - pkgs.playerctl - ]; - khanelinix = { display-managers = { - gdm = { + sddm = { enable = true; - defaultSession = "sway"; }; }; programs = { graphical = { addons = { - # TODO: moved to home-manager - # kanshi = enabled; keyring = enabled; - # TODO: moved to home-manager - # mako = enabled; - # TODO: moved to home-manager - # wofi = enabled; xdg-portal = enabled; }; + apps = { + partitionmanager = enabled; + }; + file-managers = { nautilus = enabled; + thunar = enabled; }; }; - - # TODO: moved to home-manager - # terminal = { - # emulators = { - # foot = enabled; - # }; - # }; }; - home.configFile."sway/config".text = - fileWithText substitutedConfig # bash - '' - ############################# - #░░░░░░░░░░░░░░░░░░░░░░░░░░░# - #░░█▀▀░█░█░█▀▀░▀█▀░█▀▀░█▄█░░# - #░░▀▀█░░█░░▀▀█░░█░░█▀▀░█░█░░# - #░░▀▀▀░░▀░░▀▀▀░░▀░░▀▀▀░▀░▀░░# - #░░░░░░░░░░░░░░░░░░░░░░░░░░░# - ############################# - - # Launch services waiting for the systemd target sway-session.target - exec "systemctl --user import-environment; systemctl --user start sway-session.target" - - # Start a user session dbus (required for things like starting - # applications through wofi). - exec dbus-daemon --session --address=unix:path=$XDG_RUNTIME_DIR/bus - - ${optionalString (cfg.wallpaper != null) '' - output * { - bg ${cfg.wallpaper.gnomeFilePath or cfg.wallpaper} fill - } - ''} - - ${cfg.extraConfig} - ''; - security = { keyring = enabled; polkit = enabled; @@ -135,55 +62,8 @@ in programs.sway = { enable = true; package = pkgs.sway; - - extraPackages = with pkgs; [ - sway-contrib.grimshot - swaylock-fancy - gnome.gnome-control-center - ]; - - extraSessionCommands = # bash - '' - export SDL_VIDEODRIVER=wayland - export QT_QPA_PLATFORM=wayland - export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" - export _JAVA_AWT_WM_NONREPARENTING=1 - export MOZ_ENABLE_WAYLAND=1 - export XDG_SESSION_TYPE=wayland - export XDG_SESSION_DESKTOP=sway - export XDG_CURRENT_DESKTOP=sway - ''; }; - systemd.user = { - targets.sway-session = { - description = "Sway compositor session"; - documentation = [ "man:systemd.special(7)" ]; - bindsTo = [ "graphical-session.target" ]; - wants = [ "graphical-session-pre.target" ]; - after = [ "graphical-session-pre.target" ]; - }; - - services.sway = { - description = "Sway - Wayland window manager"; - documentation = [ "man:sway(5)" ]; - bindsTo = [ "graphical-session.target" ]; - wants = [ "graphical-session-pre.target" ]; - after = [ "graphical-session-pre.target" ]; - # We explicitly unset PATH here, as we want it to be set by - # systemctl --user import-environment in startsway - environment.PATH = lib.mkForce null; - serviceConfig = { - Type = "simple"; - ExecStart = # bash - '' - ${getExe' pkgs.dbus "dbus-run-session"} ${getExe config.programs.sway.package} --debug - ''; - Restart = "on-failure"; - RestartSec = 1; - TimeoutStopSec = 10; - }; - }; - }; + services.displayManager.sessionPackages = [ pkgs.sway ]; }; } diff --git a/modules/nixos/services/barrier/default.nix b/modules/nixos/services/barrier/default.nix deleted file mode 100644 index 97b9b3c94..000000000 --- a/modules/nixos/services/barrier/default.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ - config, - lib, - pkgs, - namespace, - ... -}: -let - inherit (lib) mkEnableOption mkIf; - - cfg = config.${namespace}.services.barrier; -in -{ - options.${namespace}.services.barrier = { - enable = mkEnableOption "barrier"; - }; - - config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ barrier ]; - - networking.firewall = { - allowedTCPPorts = [ 24800 ]; - }; - }; -} diff --git a/modules/nixos/services/openssh/default.nix b/modules/nixos/services/openssh/default.nix index 9a9170bcf..37e6b3810 100644 --- a/modules/nixos/services/openssh/default.nix +++ b/modules/nixos/services/openssh/default.nix @@ -102,7 +102,7 @@ in PubkeyAuthentication = "yes"; StreamLocalBindUnlink = "yes"; UseDns = false; - UsePAM = false; + UsePAM = true; X11Forwarding = false; # key exchange algorithms recommended by `nixpkgs#ssh-audit` diff --git a/shells/angular/default.nix b/shells/angular/default.nix index aa4329244..954054ee8 100644 --- a/shells/angular/default.nix +++ b/shells/angular/default.nix @@ -1,11 +1,12 @@ { mkShell, pkgs, ... }: mkShell { packages = with pkgs; [ + nodePackages."@angular/cli" + nodejs-18_x + pnpm vimPlugins.nvim-treesitter-parsers.angular vscode-extensions.angular.ng-template - nodejs-18_x yarn - nodePackages."@angular/cli" ]; shellHook = '' diff --git a/systems/x86_64-linux/khanelilab/default.nix b/systems/x86_64-linux/khanelilab/default.nix index fc590f4ca..cb512692b 100644 --- a/systems/x86_64-linux/khanelilab/default.nix +++ b/systems/x86_64-linux/khanelilab/default.nix @@ -28,7 +28,7 @@ in services = { # avahi = enabled; - barrier = enabled; + # TODO: input-leap replace barrier geoclue = enabled; printing = enabled; diff --git a/systems/x86_64-linux/khanelinix/default.nix b/systems/x86_64-linux/khanelinix/default.nix index 1b0b77a8c..f9044478b 100644 --- a/systems/x86_64-linux/khanelinix/default.nix +++ b/systems/x86_64-linux/khanelinix/default.nix @@ -88,13 +88,17 @@ in hyprland = { enable = true; }; + + sway = { + enable = true; + }; }; }; }; services = { avahi = enabled; - barrier = enabled; + # TODO: input-leap replace barrier geoclue = enabled; power = enabled; printing = enabled; diff --git a/systems/x86_64-linux/khanelinix/hyprlandOutput b/systems/x86_64-linux/khanelinix/hyprlandOutput index 3daefe9dd..dfb66f80b 100644 --- a/systems/x86_64-linux/khanelinix/hyprlandOutput +++ b/systems/x86_64-linux/khanelinix/hyprlandOutput @@ -1,5 +1,5 @@ -monitor=DP-3, 3840x2160@60, 1420x0, 2 -monitor=DP-1, 5120x1440@120, 0x1080, 1 +monitor=DP-3, 3840x2160@60, 1420x0, 2, bitdepth, 10 +monitor=DP-1, 5120x1440@120, 0x1080, 1, bitdepth, 10 workspace = name:hello, monitor:DP-1, defafult:true windowrulev2 = workspace name:hello, class:^(nwg-hello)$