diff --git a/Justfile b/Justfile index aafaf31..d47e571 100644 --- a/Justfile +++ b/Justfile @@ -10,7 +10,7 @@ default: [group('nix')] deploy: {{if os() == "linux" { \ - "nixos-rebuild switch --flake . --sudo" \ + "sudo nixos-rebuild switch --flake ." \ } else { \ "sudo darwin-rebuild switch --flake ." \ } \ @@ -68,6 +68,5 @@ edit-secret file: # Exits the current user session [group('desktop')] -[confirm] logout: - hyprctl dispatch exit + # niri msg action quit diff --git a/README.md b/README.md index 1a7441f..fc549ae 100644 --- a/README.md +++ b/README.md @@ -78,8 +78,8 @@ Since this is pretty much always a work-in-progress I do not expect it to be in most presentable state at all times. Whenever I have time I try to streamline some of the config, but especially when trying out new tools the code could be a bit wild. -There's a couple of ideas I have for this: -- [ ] Deploy base tooling to all hosts. This mainly includes `nushell` and `helix` configs. They should still be configurable per-host. Potential issue here could be hosts where I don't use home manager +Additionally, there's a couple of ideas I have for this: +- [ ] Deploy base tooling to all hosts. This mainly includes shell and `helix` configs. They should still be configurable per-host. Potential issue here could be hosts where I don't use home manager - [ ] Make everything more composable. Can make use of the `elements` config some more, like how it's done for `quirks` [just]: https://github.com/casey/just diff --git a/flake.lock b/flake.lock index f4604a7..17ce3dc 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,31 @@ { "nodes": { + "affinity-nix": { + "inputs": { + "elemental-wine-source": "elemental-wine-source", + "flake-compat": "flake-compat", + "flake-parts": "flake-parts", + "git-hooks": "git-hooks", + "nixpkgs": "nixpkgs_2", + "nixpkgs-wine": "nixpkgs-wine", + "on-linux": "on-linux", + "plugin-loader": "plugin-loader", + "treefmt-nix": "treefmt-nix" + }, + "locked": { + "lastModified": 1763155533, + "narHash": "sha256-/oz0XxqBTOe9Bk7MsPYs73+Ajto051/WneYbyg/+5nU=", + "owner": "mrshmllow", + "repo": "affinity-nix", + "rev": "fe613cf7ee29d5344dfdead3fc779b45fb578015", + "type": "github" + }, + "original": { + "owner": "mrshmllow", + "repo": "affinity-nix", + "type": "github" + } + }, "agenix": { "inputs": { "darwin": "darwin", @@ -26,12 +52,12 @@ "agenix-rekey": { "inputs": { "devshell": "devshell", - "flake-parts": "flake-parts", + "flake-parts": "flake-parts_2", "nixpkgs": [ "nixpkgs" ], "pre-commit-hooks": "pre-commit-hooks", - "treefmt-nix": "treefmt-nix" + "treefmt-nix": "treefmt-nix_2" }, "locked": { "lastModified": 1749289693, @@ -47,39 +73,6 @@ "type": "github" } }, - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753216019, - "narHash": "sha256-zik7WISrR1ks2l6T1MZqZHb/OqroHdJnSnAehkE0kCk=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "be166e11d86ba4186db93e10c54a141058bdce49", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, "darwin": { "inputs": { "nixpkgs": [ @@ -179,20 +172,36 @@ "type": "github" } }, - "flake-compat": { + "elemental-wine-source": { "flake": false, "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", - "type": "github" + "host": "gitlab.winehq.org", + "lastModified": 1722747031, + "narHash": "sha256-XVhz9p2kgFBoJ376vg8OaFXxcMEjAe9AK1hk0I1rb1Q=", + "owner": "ElementalWarrior", + "repo": "wine", + "rev": "a7c9b19e1a26cf49c63a7c19189a3e2bbe2c6ac2", + "type": "gitlab" }, "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" + "host": "gitlab.winehq.org", + "owner": "ElementalWarrior", + "ref": "affinity-photo3-wine9.13-part3", + "repo": "wine", + "type": "gitlab" + } + }, + "flake-compat": { + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/flake-compat/archive/549f2762aebeff29a2e5ece7a7dc0f955281a1d1.tar.gz?rev=549f2762aebeff29a2e5ece7a7dc0f955281a1d1" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz" } }, "flake-compat_2": { @@ -212,6 +221,22 @@ } }, "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { "flake": false, "locked": { "lastModified": 1650374568, @@ -228,6 +253,24 @@ } }, "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1760948891, + "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { "inputs": { "nixpkgs-lib": [ "agenix-rekey", @@ -250,7 +293,7 @@ }, "flake-utils": { "inputs": { - "systems": "systems_5" + "systems": "systems_2" }, "locked": { "lastModified": 1694529238, @@ -285,11 +328,31 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": "flake-compat_2", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1760663237, + "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ - "agenix-rekey", - "pre-commit-hooks", + "affinity-nix", + "git-hooks", "nixpkgs" ] }, @@ -310,7 +373,7 @@ "gitignore_2": { "inputs": { "nixpkgs": [ - "hyprland", + "agenix-rekey", "pre-commit-hooks", "nixpkgs" ] @@ -370,397 +433,9 @@ "type": "github" } }, - "hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753964049, - "narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=", - "owner": "hyprwm", - "repo": "hyprcursor", - "rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprcursor", - "type": "github" - } - }, - "hyprgraphics": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1754305013, - "narHash": "sha256-u+M2f0Xf1lVHzIPQ7DsNCDkM1NYxykOSsRr4t3TbSM4=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "4c1d63a0f22135db123fc789f174b89544c6ec2d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hypridle": { - "inputs": { - "hyprland-protocols": "hyprland-protocols", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems_2" - }, - "locked": { - "lastModified": 1750503503, - "narHash": "sha256-UWxbL6a81GWBg990pcct1dzm4HuWIEd1Q6mpV7bHrnM=", - "owner": "hyprwm", - "repo": "hypridle", - "rev": "25578b71370d1ba7bf08127ca4b0959452df4d04", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hypridle", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-protocols": "hyprland-protocols_2", - "hyprland-qtutils": "hyprland-qtutils", - "hyprlang": "hyprlang_2", - "hyprutils": "hyprutils_2", - "hyprwayland-scanner": "hyprwayland-scanner_2", - "nixpkgs": "nixpkgs", - "pre-commit-hooks": "pre-commit-hooks_2", - "systems": "systems_3", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1755458331, - "narHash": "sha256-VzKflOdxS78WgxI6gmY0zkBKUa5MpytHI1PrKTWb23M=", - "owner": "hyprwm", - "repo": "hyprland", - "rev": "d8901786109dba6af3eac03c1e723f807ed0117a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland", - "type": "github" - } - }, - "hyprland-protocols": { - "inputs": { - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprland-protocols_2": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1749046714, - "narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=", - "owner": "hyprwm", - "repo": "hyprland-protocols", - "rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-protocols", - "type": "github" - } - }, - "hyprland-qt-support": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprland-qtutils", - "hyprlang" - ], - "nixpkgs": [ - "hyprland", - "hyprland-qtutils", - "nixpkgs" - ], - "systems": [ - "hyprland", - "hyprland-qtutils", - "systems" - ] - }, - "locked": { - "lastModified": 1749154592, - "narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=", - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qt-support", - "type": "github" - } - }, - "hyprland-qtutils": { - "inputs": { - "hyprland-qt-support": "hyprland-qt-support", - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprland-qtutils", - "hyprlang", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753819801, - "narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=", - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprland-qtutils", - "type": "github" - } - }, - "hyprlang": { - "inputs": { - "hyprutils": [ - "hypridle", - "hyprutils" - ], - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1749145882, - "narHash": "sha256-qr0KXeczF8Sma3Ae7+dR2NHhvG7YeLBJv19W4oMu6ZE=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "1bfb84f54d50c7ae6558c794d3cfd5f6a7e6e676", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprlang_2": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753622892, - "narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=", - "owner": "hyprwm", - "repo": "hyprlang", - "rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprlang", - "type": "github" - } - }, - "hyprutils": { - "inputs": { - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1749135356, - "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprutils_2": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1754481650, - "narHash": "sha256-6u6HdEFJh5gY6VfyMQbhP7zDdVcqOrCDTkbiHJmAtMI=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "df6b8820c4a0835d83d0c7c7be86fbc555f1f7fd", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hypridle", - "nixpkgs" - ], - "systems": [ - "hypridle", - "systems" - ] - }, - "locked": { - "lastModified": 1749145760, - "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, - "hyprwayland-scanner_2": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1751897909, - "narHash": "sha256-FnhBENxihITZldThvbO7883PdXC/2dzW4eiNvtoV5Ao=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "fcca0c61f988a9d092cbb33e906775014c61579d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, "musnix": { "inputs": { - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1756852730, @@ -776,38 +451,86 @@ "type": "github" } }, - "nix-filter": { + "nixpkgs": { "locked": { - "lastModified": 1693833173, - "narHash": "sha256-hlMABKrGbEiJD5dwUSfnw1CQ3bG7KKwDV+Nx3bEZd7U=", - "owner": "numtide", - "repo": "nix-filter", - "rev": "ac030bd9ba98e318e1f4c4328d60766ade8ebe8b", + "lastModified": 1759070547, + "narHash": "sha256-JVZl8NaVRYb0+381nl7LvPE+A774/dRpif01FKLrYFQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "647e5c14cbd5067f44ac86b74f014962df460840", "type": "github" }, "original": { - "owner": "numtide", - "repo": "nix-filter", + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", "type": "github" } }, - "nixpkgs": { + "nixpkgs-lib": { "locked": { - "lastModified": 1754725699, - "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", + "lastModified": 1754788789, + "narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "a73b9c743612e4244d865a2fdee11865283c04e6", "type": "github" }, "original": { - "owner": "NixOS", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs-wine": { + "locked": { + "lastModified": 1735834308, + "narHash": "sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6df24922a1400241dae323af55f30e4318a6ca65", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6df24922a1400241dae323af55f30e4318a6ca65", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1761672384, + "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c", + "type": "github" + }, + "original": { + "owner": "nixos", "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_3": { + "locked": { + "lastModified": 1761236834, + "narHash": "sha256-+pthv6hrL5VLW2UqPdISGuLiUZ6SnAXdd2DdUE+fV2Q=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "d5faa84122bc0a1fd5d378492efce4e289f8eac1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { "locked": { "lastModified": 1756542300, "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", @@ -823,26 +546,54 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_5": { "locked": { - "lastModified": 1760524057, - "narHash": "sha256-EVAqOteLBFmd7pKkb0+FIUyzTF61VKi7YmvP1tw4nEw=", + "lastModified": 1763049705, + "narHash": "sha256-A5LS0AJZ1yDPTa2fHxufZN++n8MCmtgrJDtxFxrH4S8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "544961dfcce86422ba200ed9a0b00dd4b1486ec5", + "rev": "3acb677ea67d4c6218f33de0db0955f116b7588c", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } }, + "on-linux": { + "flake": false, + "locked": { + "lastModified": 1761925232, + "narHash": "sha256-OaSqV9bTTpui4QtmiFszOaInJEyAmL469VQL6lU0lwA=", + "owner": "seapear", + "repo": "AffinityOnLinux", + "rev": "3cb7cdf8bfc56b630d91355e416616ba3835453c", + "type": "github" + }, + "original": { + "owner": "seapear", + "repo": "AffinityOnLinux", + "type": "github" + } + }, + "plugin-loader": { + "flake": false, + "locked": { + "narHash": "sha256-CCqT6TQHG7HqvxsnP/EC9Mg6A3KfNg5i/vGXW0exTxU=", + "type": "file", + "url": "https://github.com/noahc3/AffinityPluginLoader/releases/latest/download/affinitypluginloader-plus-winefix.tar.xz" + }, + "original": { + "type": "file", + "url": "https://github.com/noahc3/AffinityPluginLoader/releases/latest/download/affinitypluginloader-plus-winefix.tar.xz" + } + }, "pre-commit-hooks": { "inputs": { - "flake-compat": "flake-compat", - "gitignore": "gitignore", + "flake-compat": "flake-compat_3", + "gitignore": "gitignore_2", "nixpkgs": [ "agenix-rekey", "nixpkgs" @@ -862,29 +613,6 @@ "type": "github" } }, - "pre-commit-hooks_2": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore_2", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1754416808, - "narHash": "sha256-c6yg0EQ9xVESx6HGDOCMcyRSjaTpNJP10ef+6fRcofA=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "9c52372878df6911f9afc1e2a1391f55e4dfc864", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "quadlet": { "locked": { "lastModified": 1754008153, @@ -902,50 +630,23 @@ }, "root": { "inputs": { + "affinity-nix": "affinity-nix", "agenix": "agenix", "agenix-rekey": "agenix-rekey", "darwin": "darwin_2", "disko": "disko", "docker-compose-1": "docker-compose-1", "home-manager": "home-manager_2", - "hypridle": "hypridle", - "hyprland": "hyprland", "musnix": "musnix", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_5", "quadlet": "quadlet", - "rose-pine-hyprcursor": "rose-pine-hyprcursor", "snowfall": "snowfall", - "split-monitor-workspaces": "split-monitor-workspaces" - } - }, - "rose-pine-hyprcursor": { - "inputs": { - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "nixpkgs": [ - "nixpkgs" - ], - "utils": "utils" - }, - "locked": { - "lastModified": 1748096947, - "narHash": "sha256-ouuA8LVBXzrbYwPW2vNjh7fC9H2UBud/1tUiIM5vPvM=", - "owner": "ndom91", - "repo": "rose-pine-hyprcursor", - "rev": "4b02963d0baf0bee18725cf7c5762b3b3c1392f1", - "type": "github" - }, - "original": { - "owner": "ndom91", - "repo": "rose-pine-hyprcursor", - "type": "github" + "unstable": "unstable" } }, "snowfall": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "flake-utils-plus": "flake-utils-plus", "nixpkgs": [ "nixpkgs" @@ -965,27 +666,6 @@ "type": "github" } }, - "split-monitor-workspaces": { - "inputs": { - "hyprland": [ - "hyprland" - ], - "nix-filter": "nix-filter" - }, - "locked": { - "lastModified": 1755462553, - "narHash": "sha256-tMJvwMwUVi7XX7a8wyxZnpVl272WfjPaVC+7QRjqxyw=", - "owner": "Duckonaut", - "repo": "split-monitor-workspaces", - "rev": "f4ac65462cf310f9289614ad0cf4e16b2c9c4b47", - "type": "github" - }, - "original": { - "owner": "Duckonaut", - "repo": "split-monitor-workspaces", - "type": "github" - } - }, "systems": { "locked": { "lastModified": 1681028828, @@ -1002,51 +682,6 @@ } }, "systems_2": { - "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_3": { - "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_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_5": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1062,6 +697,24 @@ } }, "treefmt-nix": { + "inputs": { + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1761311587, + "narHash": "sha256-Msq86cR5SjozQGCnC6H8C+0cD4rnx91BPltZ9KK613Y=", + "owner": "numtide", + "repo": "treefmt-nix", + "rev": "2eddae033e4e74bf581c2d1dfa101f9033dbd2dc", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "treefmt-nix", + "type": "github" + } + }, + "treefmt-nix_2": { "inputs": { "nixpkgs": [ "agenix-rekey", @@ -1082,62 +735,19 @@ "type": "github" } }, - "utils": { - "inputs": { - "systems": "systems_4" - }, + "unstable": { "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "lastModified": 1762977756, + "narHash": "sha256-4PqRErxfe+2toFJFgcRKZ0UI9NSIOJa+7RXVtBhy4KE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "c5ae371f1a6a7fd27823bc500d9390b38c05fa55", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "xdph": { - "inputs": { - "hyprland-protocols": [ - "hyprland", - "hyprland-protocols" - ], - "hyprlang": [ - "hyprland", - "hyprlang" - ], - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1753633878, - "narHash": "sha256-js2sLRtsOUA/aT10OCDaTjO80yplqwOIaLUqEe0nMx0=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "371b96bd11ad2006ed4f21229dbd1be69bed3e8a", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } } diff --git a/flake.nix b/flake.nix index e619425..52b196b 100644 --- a/flake.nix +++ b/flake.nix @@ -65,8 +65,8 @@ }; inputs = { - # nixpkgs.url = "git+file:///home/christopher/code/opensource/nixpkgs"; - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; + unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; # Opinionated flake library for better organization without much boilerplate snowfall = { @@ -74,46 +74,29 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - # For using home-manager on Darwin (macOS) devices - darwin.url = "github:lnl7/nix-darwin"; - darwin.inputs.nixpkgs.follows = "nixpkgs"; - home-manager = { # url = "git+file:///home/christopher/code/opensource/home-manager"; url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + # For using home-manager on Darwin (macOS) devices + darwin.url = "github:lnl7/nix-darwin"; + darwin.inputs.nixpkgs.follows = "nixpkgs"; + # Disk management via Nix disko.url = "github:nix-community/disko"; disko.inputs.nixpkgs.follows = "nixpkgs"; + # Secrets management agenix.url = "github:ryantm/agenix"; agenix.inputs.nixpkgs.follows = "nixpkgs"; agenix-rekey.url = "github:oddlama/agenix-rekey"; agenix-rekey.inputs.nixpkgs.follows = "nixpkgs"; - hyprland.url = "github:hyprwm/hyprland"; - - hypridle = { - url = "github:hyprwm/hypridle"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - - rose-pine-hyprcursor = { - url = "github:ndom91/rose-pine-hyprcursor"; - inputs.nixpkgs.follows = "nixpkgs"; - inputs.hyprlang.follows = "hyprland/hyprlang"; - }; - - split-monitor-workspaces = { - url = "github:Duckonaut/split-monitor-workspaces"; - inputs.hyprland.follows = "hyprland"; - }; - + affinity-nix.url = "github:mrshmllow/affinity-nix"; quadlet.url = "github:SEIAROTg/quadlet-nix"; musnix.url = "github:musnix/musnix"; - docker-compose-1.url = github:nixos/nixpkgs/b0f0b5c6c021ebafbd322899aa9a54b87d75a313; }; } diff --git a/homes/x86_64-linux/christopher@cobalt/config/appearance.nix b/homes/x86_64-linux/christopher@cobalt/config/appearance.nix index 7cda8c7..d7655cc 100644 --- a/homes/x86_64-linux/christopher@cobalt/config/appearance.nix +++ b/homes/x86_64-linux/christopher@cobalt/config/appearance.nix @@ -1,21 +1,12 @@ {pkgs, ...}: { home.packages = with pkgs; [ + rose-pine-cursor lxappearance ]; gtk = { enable = true; - iconTheme = { - name = "oomox-rose-pine"; - package = pkgs.rose-pine-icon-theme; - }; - - theme = { - name = "rose-pine"; - package = pkgs.rose-pine-gtk-theme; - }; - cursorTheme = { name = "BreezeX-RoséPine"; package = pkgs.rose-pine-cursor; diff --git a/homes/x86_64-linux/christopher@cobalt/config/dev.nix b/homes/x86_64-linux/christopher@cobalt/config/dev.nix index a100be2..8391bd9 100644 --- a/homes/x86_64-linux/christopher@cobalt/config/dev.nix +++ b/homes/x86_64-linux/christopher@cobalt/config/dev.nix @@ -1,5 +1,18 @@ {pkgs, ...}: { home.packages = with pkgs; [ + # Editors + jetbrains-toolbox # Installer for JetBrains IDEs + zed-editor + code-cursor + vscode + + # Language Servers + lua-language-server + rust-analyzer + nodePackages.typescript + nodePackages.typescript-language-server + nil # nix lsp + zx # Tool for writing better scripts # trurl # Parsing and manipulating URLs via CLI dig # DNS @@ -7,12 +20,10 @@ tokei # Like cloc zeal # Offline documentation browser just # Just a command runner - jetbrains-toolbox # Installer for JetBrains IDEs claude-code devenv # Build tools - platformio cargo glibc gcc diff --git a/homes/x86_64-linux/christopher@cobalt/config/dunst.nix b/homes/x86_64-linux/christopher@cobalt/config/dunst.nix deleted file mode 100644 index 2b68445..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/dunst.nix +++ /dev/null @@ -1,47 +0,0 @@ -# Dunst is used for displaying system notifications. -# It is configured here, so that its styling looks better. -{...}: { - services.dunst = { - enable = true; - - settings = { - global = { - font = "Roboto 11"; - format = "%s\\n%b"; - width = 300; - height = 100; - offset = "7x7"; - - frame_color = "#8AADF4"; - frame_width = 2; - gap_size = 8; - line_height = 2; - - sort = true; - - # Not really relevant for single-monitor setup, but doesn't hurt either - monitor = 0; - follow = "mouse"; - }; - - urgency_low = { - background = "#24273A"; - foreground = "#CAD3F5"; - timeout = 10; - }; - - urgency_normal = { - background = "#24273A"; - foreground = "#CAD3F5"; - timeout = 10; - }; - - urgency_critical = { - background = "#24273A"; - foreground = "#CAD3F5"; - frame_color = "#F5A97F"; - timeout = 0; - }; - }; - }; -} diff --git a/homes/x86_64-linux/christopher@cobalt/config/editors.nix b/homes/x86_64-linux/christopher@cobalt/config/editors.nix deleted file mode 100644 index 0048d98..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/editors.nix +++ /dev/null @@ -1,13 +0,0 @@ -{pkgs, ...}: { - # Install common editors - home.packages = with pkgs; [ - zed-editor - - # Language Servers - lua-language-server - rust-analyzer - nodePackages.typescript - nodePackages.typescript-language-server - nil # nix lsp - ]; -} diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww.nix b/homes/x86_64-linux/christopher@cobalt/config/eww.nix deleted file mode 100644 index 8731b40..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - config, - pkgs, - ... -}: { - home.packages = with pkgs; [ - eww - lm_sensors - ]; - - home.file."${config.xdg.configHome}/eww" = { - source = ./eww; - recursive = true; - }; -} diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/README.md b/homes/x86_64-linux/christopher@cobalt/config/eww/README.md deleted file mode 100644 index a8cb5eb..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/README.md +++ /dev/null @@ -1,5 +0,0 @@ -In order to develop these widgets (with live reloading) do the following: - -1. Kill the original eww daemon using `eww kill` -2. Start the new daemon using `eww open spraggins --config ~/.dotfiles/homes/x86_64-linux/christopher@cobalt/config/eww ` -3. Now all changes to the original dotfiles defining the config will be hot-reloaded diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/_catppuccin.scss b/homes/x86_64-linux/christopher@cobalt/config/eww/_catppuccin.scss deleted file mode 100644 index 880dcd7..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/_catppuccin.scss +++ /dev/null @@ -1,121 +0,0 @@ -// Installed via `npm install @catppuccin/palette`. -// File copied from `node_modules/@catppuccin/palette/scss`. - -// Copied here so that we don't need to run npm install for -// eww configuration. Also this file shouldn't really change -// ever, so it's fine to include it statically. - -$palette: ( - "latte": ( - "rosewater": #dc8a78, - "flamingo": #dd7878, - "pink": #ea76cb, - "mauve": #8839ef, - "red": #d20f39, - "maroon": #e64553, - "peach": #fe640b, - "yellow": #df8e1d, - "green": #40a02b, - "teal": #179299, - "sky": #04a5e5, - "sapphire": #209fb5, - "blue": #1e66f5, - "lavender": #7287fd, - "text": #4c4f69, - "subtext1": #5c5f77, - "subtext0": #6c6f85, - "overlay2": #7c7f93, - "overlay1": #8c8fa1, - "overlay0": #9ca0b0, - "surface2": #acb0be, - "surface1": #bcc0cc, - "surface0": #ccd0da, - "base": #eff1f5, - "mantle": #e6e9ef, - "crust": #dce0e8, - ), - "frappe": ( - "rosewater": #f2d5cf, - "flamingo": #eebebe, - "pink": #f4b8e4, - "mauve": #ca9ee6, - "red": #e78284, - "maroon": #ea999c, - "peach": #ef9f76, - "yellow": #e5c890, - "green": #a6d189, - "teal": #81c8be, - "sky": #99d1db, - "sapphire": #85c1dc, - "blue": #8caaee, - "lavender": #babbf1, - "text": #c6d0f5, - "subtext1": #b5bfe2, - "subtext0": #a5adce, - "overlay2": #949cbb, - "overlay1": #838ba7, - "overlay0": #737994, - "surface2": #626880, - "surface1": #51576d, - "surface0": #414559, - "base": #303446, - "mantle": #292c3c, - "crust": #232634, - ), - "macchiato": ( - "rosewater": #f4dbd6, - "flamingo": #f0c6c6, - "pink": #f5bde6, - "mauve": #c6a0f6, - "red": #ed8796, - "maroon": #ee99a0, - "peach": #f5a97f, - "yellow": #eed49f, - "green": #a6da95, - "teal": #8bd5ca, - "sky": #91d7e3, - "sapphire": #7dc4e4, - "blue": #8aadf4, - "lavender": #b7bdf8, - "text": #cad3f5, - "subtext1": #b8c0e0, - "subtext0": #a5adcb, - "overlay2": #939ab7, - "overlay1": #8087a2, - "overlay0": #6e738d, - "surface2": #5b6078, - "surface1": #494d64, - "surface0": #363a4f, - "base": #24273a, - "mantle": #1e2030, - "crust": #181926, - ), - "mocha": ( - "rosewater": #f5e0dc, - "flamingo": #f2cdcd, - "pink": #f5c2e7, - "mauve": #cba6f7, - "red": #f38ba8, - "maroon": #eba0ac, - "peach": #fab387, - "yellow": #f9e2af, - "green": #a6e3a1, - "teal": #94e2d5, - "sky": #89dceb, - "sapphire": #74c7ec, - "blue": #89b4fa, - "lavender": #b4befe, - "text": #cdd6f4, - "subtext1": #bac2de, - "subtext0": #a6adc8, - "overlay2": #9399b2, - "overlay1": #7f849c, - "overlay0": #6c7086, - "surface2": #585b70, - "surface1": #45475a, - "surface0": #313244, - "base": #1e1e2e, - "mantle": #181825, - "crust": #11111b, - ), -); diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/eww.scss b/homes/x86_64-linux/christopher@cobalt/config/eww/eww.scss deleted file mode 100644 index 983d2f3..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/eww.scss +++ /dev/null @@ -1,102 +0,0 @@ -@use "sass:map"; -@import "catppuccin"; - -@mixin icon { - font-family: "Font Awesome 6 Pro Dutone"; - font-weight: 900; - font-size: 22px; -} - -$font-family: ""; -$used-palette: "frappe"; -$colors: map.get($palette, $used-palette); - -$gradient: - "rosewater", "flamingo", "pink", "mauve", "red", "maroon", "peach", - "yellow", "green", "teal", "sky"; - -@each $name, $color in $colors { - .color-#{$name} { - color: $color; - } - - .bg-#{$name} { - background: $color; - } -} - -@for $i from 1 through length($gradient) { - $color: map.get($colors, nth($gradient, $i)); - - .gradient-#{$i} { - color: $color; - } - - .gradient-#{$i}:hover { - color: desaturate($color: $color, $amount: 20); - } - - .bg-gradient-#{$i} { - background: $color; - } -} - -* { - all: unset; -} - -.spraggins { - padding: 5px 15px 0; - font-family: $font-family; - color: map.get($colors, "text"); -} - -.box { - background: map.get($colors, "base"); - border-radius: 4px; - // border: 2px solid $blue; - padding: 0 12px; -} - -.icon { - @include icon; - - &.smol { - font-size: 14px; - } -} - -.time { - font-size: 18px; -} - -.date { - font-size: 12px; -} - -.workspaceButton { - &.active { - color: white; - } - - &.empty { - font-weight: 300; - opacity: 0.3; - } - - &.empty.active { - opacity: 0.6; - } -} - -.sys { - padding: 8px 0; - - label { - padding: 0 8px; - } - - .icon { - font-size: 19px; - } -} diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/eww.yuck b/homes/x86_64-linux/christopher@cobalt/config/eww/eww.yuck deleted file mode 100644 index 0d7f002..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/eww.yuck +++ /dev/null @@ -1,96 +0,0 @@ -(include './variables.yuck') - -(defwidget workspaceButton [workspace] - (box - (eventbox - :class "workspaceButton icon gradient-${workspace.id} ${workspace.id == activeWorkspace ? 'active' : ''} ${workspace.windows == 0 ? 'empty' : ''}" - :cursor "pointer" - ; :visible {workspace.windows != 0 || workspace.id == activeWorkspace} - "${workspace.name}"))) - -(defwidget applauncher [] - (box - (eventbox - :class "icon gradient-10 applauncher" - :cursor "pointer" - :onclick "tofi-drun | xargs hyprctl dispatch exec --" - "\\ue196"))) - -(defwidget left [] - (box :class "box" :space-evenly false - (applauncher) - (box :style "padding-left: 25px;" :spacing 8 - (for space in workspaces - (workspaceButton :workspace space))))) - -(defwidget sysinfo [] - (box :space-evenly false :class "sys" - (children))) - -(defwidget system [] - (box :space-evenly false :spacing 8 - (sysinfo - (label - :class "icon intern bg-teal color-crust" - :text "\\uf2db") - (box :class "bg-crust color-text" :space-evenly false - "${round(EWW_CPU.avg, 2)} %" - (label - :class "color-overlay0" - :style "padding: 0;" - :text " |") - "${temps.cpu}")) - (sysinfo - (label - :class "icon intern bg-maroon color-base" - :text "\\uf538") - (label - :class "bg-surface0 color-text" - :text "${memory.used}")) - (sysinfo - (label - :class "icon intern bg-surface1 color-blue" - :text "\\uf0a0") - (label - :class "bg-surface2 color-text" - :text "${round(EWW_DISK["/"].used_perc, 2)} %")) - (sysinfo - (label :class "icon color-overlay2" :text "\\uf1b2") - (label - :class "color-overlay2" - :style "padding-left: 0;" - :text "${pkgCount}")))) - -(defwidget right [] - (box :spacing 20 :halign "end" :hexpand true :space-evenly false - (box :class "box" - (system)) - (box :class "box time" :space-evenly false :spacing 10 - (label - :valign "center" - :class "icon gradient-5" - :text "\\uf017") - (label - :valign "center" - :text "${time.hour}:${time.min}") - (label - :valign "center" - :class "date" - :text "${date}")))) - -(defwidget layout [] - (box - :class "layout" - :orientation "horizontal" - :space-evenly false - (left) - (right))) - -(defwindow spraggins - :monitor 1 - :stacking "bg" - :windowtype "normal" - :wm-ignore true - :exclusive true - :geometry (geometry :width "100%" :height "45") - (layout)) diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/get-active-workspace b/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/get-active-workspace deleted file mode 100755 index 6394389..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/get-active-workspace +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash - -MONITOR=$1 - -if [ -z "$MONITOR" ]; then - echo "Usage: $0 " - exit 1 -fi - -PREFIX="$MONITOR" -if [ "$MONITOR" == 0 ]; then - PREFIX="" -fi - -# Output the currently selected workspace -workspace () { - hyprctl monitors -j | jq ".[] | select(.id == $MONITOR) | .activeWorkspace.id" -} -workspace - -socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do - workspace -done diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/get-workspaces b/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/get-workspaces deleted file mode 100755 index fe23a56..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/get-workspaces +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -MONITOR=$1 - -if [ -z "$MONITOR" ]; then - echo "Usage: $0 " - exit 1 -fi - -KANJI='["一","二","三","四","五","六","七","八","九"]' -ICONS='["\\ue0ee","\\ue0ef","\\ue0f0","\\ue0f1","\\ue0f2","\\ue0f3","\\ue0f4","\\ue0f5","\\ue0f6"]' - -spaces () { - WORKSPACE_WINDOWS=$(hyprctl workspaces -j | jq "[.[] | select(.monitorID == $MONITOR)] | map({ key: (.id | tostring), value: .windows }) | from_entries") - seq 1 9 | jq --argjson windows "${WORKSPACE_WINDOWS}" --argjson kanji "${ICONS}" --slurp -Mc 'map({id: ., name: ($kanji[. - 1]), windows: ($windows[. | tostring]//0)})' -} -spaces - -socat -u UNIX-CONNECT:$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock - | while read -r line; do - spaces -done diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/memory b/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/memory deleted file mode 100755 index 703d2ab..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/memory +++ /dev/null @@ -1,19 +0,0 @@ -#!/usr/bin/env bash - -total="$(free -m | grep Mem | awk '{ print $2 }')" -used="$(free -m | grep Mem | awk '{ print $3 }')" -free=$(expr $total - $used) - -total_human=$(numfmt --to=iec --format="%.1f" $(( $total * 1000 * 1000 ))) -used_human=$(numfmt --to=iec --format="%.1f" $(( $used * 1000 * 1000 ))) -free_human=$(numfmt --to=iec --format="%.1f" $(( $free * 1000 * 1000 ))) - -if [ "$1" = "total" ]; then - echo $total_human -elif [ "$1" = "used" ]; then - echo $used_human -elif [ "$1" = "free" ]; then - echo $free_human -elif [ "$1" = "json" ]; then - jo total=$total_human used=$used_human free=$free_human -fi diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/pkgs b/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/pkgs deleted file mode 100755 index 6ba372b..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/pkgs +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -global_pkgs=$(cat /etc/current-system-packages | wc -l) -hm_pkgs=$(cat /home/christopher/.cache/current-home-manager-packages | wc -l) - -echo $(( $global_pkgs + $hm_pkgs )) diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/temps b/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/temps deleted file mode 100755 index fe0b676..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/scripts/temps +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -cpu=$(sensors | grep 'Tctl' | head -n 1 | awk '{ print $2 }' | sed 's/\+\([0-9]\+\.\?[0-9]*\)/\1 /') - -jo cpu="$cpu" diff --git a/homes/x86_64-linux/christopher@cobalt/config/eww/variables.yuck b/homes/x86_64-linux/christopher@cobalt/config/eww/variables.yuck deleted file mode 100644 index 7d2f07d..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/eww/variables.yuck +++ /dev/null @@ -1,20 +0,0 @@ -(defpoll time :interval "5s" :initial `{"hour":"00","min":"00"}` - `date +'{"hour":"%H","min":"%M"}'`) - -(defpoll date :interval "5s" :initial `` - `date +'%a, %b %d'`) - -(defpoll pkgCount :interval "1m" :initial `0` - `./scripts/pkgs`) - -(defpoll temps :interval "2s" :initial "{}" - `./scripts/temps`) - -(defpoll memory :interval "2s" :initial "{}" - `./scripts/memory json`) - -(deflisten workspaces :initial "[{}]" - `./scripts/get-workspaces 0`) - -(deflisten activeWorkspace - `./scripts/get-active-workspace 0`) diff --git a/homes/x86_64-linux/christopher@cobalt/config/wayland.nix b/homes/x86_64-linux/christopher@cobalt/config/wayland.nix deleted file mode 100644 index b5f5426..0000000 --- a/homes/x86_64-linux/christopher@cobalt/config/wayland.nix +++ /dev/null @@ -1,249 +0,0 @@ -{ - pkgs, - inputs, - ... -}: let - inputPkg = inputName: pluginName: inputs.${inputName}.packages.${pkgs.system}.${pluginName}; -in { - home.packages = with pkgs; [ - wl-clipboard - cliphist # Wayland clipboard - hyprpicker # Color picker - hyprpaper # Wallpaper utility - hyprlandPlugins.borders-plus-plus - ]; - - services.hyprpaper = { - enable = true; - settings.splash = false; - }; - - wayland.windowManager.hyprland = { - enable = true; - # systemd.variables = ["--all"]; - package = inputPkg "hyprland" "hyprland"; - - plugins = [ - (inputPkg "split-monitor-workspaces" "split-monitor-workspaces") - # (inputPkg "hypridle" "hypridle") - ]; - - extraConfig = '' - # See https://wiki.hyprland.org/Configuring/Monitors - monitor=desc:Samsung Electric Company C49HG9x HTRJ901269, 3840x1080, 0x0, 1 # Left - monitor=desc:Ancor Communications Inc ASUS VE278 C5LMTF047320, 1920x1080, 3840x-610, 1, transform, 1 # Right - - # Any other random monitor - monitor=,preferred,auto,1 - - # Gaps for eww - monitor=DP-3,addreserved,40,0,0,0 - # monitor=,addreserved,40,0,0,0 - - # Single tiled windows in a workspace on my main monitor - # should be displayed with a padding on both sides - workspace=w[t1] m[1],gapsout:15 840 15 840 - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - - exec-once = ibus-daemon -drxR - # exec-once = hyprpaper & # Wallpaper util - exec-once = swaync & # Notification center - exec-once = udiskie # Automatic mounting of USBs - # exec-once = eval $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) & - exec-once = sleep 1; ${pkgs._elements.select-wallpapers}/bin/select-wallpapers - exec-once = eww daemon - exec-once = eww open spraggins - exec-once = sleep 10; eww open spraggins # Open again after a while because the wallpaper will display on top once that is done - exec-once = wl-paste --type text --watch cliphist store - exec-once = wl-paste --type image --watch cliphist store - - # Source a file (multi-file configs) - # source = ~/.config/hypr/myColors.conf - - # Some default env vars. - env = XCURSOR_SIZE,28 - env = HYPRCURSOR_THEME,rose-pine-hyprcursor - env = HYPRCURSOR_SIZE,28 - # env = WLR_NO_HARDWARE_CURSORS,1 - env = NIXOS_OZONE_WL,1 - env = LIBVA_DRIVER_NAME,radeonsi - env = __GLX_VENDOR_LIBRARY_NAME,radeonsi - env = NVD_BACKEND,direct - - debug { - disable_logs = false - } - - # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ - input { - kb_layout = us - kb_variant = intl - kb_model = - kb_options = - kb_rules = - - follow_mouse = 2 - - touchpad { - natural_scroll = no - } - - sensitivity = 0 # -1.0 - 1.0, 0 means no modification. - } - - cursor { - no_hardware_cursors = true - } - - general { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - gaps_in = 8 - gaps_out = 15 - border_size = 3 - col.active_border = rgba(bf616aee) rgba(ebcb8bee) 45deg - col.inactive_border = rgba(5e81acaa) - - layout = dwindle - } - - decoration { - # See https://wiki.hyprland.org/Configuring/Variables/ for more - - rounding = 5 - blur { - enabled = true - xray = true - size = 4 - noise = 0.3 - passes = 2 - } - - shadow { - enabled = true - range = 4 - render_power = 3 - color = 0xee1a1a1a - } - } - - animations { - enabled = yes - - # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more - - bezier = myBezier, 0.05, 0.9, 0.1, 1.05 - - animation = windows, 1, 7, myBezier - animation = windowsOut, 1, 7, default, popin 80% - animation = border, 1, 10, default - animation = borderangle, 1, 8, default - animation = fade, 1, 7, default - animation = workspaces, 1, 6, default - } - - plugin { - split-monitor-workspaces { - count = 10 - } - - borders-plus-plus { - add_borders = 3 - - col.border_1 = rgb(000000) - col.border_2 = rgba(5e81acaa) - col.border_3 = rgb(000000) - - border_size_1 = 1 - border_size_2 = 3 - border_size_3 = 1 - - natural_rounding = yes - } - } - - dwindle { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = yes # you probably want this - } - - master { - # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more - # new_is_master = true - slave_count_for_center_master = 2 - orientation = center - } - - misc { - disable_hyprland_logo = true - disable_splash_rendering = true - } - - windowrule = float, class:(.*zeal.*) - windowrule = center 1, class:(.*zeal.*) - windowrule = size 50% 80%, class:(.*zeal.*) - windowrule = minsize 1400 500, class:(.*zeal.*) - windowrule = opacity 0.9, class:(.*zeal.*) - - windowrule = float, class:(.*speedcrunch.*) - windowrule = center 1, class:(.*speedcrunch.*) - windowrule = size 30% 60%, class:(.*speedcrunch.*) - windowrule = opacity 0.9, class:(.*speedcrunch.*) - - windowrule = float, title:DevTools - windowrule = opacity 0.9, class:(.*kitty.*) - - windowrule=nofocus,class:^jetbrains-(?!toolbox),floating:1,title:^win\d+$ - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - $mainMod = SUPER - - # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more - bind = $mainMod, C, exec, ${pkgs._elements.spawn-term}/bin/spawn-term - bind = $mainMod, W, killactive, - # bind = $mainMod, M, exit, - bind = $mainMod, M, fullscreen, 1 - bind = $mainMod, E, exec, thunar - bind = $mainMod, V, togglefloating, - bind = $mainMod, G, exec, ${pkgs._elements.tofi-hg}/bin/tofi-hg - bind = $mainMod, D, exec, ${pkgs._elements.quick-zeal}/bin/quick-zeal - bind = $mainMod, space, exec, tofi-drun | xargs hyprctl dispatch exec -- - bind = $mainMod, P, pseudo, # dwindle - bind = $mainMod, J, togglesplit, # dwindle - - # Move focus with mainMod + arrow keys - bind = $mainMod, left, movefocus, l - bind = $mainMod, right, movefocus, r - bind = $mainMod, up, movefocus, u - bind = $mainMod, down, movefocus, d - - # Switch workspaces with mainMod + [0-9] - bind = $mainMod, 1, split-workspace, 1 - bind = $mainMod, 2, split-workspace, 2 - bind = $mainMod, 3, split-workspace, 3 - bind = $mainMod, 4, split-workspace, 4 - bind = $mainMod, 5, split-workspace, 5 - bind = $mainMod, 6, split-workspace, 6 - bind = $mainMod, 7, split-workspace, 7 - bind = $mainMod, 8, split-workspace, 8 - bind = $mainMod, 9, split-workspace, 9 - - # Move active window to a workspace with mainMod + SHIFT + [0-9] - bind = $mainMod SHIFT, 1, split-movetoworkspacesilent, 1 - bind = $mainMod SHIFT, 2, split-movetoworkspacesilent, 2 - bind = $mainMod SHIFT, 3, split-movetoworkspacesilent, 3 - bind = $mainMod SHIFT, 4, split-movetoworkspacesilent, 4 - bind = $mainMod SHIFT, 5, split-movetoworkspacesilent, 5 - bind = $mainMod SHIFT, 6, split-movetoworkspacesilent, 6 - bind = $mainMod SHIFT, 7, split-movetoworkspacesilent, 7 - bind = $mainMod SHIFT, 8, split-movetoworkspacesilent, 8 - bind = $mainMod SHIFT, 9, split-movetoworkspacesilent, 9 - - # Move/resize windows with mainMod + LMB/RMB and dragging - bindm = $mainMod, mouse:272, movewindow - bindm = $mainMod, mouse:273, resizewindow - ''; - }; -} diff --git a/homes/x86_64-linux/christopher@cobalt/default.nix b/homes/x86_64-linux/christopher@cobalt/default.nix index da818b6..f20f93f 100644 --- a/homes/x86_64-linux/christopher@cobalt/default.nix +++ b/homes/x86_64-linux/christopher@cobalt/default.nix @@ -41,7 +41,6 @@ tofi-hg open-url generate-wallpaper - select-wallpapers ]; }; diff --git a/homes/x86_64-linux/christopher@cobalt/misc/browser.nix b/homes/x86_64-linux/christopher@cobalt/misc/browser.nix index 063b07f..369f123 100644 --- a/homes/x86_64-linux/christopher@cobalt/misc/browser.nix +++ b/homes/x86_64-linux/christopher@cobalt/misc/browser.nix @@ -1,7 +1,6 @@ {pkgs, ...}: { home.packages = with pkgs; [ firefox - vivaldi ]; xdg.mimeApps = { diff --git a/homes/x86_64-linux/christopher@cobalt/misc/everything.nix b/homes/x86_64-linux/christopher@cobalt/misc/everything.nix index 75dc8f4..64bfcc4 100644 --- a/homes/x86_64-linux/christopher@cobalt/misc/everything.nix +++ b/homes/x86_64-linux/christopher@cobalt/misc/everything.nix @@ -1,4 +1,8 @@ -{pkgs, ...}: { +{ + pkgs, + inputs, + ... +}: { home.packages = with pkgs; [ gnupg unzip @@ -9,6 +13,8 @@ solaar # Logitech mouse driver btop # Better resource monitor bottom # System resource monitor + grim # Screenshots + slurp # Region selection # GUI vesktop # Discord client @@ -19,12 +25,14 @@ filezilla # FTP Client orca-slicer # Bambu Lab Slicer + Control krita # Drawing software + inputs.affinity-nix.packages.${pkgs.system}.v3 # Affinity mochi # SRS flashcards thunderbird # Email client speedcrunch # GUI calculator app naps2 # Scanning vcv-rack # Eurorack simulator davinci-resolve # Video editor + cider-2 # Apple music player feh # Image viewer xarchiver # Archive viewer/extractor diff --git a/homes/x86_64-linux/christopher@cobalt/misc/gaming.nix b/homes/x86_64-linux/christopher@cobalt/misc/gaming.nix index b8065a6..3888d55 100644 --- a/homes/x86_64-linux/christopher@cobalt/misc/gaming.nix +++ b/homes/x86_64-linux/christopher@cobalt/misc/gaming.nix @@ -13,6 +13,7 @@ ]; }) + gamescope gamemode # performance mode mangohud # performance overlays alvr diff --git a/modules/common/nix.nix b/modules/common/nix.nix index 4e78f44..f858dbd 100644 --- a/modules/common/nix.nix +++ b/modules/common/nix.nix @@ -14,6 +14,10 @@ keep-outputs = true; trusted-users = ["root" "@wheel"]; + + substituters = [ + "https://cache.nixos.org/" + ]; }; nixpkgs = { diff --git a/modules/home/common/terminal/default.nix b/modules/home/common/terminal/default.nix index d116705..04dcde4 100644 --- a/modules/home/common/terminal/default.nix +++ b/modules/home/common/terminal/default.nix @@ -7,7 +7,8 @@ in { ./programs ./shell/aliases.nix ./shell/prompt.nix - # ./shell/nu + ./shell/nu + ./shell/fish ]; # add environment variables diff --git a/modules/home/common/terminal/shell/fish/default.nix b/modules/home/common/terminal/shell/fish/default.nix new file mode 100644 index 0000000..6616ba3 --- /dev/null +++ b/modules/home/common/terminal/shell/fish/default.nix @@ -0,0 +1,35 @@ +{ + pkgs, + config, + ... +}: { + programs.fish = { + enable = true; + shellAliases = config.home.shellAliases; + }; + + # config = '' + # export PATH="$HOME/code/hausgold/snippets/bin:$PATH" + # export PATH="$HOME/.bun/bin:$HOME/.npm/bin:$PATH" + + # art() + # { + # if [ -f "./vendor/bin/sail" ]; + # then + # ./vendor/bin/sail artisan "$@" + # else + # php artisan "$@" + # fi + # } + + # sail() + # { + # if [ -f "./vendor/bin/sail" ]; + # then + # ./vendor/bin/sail "$@" + # else + # echo "Sail is not installed. Run 'composer require laravel/sail' to install it." + # fi + # } + # ''; +} diff --git a/modules/home/common/terminal/shell/nu/default.nix b/modules/home/common/terminal/shell/nu/default.nix index fdd968d..ddb6d95 100644 --- a/modules/home/common/terminal/shell/nu/default.nix +++ b/modules/home/common/terminal/shell/nu/default.nix @@ -38,7 +38,7 @@ ## alias fixer start https://www.nushell.sh/cookbook/external_completers.html#alias-completions let expanded_alias = scope aliases | where name == $spans.0 - | get -o 0.expansion + | get -i 0.expansion let spans = if $expanded_alias != null { $spans diff --git a/modules/home/common/terminal/shell/prompt.nix b/modules/home/common/terminal/shell/prompt.nix index 9aa9aa5..b46331a 100644 --- a/modules/home/common/terminal/shell/prompt.nix +++ b/modules/home/common/terminal/shell/prompt.nix @@ -4,7 +4,7 @@ in { programs.oh-my-posh = { enable = true; enableNushellIntegration = true; - enableZshIntegration = true; + enableFishIntegration = true; # Original settings taken from `catppuccin_frappe`, and adjusted to my # likings and usage. diff --git a/modules/home/common/terminal/shell/zsh/antigen.nix b/modules/home/common/terminal/shell/zsh/antigen.nix deleted file mode 100644 index 2c34ea5..0000000 --- a/modules/home/common/terminal/shell/zsh/antigen.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ - config, - pkgs, - ... -}: { - home.packages = [pkgs.antigen]; - - # Antigen (Zsh Plugin Manager) - home.file.".antigenrc".text = '' - # Load oh-my-zsh - antigen use oh-my-zsh - - # Load bundles from the default oh-my-zsh repo - antigen bundle git - antigen bundle docker - antigen bundle command-not-found - # antigen bundle vi-mode - # antigen bundle gh # gh autocompletion - # antigen bundle 1password - # antigen bundle marlonrichert/zsh-autocomplete@main - # antigen bundle supercrabtree/k - antigen bundle fzf - antigen bundle zoxide - antigen bundle safe-paste - antigen bundle colored-man-pages - antigen bundle zsh-users/zsh-syntax-highlighting - antigen bundle zsh-users/zsh-autosuggestions - - # Configure a default theme - THEME="https://github.com/caiogondim/bullet-train-oh-my-zsh-theme bullet-train" - - # Enable the configured theme - # eval "antigen theme $THEME" - # eval "$(starship init zsh)" - - # And we're done - antigen apply - ''; -} diff --git a/modules/home/common/terminal/shell/zsh/default.nix b/modules/home/common/terminal/shell/zsh/default.nix deleted file mode 100644 index 40504b2..0000000 --- a/modules/home/common/terminal/shell/zsh/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ - pkgs, - config, - ... -}: { - imports = [ - ./antigen.nix - ]; - - programs.zoxide.enableZshIntegration = true; - - programs.zsh = { - enable = true; - oh-my-zsh.enable = true; - - shellAliases = config.home.shellAliases; - - # Add our own binaries to the PATH variable - initContent = '' - # Load Antigen as our package manager. - # The .antigenrc file is copied via the fixtures.nix - source ${pkgs.antigen.outPath}/share/antigen/antigen.zsh - antigen init ~/.antigenrc - - export PATH="$HOME/code/hausgold/snippets/bin:$PATH" - export PATH="$HOME/.bun/bin:$HOME/.npm/bin:$PATH" - - art() - { - if [ -f "./vendor/bin/sail" ]; - then - ./vendor/bin/sail artisan "$@" - else - php artisan "$@" - fi - } - - sail() - { - if [ -f "./vendor/bin/sail" ]; - then - ./vendor/bin/sail "$@" - else - echo "Sail is not installed. Run 'composer require laravel/sail' to install it." - fi - } - ''; - }; -} diff --git a/modules/nixos/wm/default.nix b/modules/nixos/wm/default.nix index 02451eb..06a8d1f 100644 --- a/modules/nixos/wm/default.nix +++ b/modules/nixos/wm/default.nix @@ -2,15 +2,10 @@ pkgs, config, lib, - inputs, ... }: with lib; let cfg = config.elements.wm; - tuigreet = "${pkgs.tuigreet}/bin/tuigreet"; - hyprland-pkg = inputs.hyprland.packages.${pkgs.system}.hyprland; - hyprland-portal-pkg = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; - hyprland-session = "${hyprland-pkg}/share/wayland-sessions"; in { options.elements = { wm = { @@ -20,50 +15,38 @@ in { config = mkIf cfg.enable { environment.systemPackages = with pkgs; [ - swaynotificationcenter - inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default - xwayland-satellite - hyprshot + kdePackages.discover + kdePackages.kclock + kdePackages.kcharselect + kdePackages.kolourpaint + kdePackages.ksystemlog + wayland-utils + wl-clipboard + libsForQt5.qtstyleplugin-kvantum + # xwayland-satellite ]; - programs.hyprland = { + services.xserver = { enable = true; - package = hyprland-pkg; - portalPackage = hyprland-portal-pkg; + + # SDDM is broken + displayManager.gdm = { + enable = true; + wayland = true; + }; }; + services.desktopManager.plasma6.enable = true; + services.displayManager.defaultSession = "plasma"; + # services.displayManager.sddm.enable = true; + # services.displayManager.sddm.wayland.enable = true; + # services.displayManager.sddm.wayland.compositor = "kwin"; + + # xdg.portal.extraPortals = [pkgs.xdg-desktop-portal-gtk]; + security = { polkit.enable = true; pam.services.swaylock = {}; }; - - xdg.portal = { - config.common.default = ["hyprland"]; - config.hyprland.default = ["wlr" "gtk"]; - extraPortals = [ - pkgs.xdg-desktop-portal-gtk - ]; - wlr.enable = true; - }; - - services.greetd = { - enable = true; - settings = { - default_session = { - command = "${tuigreet} --asterisks --time --remember --remember-session --sessions ${hyprland-session}"; - user = "greeter"; - }; - }; - }; - - systemd.services.greetd.serviceConfig = { - Type = "idle"; - StandardInput = "tty"; - StandardOutput = "tty"; - StandardError = "journal"; - TTYReset = true; - TTYVHangup = true; - TTYVTDisallocate = true; - }; }; } diff --git a/overlays/unstable/default.nix b/overlays/unstable/default.nix new file mode 100644 index 0000000..03798db --- /dev/null +++ b/overlays/unstable/default.nix @@ -0,0 +1,4 @@ +{channels, ...}: final: prev: { + # Pull the following packages from unstable instead + inherit (channels.unstable) kitty nu fish cider-2; +} diff --git a/packages/scripts/open-url/open-url b/packages/scripts/open-url/open-url index 46776d3..92b0973 100755 --- a/packages/scripts/open-url/open-url +++ b/packages/scripts/open-url/open-url @@ -1,5 +1,3 @@ -#!/usr/bin/env bash - # Function to open the default browser with a specified profile open_browser() { local profile="$1" @@ -24,5 +22,5 @@ if [[ $1 == "https://github.com/hausgold"* ]]; then open_browser "Work" "$@" else # Otherwise just use the default profile - open_browser "Default" "$@" + open_browser "default" "$@" fi diff --git a/packages/scripts/select-wallpapers/default.nix b/packages/scripts/select-wallpapers/default.nix deleted file mode 100644 index ccef966..0000000 --- a/packages/scripts/select-wallpapers/default.nix +++ /dev/null @@ -1,18 +0,0 @@ -{pkgs, ...}: -pkgs.writeTextFile rec { - name = "select-wallpapers"; - destination = "/bin/${name}"; - executable = true; - - text = '' - #!/usr/bin/env nu - - let wallpaper_dir = "/home/christopher/Wallpapers" - - let landscape = (ls $"($wallpaper_dir)/Landscape" | shuffle | get name | first) - let portrait = (ls $"($wallpaper_dir)/Portrait" | shuffle | get name | first) - - hyprctl hyprpaper reload $"DP-3,($landscape)" - hyprctl hyprpaper reload $"DP-1,($portrait)" - ''; -} diff --git a/packages/scripts/spawn-term/default.nix b/packages/scripts/spawn-term/default.nix index 1f410eb..df295b4 100644 --- a/packages/scripts/spawn-term/default.nix +++ b/packages/scripts/spawn-term/default.nix @@ -1,5 +1,25 @@ {pkgs, ...}: -pkgs.writeShellApplication { +pkgs.writeTextFile rec { name = "spawn-term"; - text = builtins.readFile ./spawn-term; + destination = "/bin/${name}"; + executable = true; + + text = '' + #!/usr/bin/env nu + + let focused_window = (niri msg --json windows | from json | where { $in.is_focused == true } | first) + + if ($focused_window | get app_id) == "kitty" { + let child_pid = (pgrep -P $"($focused_window | get pid)" | tail -1) + if ($child_pid | is-empty) { + kitty + exit 0 + } + + let path = ($"/proc/($child_pid)/cwd" | path expand) + kitty --directory $path + } else { + kitty + } + ''; } diff --git a/packages/scripts/spawn-term/spawn-term b/packages/scripts/spawn-term/spawn-term deleted file mode 100755 index 8d8229b..0000000 --- a/packages/scripts/spawn-term/spawn-term +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -ACTIVE_WINDOW=$(hyprctl activewindow -j ) -ACTIVE_CLASS=$(echo "$ACTIVE_WINDOW" | jq -r .initialClass) - -if [[ $ACTIVE_CLASS == *"kitty"* ]] -then - PID=$(echo "$ACTIVE_WINDOW" | jq -r .pid) - if [[ "$PID" == "" ]] - then - kitty - fi - - CHILD_PID=$(pgrep -P "$PID" | tail -1) - if [[ "$PID" == "" ]] - then - kitty - fi - - pushd "/proc/${CHILD_PID}/cwd" - SHELL_CWD=$(pwd -P) - popd - - kitty --directory "$SHELL_CWD" -else - kitty -fi diff --git a/systems/x86_64-linux/cobalt/default.nix b/systems/x86_64-linux/cobalt/default.nix index 9c5e29a..3c87789 100644 --- a/systems/x86_64-linux/cobalt/default.nix +++ b/systems/x86_64-linux/cobalt/default.nix @@ -34,8 +34,8 @@ with lib._elements; { qt = { enable = true; - platformTheme = "gnome"; - style = "adwaita-dark"; + platformTheme = "qt5ct"; + style = "kvantum"; }; networking = { @@ -125,8 +125,6 @@ with lib._elements; { ]; }; - logind.settings.Login.RuntimeDirectorySize = "6G"; - # Smartcard support, necessary for Yubikey logins pcscd.enable = true; };