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;
};