From 3ede8554763a3aa2a3a460356ed932581d596340 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 19 Nov 2025 09:18:38 -0800 Subject: [PATCH 1/2] Gitignore, add result directory --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e69de29..b2be92b 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +result From e79e6540939fb0a52390a0bb36c650327f2efa12 Mon Sep 17 00:00:00 2001 From: Julia Lange Date: Wed, 19 Nov 2025 09:19:43 -0800 Subject: [PATCH 2/2] Flake, flake-part+easy-host, remove unused inputs IF YOU ARE NOT ME: I would not use this configuration. In the past I would feel confident telling you to drop in your own host and be off to the races, but right now users are in a state which required hard coding some of my nominal preferences. Read on for more specifics Completely refactors the flake.nix part of the repo. This removes my strange legacy code for directory-based hosts+users in favor of using easy-host and flake-parts. As a result of this some specialArgs were lost, namely the list of users and the username being passed. I think this is the right way to go in the short term, but it has lead to some hardcoded values. Namely "pan" is created as a user regardless of configuration In tandem with this is the deprecation of some modules which had inputs in flake which I wasn't using. I'm sure there is a better way to do this, but I didn't like downloading and caching them every time when I knew I wasn't using them. I'm currently very unhappy with the users part of this change, but that wasn't the goal of this branch. I will revisit in a larger commit. --- flake.lock | 737 ++---------------- flake.nix | 159 ++-- hmModules/apps/hypr/app.nix | 436 ++++++----- hmModules/apps/lf/app.nix | 2 +- hmModules/automatic/default.nix | 10 +- hmModules/services/widgets/ags/default.nix | 39 +- hosts/jibril/{host.nix => default.nix} | 0 hosts/juri/{host.nix => default.nix} | 0 hosts/onizuka/{host.nix => default.nix} | 2 - nixosModules/apps/animelauncher/app.nix | 27 +- nixosModules/automatic/default.nix | 39 +- nixosModules/services/hyprland/service.nix | 24 +- .../users/badtz => users/badtz@juri}/user.nix | 0 .../pan/user.nix => users/jibril/default.nix | 0 .../pan/user.nix => users/juri/default.nix | 0 .../pan/user.nix => users/onizuka/default.nix | 0 16 files changed, 426 insertions(+), 1049 deletions(-) rename hosts/jibril/{host.nix => default.nix} (100%) rename hosts/juri/{host.nix => default.nix} (100%) rename hosts/onizuka/{host.nix => default.nix} (91%) rename {hosts/juri/users/badtz => users/badtz@juri}/user.nix (100%) rename hosts/jibril/users/pan/user.nix => users/jibril/default.nix (100%) rename hosts/juri/users/pan/user.nix => users/juri/default.nix (100%) rename hosts/onizuka/users/pan/user.nix => users/onizuka/default.nix (100%) diff --git a/flake.lock b/flake.lock index d6589ec..a58039b 100644 --- a/flake.lock +++ b/flake.lock @@ -1,140 +1,50 @@ { "nodes": { - "aagl": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs", - "rust-overlay": "rust-overlay" - }, + "easy-hosts": { "locked": { - "lastModified": 1755609725, - "narHash": "sha256-r0Y5VDxpiA1AJy02VkmeCNudZ8/JJR1OP3ldtfce0ls=", - "owner": "ezKEa", - "repo": "aagl-gtk-on-nix", - "rev": "7566a0bcc55dbfaeb28791c06aa02060cf5bd0bf", + "lastModified": 1755470564, + "narHash": "sha256-KB1ZryVDoQcbIsItOf4WtxkHhh3ppj+XwMpSnt/2QHc=", + "owner": "tgirlcloud", + "repo": "easy-hosts", + "rev": "d0422bc7b3db26268982aa15d07e60370e76ee1d", "type": "github" }, "original": { - "owner": "ezKEa", - "repo": "aagl-gtk-on-nix", + "owner": "tgirlcloud", + "repo": "easy-hosts", "type": "github" } }, - "ags": { + "flake-parts": { "inputs": { - "astal": "astal", - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1756679577, - "narHash": "sha256-pkfftqE2CxVN6nKDZvlNdBxIkb/x5ch4wVfwZMYNGCM=", - "owner": "Aylur", - "repo": "ags", - "rev": "04d51ac4082af3ec47e8a803417a1a55b75151d7", - "type": "github" - }, - "original": { - "owner": "Aylur", - "repo": "ags", - "type": "github" - } - }, - "aquamarine": { - "inputs": { - "hyprutils": [ - "hyprland", - "hyprutils" - ], - "hyprwayland-scanner": [ - "hyprland", - "hyprwayland-scanner" - ], - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1755946532, - "narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=", - "owner": "hyprwm", - "repo": "aquamarine", - "rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "aquamarine", - "type": "github" - } - }, - "astal": { - "inputs": { - "nixpkgs": [ - "ags", + "nixpkgs-lib": [ "nixpkgs" ] }, "locked": { - "lastModified": 1756474652, - "narHash": "sha256-iiBU6itpEqE0spXeNJ3uJTfioSyKYjt5bNepykpDXTE=", - "owner": "aylur", - "repo": "astal", - "rev": "20bd8318e4136fbd3d4eb2d64dbabc3acbc915dd", + "lastModified": 1762980239, + "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", "type": "github" }, "original": { - "owner": "aylur", - "repo": "astal", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1747046372, - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", + "owner": "hercules-ci", + "repo": "flake-parts", "type": "github" } }, "flake-utils": { "inputs": { - "systems": "systems_2" + "systems": "systems" }, "locked": { - "lastModified": 1726560853, - "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -158,31 +68,11 @@ "type": "github" } }, - "gitignore": { - "inputs": { - "nixpkgs": [ - "hyprland", - "pre-commit-hooks", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", - "owner": "hercules-ci", - "repo": "gitignore.nix", - "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "gitignore.nix", - "type": "github" - } - }, "home-manager": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1757075491, @@ -198,321 +88,50 @@ "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": 1755678602, - "narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=", - "owner": "hyprwm", - "repo": "hyprgraphics", - "rev": "157cc52065a104fc3b8fa542ae648b992421d1c7", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprgraphics", - "type": "github" - } - }, - "hyprland": { - "inputs": { - "aquamarine": "aquamarine", - "hyprcursor": "hyprcursor", - "hyprgraphics": "hyprgraphics", - "hyprland-protocols": "hyprland-protocols", - "hyprland-qtutils": "hyprland-qtutils", - "hyprlang": "hyprlang", - "hyprutils": "hyprutils", - "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_5", - "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems", - "xdph": "xdph" - }, - "locked": { - "lastModified": 1756977414, - "narHash": "sha256-Hz5S4fILpYd1smWDZ+uLYjHgW22v6JS/04j15I4cFZE=", - "ref": "refs/heads/main", - "rev": "4e785d12a91117cd5b255052799d1a051d9976c0", - "revCount": 6409, - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - }, - "original": { - "type": "git", - "url": "https://github.com/hyprwm/Hyprland" - } - }, - "hyprland-contrib": { - "inputs": { - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1755680610, - "narHash": "sha256-g7/g5o0spemkZCzPa8I21RgCmN0Kv41B5z9Z5HQWraY=", - "owner": "hyprwm", - "repo": "contrib", - "rev": "04721247f417256ca96acf28cdfe946cf1006263", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "contrib", - "type": "github" - } - }, - "hyprland-protocols": { - "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": [ - "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": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1756117388, - "narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=", - "owner": "hyprwm", - "repo": "hyprutils", - "rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprutils", - "type": "github" - } - }, - "hyprwayland-scanner": { - "inputs": { - "nixpkgs": [ - "hyprland", - "nixpkgs" - ], - "systems": [ - "hyprland", - "systems" - ] - }, - "locked": { - "lastModified": 1755184602, - "narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=", - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "hyprwayland-scanner", - "type": "github" - } - }, "lix": { "flake": false, "locked": { - "lastModified": 1729298361, - "narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=", - "rev": "ad9d06f7838a25beec425ff406fe68721fef73be", + "lastModified": 1763415215, + "narHash": "sha256-20HAylsK5h/DiNMbYfL1xDjgzoMIFz3jCyoIjvoKL5I=", + "rev": "08b0ce8736510f816a25061c97d3ca51fb36d757", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/08b0ce8736510f816a25061c97d3ca51fb36d757.tar.gz" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.tar.gz" + "url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" } }, "lix-module": { "inputs": { "flake-utils": "flake-utils", "flakey-profile": "flakey-profile", - "lix": "lix", - "nixpkgs": "nixpkgs_7" + "lix": [ + "lix" + ], + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { - "lastModified": 1732605668, - "narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=", - "rev": "f19bd752910bbe3a861c9cad269bd078689d50fe", + "lastModified": 1761960361, + "narHash": "sha256-FvuAw56NIVJpS3Kr8Wv9PpU4eehZMcdIVkxjStuYmqc=", + "rev": "c47f62187601ea2991b79a9bacdbfdf76cd29fbe", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz" + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/c47f62187601ea2991b79a9bacdbfdf76cd29fbe.tar.gz" }, "original": { "type": "tarball", - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz" + "url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz" } }, "niri": { "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_8", + "nixpkgs": [ + "nixpkgs" + ], "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" @@ -566,18 +185,15 @@ }, "nixpkgs": { "locked": { - "lastModified": 1754498491, - "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "c2ae88e026f9525daf89587f3cbee584b92b6134", - "type": "github" + "lastModified": 1763312402, + "narHash": "sha256-uuJnccye1O5FHnnHYBge1lN2Pq4Z2lp1E3+rc2zsUr4=", + "rev": "85a6c4a07faa12aaccd81b36ba9bfc2bec974fa1", + "type": "tarball", + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre897164.85a6c4a07faa/nixexprs.tar.xz" }, "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "type": "tarball", + "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" } }, "nixpkgs-stable": { @@ -596,206 +212,23 @@ "type": "github" } }, - "nixpkgs_10": { - "locked": { - "lastModified": 1744868846, - "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1744536153, - "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1756542300, - "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1756542300, - "narHash": "sha256-tlOn88coG5fzdyqz6R93SQL5Gpq+m/DsWpekNFhqPQk=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d7600c775f877cd87b4f5a831c28aa94137377aa", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1756266583, - "narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1712163089, - "narHash": "sha256-Um+8kTIrC19vD4/lUCN9/cU9kcOsD1O1m+axJqQPyMM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "fd281bd6b7d3e32ddfa399853946f782553163b5", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1729070438, - "narHash": "sha256-KOTTUfPkugH52avUvXGxvWy8ibKKj4genodIYUED+Kc=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "5785b6bb5eaae44e627d541023034e1601455827", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "ref": "nixos-unstable", - "type": "indirect" - } - }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat_2", - "gitignore": "gitignore", - "nixpkgs": [ - "hyprland", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1755960406, - "narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=", - "owner": "cachix", - "repo": "git-hooks.nix", - "rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "git-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { - "aagl": "aagl", - "ags": "ags", + "easy-hosts": "easy-hosts", + "flake-parts": "flake-parts", "home-manager": "home-manager", - "hyprland": "hyprland", - "hyprland-contrib": "hyprland-contrib", + "lix": "lix", "lix-module": "lix-module", "niri": "niri", - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs", "sops-nix": "sops-nix" } }, - "rust-overlay": { - "inputs": { - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1754575663, - "narHash": "sha256-afOx8AG0KYtw7mlt6s6ahBBy7eEHZwws3iCRoiuRQS4=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "6db0fb0e9cec2e9729dc52bf4898e6c135bb8a0f", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_10" + "nixpkgs": [ + "nixpkgs" + ] }, "locked": { "lastModified": 1754988908, @@ -812,21 +245,6 @@ } }, "systems": { - "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_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -841,47 +259,6 @@ "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": 1755354946, - "narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=", - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0", - "type": "github" - }, - "original": { - "owner": "hyprwm", - "repo": "xdg-desktop-portal-hyprland", - "type": "github" - } - }, "xwayland-satellite-stable": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index eeb4bd0..37dafc1 100644 --- a/flake.nix +++ b/flake.nix @@ -1,94 +1,89 @@ { - inputs = { - nixpkgs.url = "nixpkgs/nixos-unstable"; + outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { + imports = with inputs; [ + easy-hosts.flakeModule + home-manager.flakeModules.home-manager + ]; - home-manager.url = "github:nix-community/home-manager"; + systems = [ "x86_64-linux" ]; + easy-hosts = { + autoConstruct = true; + path = ./hosts; + onlySystem = "x86_64-nixos"; - lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz"; + shared = { + modules = [ + inputs.lix-module.nixosModules.default + ./nixosModules + ]; + }; + }; - hyprland.url = "git+https://github.com/hyprwm/Hyprland"; - hyprland-contrib.url = "github:hyprwm/contrib"; - - niri.url = "github:sodiboo/niri-flake"; - - sops-nix.url = "github:Mic92/sops-nix"; - ags.url = "github:Aylur/ags"; - aagl.url = "github:ezKEa/aagl-gtk-on-nix"; + flake = { + homeConfigurations = let + userConfig = system: extraModules: + inputs.home-manager.lib.homeManagerConfiguration { + extraSpecialArgs = { inherit inputs; }; + pkgs = inputs.nixpkgs.legacyPackages.${system}; + modules = [ ./hmModules ] ++ extraModules; + }; + in { + "pan@juri" = userConfig "x86_64-linux" [ ./users/juri ]; + "pan@jibril" = userConfig "x86_64-linux" [ ./users/jibril ]; + "pan@onizuka" = userConfig "x86_64-linux" [ ./users/onizuka ]; + }; + }; }; - outputs = { self, home-manager, nixpkgs, lix-module, ... }@inputs: let - system = "x86_64-linux"; - pkgs = nixpkgs.legacyPackages.${system}; - fs = pkgs.lib.fileset; - st = pkgs.lib.strings; - as = pkgs.lib.attrsets; + inputs = { + # Save data with this url. Source: + # at://did:plc:mojgntlezho4qt7uvcfkdndg/app.bsky.feed.post/3loogwsoqok2w + # cid: bafyreidhuuxs3cuabneygtxir65hnd7hvy4hwj5rwrylpwmp7jhxciasve + nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"; - hosts = let - hostFilter = { name, ...}: name == "host.nix"; - hostPaths = fs.toList (fs.fileFilter hostFilter ./hosts); - # Assumes dir structure is start_of_path/hosts/hostname/host.nix - extractHostName = path: builtins.unsafeDiscardStringContext ( - st.removeSuffix "/host.nix" ( - builtins.elemAt (st.splitString "/hosts/" path) 1 - ) - ); - in builtins.listToAttrs (map (path: { - value = path; - name = extractHostName path; - }) hostPaths); - - users = let - userFilter = { name, ...}: name == "user.nix"; - userPaths = fs.toList (fs.fileFilter userFilter ./hosts); - in builtins.listToAttrs (map (path: let - dirsAndFiles = st.splitString "/" path; - dAFLength = builtins.length dirsAndFiles; - # Assumes dir structure is start_of_path/hosts/hostname/users/username/user.nix - hostname = builtins.unsafeDiscardStringContext ( - builtins.elemAt dirsAndFiles (dAFLength - 4)); - username = builtins.unsafeDiscardStringContext ( - builtins.elemAt dirsAndFiles (dAFLength - 2)); - in { - name = username + "@" + hostname; - value = path; - } - ) userPaths); - - userConfig = usernameAtHostname: userpath: home-manager.lib.homeManagerConfiguration { - inherit pkgs; - extraSpecialArgs = { - inherit inputs; - inherit usernameAtHostname; - }; - modules = [ - ./hmModules - userpath - ]; + home-manager = { + type = "github"; + owner = "nix-community"; + repo = "home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; }; - hostConfig = hostname: hostpath: nixpkgs.lib.nixosSystem { - specialArgs = let - hostFilteredUsers = as.filterAttrs ( - name: value: let - userHostname = builtins.elemAt (st.splitString "@" name) 1; - in userHostname == hostname - ) users; - - hostUsers = as.mapAttrsToList ( - name: value: builtins.elemAt (st.splitString "@" name) 0 - ) hostFilteredUsers; - in { - inherit inputs; - inherit hostname; - "usernameList" = hostUsers; - }; - modules = [ - ./nixosModules - hostpath - ]; + flake-parts = { + type = "github"; + owner = "hercules-ci"; + repo = "flake-parts"; + inputs.nixpkgs-lib.follows = "nixpkgs"; + }; + + easy-hosts = { + type = "github"; + owner = "tgirlcloud"; + repo = "easy-hosts"; + }; + + lix = { + url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz"; + flake = false; + }; + + lix-module = { + url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.lix.follows = "lix"; + }; + + niri = { + type = "github"; + owner = "sodiboo"; + repo = "niri-flake"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + sops-nix = { + type = "github"; + owner = "Mic92"; + repo = "sops-nix"; + inputs.nixpkgs.follows = "nixpkgs"; }; - in { - nixosConfigurations = builtins.mapAttrs (name: path: hostConfig name path) hosts; - homeConfigurations = builtins.mapAttrs (name: path: userConfig name path) users; }; } diff --git a/hmModules/apps/hypr/app.nix b/hmModules/apps/hypr/app.nix index 85e7b6f..8bdc848 100644 --- a/hmModules/apps/hypr/app.nix +++ b/hmModules/apps/hypr/app.nix @@ -1,5 +1,5 @@ -{ config, inputs, pkgs, lib, ... }: -let rootPath = ./.; in +{ config, lib, ... }: +# let rootPath = ./.; in { options.hypr = { enable = lib.mkEnableOption "Enables hyprland"; @@ -34,220 +34,224 @@ let rootPath = ./.; in polkit.enable = lib.mkEnableOption "Enables polkit agent"; screenshot.enable = lib.mkEnableOption "Enables Screenshotting"; }; + + config.warnings = lib.mkIf config.hypr.enable ['' + hypr.* has been deprecated to allow the removal of hyprland from flake inputs. + '']; - imports = [ inputs.hyprland.homeManagerModules.default ]; + # imports = [ inputs.hyprland.homeManagerModules.default ]; - config = let - lopts = lib.lists.optionals; - in { - nix.settings = { - substituters = ["https://hyprland.cachix.org"]; - trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; - }; - } // lib.mkIf config.hypr.enable { - wayland.windowManager.hyprland = let - mod = config.hypr.mod_key; - # p-s = let - # chw = config.hypr.workspace; - # findDefaultWs = id: if (builtins.hasAttr id chw.workspaces) - # then (builtins.head (builtins.getAttr id chw.workspaces)) - # else ""; - # in with config.hypr.workspace; lib.mkIf primary-secondary.enable { - # primaryWs = findDefaultWs primary-secondary.primary; - # secondaryWs = findDefaultWs primary-secondary.secondary; - # }; - in { - enable = true; - settings = { - monitor = config.hypr.monitor.details; - workspace = let - wsMonitor = monitor: wrksps: map (ws: - if ws == (builtins.head wrksps) - then "name:"+ws+", monitor:"+monitor+", persistent:true, default:true" - else "name:"+ws+", monitor:"+monitor+", persistent:true" - ) wrksps; - makeRules = wsAttr: builtins.concatLists (builtins.attrValues ( - builtins.mapAttrs wsMonitor wsAttr - )); - in makeRules config.hypr.workspace.workspaces - ++ [ - "w[t1], gapsout:0, gapsin:0" - "w[tg1], gapsout:0, gapsin:0" - "f[1], gapsout:0, gapsin:0" - ] - ++ lopts config.hypr.workspace.scratchpad.enable [ - "special:scratch, on-created-empty: [float; size 50% 50%; center] ${config.defaultApps.terminal}" - ]; - input = { - accel_profile = "flat"; - sensitivity = config.hypr.mouse.sensitivity; - }; - general = { - gaps_in = 3; - gaps_out = 3; - border_size = 2; - "col.active_border" = "rgb(F5C2E7)"; - "col.inactive_border" = "rgb(1E1D2F)"; - layout = "master"; - }; - decoration = { - rounding = 2; - blur = { - enabled = true; - size = 12; - passes = 2; - special = true; - }; - }; - animation = [ - "windows, 1, 4, default, popin 50%" - "windowsOut, 1, 4, default, popin 50%" - "windowsMove, 1, 3, default" - "border, 1, 3, default" - "fade, 1, 3, default" - "workspaces, 1, 3, default" - ]; - master = { - mfact = config.hypr.master.mfact; - }; - misc = { - focus_on_activate = true; - }; - - exec-once = lopts config.hypr.polkit.enable [ - "${pkgs.kdePackages.polkit-kde-agent-1}/bin/libexec/polkit-kde-authentication-agent-1" - ] ++ lopts config.hypr.background.enable [ - "${pkgs.swww}/bin/swww-daemon" - "${pkgs.swww}/bin/swww img ${config.hypr.background.path}" - ] ++ lopts config.ags.enable [ - "ags" - ] ++ lopts config.beeper.enable [ - "[workspace name:chat silent] Beeper" - ]; - - env = with config.hypr; [ - # "HYPR_MON_PRIMARY, ${workspace.primary-secondary.primary}" - # "HYPR_MON_SECONDARY, ${workspace.primary-secondary.secondary}" - "HYPR_WORK_DB, ${config.xdg.cacheHome}/hypr/workspace.db" - ] ++ lopts cursor.enable [ - "HYPRCURSOR_THEME,${cursor.theme}" - "HYPRCURSOR_SIZE,${cursor.size}" - ] ++ lopts config.nvidia.enable [ - "LIBVA_DRIVER_NAME,nvidia" - "XDG_SESSION_TYPE,wayland" - "GBM_BACKEND,nvidia-drm" - "__GLX_VENDOR_LIBRARY_NAME,nvidia" - "WLR_RENDERER_ALLOW_SOFTWARE,1" - "WLR_DRM_DEVICES,/dev/dri/card1" - ]; - - windowrulev2 = let - workspaceDefaults = wsname: applist: map ( - app: "workspace " + wsname + ", " + app - ) applist; - allDefault = wsAttr: builtins.concatLists (builtins.attrValues ( - builtins.mapAttrs workspaceDefaults wsAttr - )); - in allDefault config.hypr.workspace.defaults - ++ [ - "bordersize 0, floating:0, onworkspace:w[t1]" - "rounding 0, floating:0, onworkspace:w[t1]" - "bordersize 0, floating:0, onworkspace:w[tg1]" - "rounding 0, floating:0, onworkspace:w[tg1]" - "bordersize 0, floating:0, onworkspace:f[1]" - "rounding 0, floating:0, onworkspace:f[1]" - ] - ++ lopts config.hypr.xwayland.videobridge.enable [ - "opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$" - "noanim,class:^(xwaylandvideobridge)$" - "noinitialfocus,class:^(xwaylandvideobridge)$" - "maxsize 1 1,class:^(xwaylandvideobridge)$" - "noblur,class:^(xwaylandvideobridge)$" - ] ++ map (id: "opacity 1 override, " + id) config.hypr.windows.opaque - ++ [ - "opacity 0.94 fullscreen:0" - "opacity 0.79 override, class:^(${config.defaultApps.terminal})$" - ]; - - # 1, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh home - # 2, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh web - # 3, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh med - # 4, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh game - # 5, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh etc - # _, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh hell - # TAB, exec, $XDG_CONFIG_HOME/hypr/scripts/changesecondary.xsh - # - # SHIFT, 1, movetoworkspacesilent, name:home - # SHIFT, 2, movetoworkspacesilent, name:web - # SHIFT, 3, movetoworkspacesilent, name:med - # SHIFT, 4, movetoworkspacesilent, name:game - # SHIFT, TAB, movetoworkspacesilent, r-1 - - bind = let - modPrefix = kb: if (lib.strings.hasPrefix "&" kb) - then ("${mod}" + kb) - else ("${mod}, " + kb); - in map modPrefix ([ - "Return, exec, ${config.defaultApps.terminal}" - "&SHIFT, Q, exit" - "h, focusmonitor, l" - "l, focusmonitor, r" - "j, cyclenext," - "k, cyclenext, prev" - "&SHIFT, h, movecurrentworkspacetomonitor, -1" - "&SHIFT, l, movecurrentworkspacetomonitor, +1" - "&SHIFT, j, swapnext," - "&SHIFT, k, swapnext, prev" - "c, killactive" - "f, togglefloating" - "&SHIFT, f, fullscreen" - ] ++ (let - workspaces = builtins.concatLists ( - builtins.attrValues config.hypr.workspace.workspaces); - wsBinds = with builtins; wrksps: depth: if depth > (length wrksps) - then [] - else let ws = builtins.elemAt wrksps (depth -1); in [ - "${toString depth}, workspace, name:${ws}" - "&SHIFT, ${toString depth}, movetoworkspacesilent, name:${ws}" - ] ++ wsBinds wrksps (depth + 1); - in wsBinds workspaces 1) ++ lopts config.rofi.enable [ - "&SHIFT, return, exec, ${pkgs.rofi}/bin/rofi -show run" - ] ++ lopts config.hypr.screenshot.enable [ - "P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copy area" - "&SHIFT, P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copysave area" - ] ++ lopts config.hypr.workspace.scratchpad.enable [ - "i, togglespecialworkspace, scratch" - ]); - - bindm = map (kb: "${mod}, " + kb) [ - "mouse:272, movewindow" - "mouse:273, movewindow" - ]; - }; - }; - - home.packages = with pkgs; [ - wlr-randr # Xrandr for wayland - wl-clipboard # Clipboard manager for wayland - ] ++ lopts config.hypr.xwayland.videobridge.enable [ - kdePackages.xwaylandvideobridge - ] ++ lopts config.hypr.cursor.enable [ - hyprcursor - ] ++ lopts config.hypr.screenshot.enable [ - hyprpicker # Colorpicker, needed for screenshot tool - inputs.hyprland-contrib.packages.${pkgs.system}.grimblast - ]; - - xdg.configFile."hypr-scripts" = { - source = rootPath + "/scripts"; - target = "hypr/scripts"; - executable = true; - }; - - xdg.dataFile."hypr-icons" = lib.mkIf config.hypr.cursor.enable { - source = rootPath + "/icons"; - target = "icons/"; - recursive = true; - }; - }; + # config = let + # lopts = lib.lists.optionals; + # in { + # nix.settings = { + # substituters = ["https://hyprland.cachix.org"]; + # trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="]; + # }; + # } // lib.mkIf config.hypr.enable { + # wayland.windowManager.hyprland = let + # mod = config.hypr.mod_key; + # # p-s = let + # # chw = config.hypr.workspace; + # # findDefaultWs = id: if (builtins.hasAttr id chw.workspaces) + # # then (builtins.head (builtins.getAttr id chw.workspaces)) + # # else ""; + # # in with config.hypr.workspace; lib.mkIf primary-secondary.enable { + # # primaryWs = findDefaultWs primary-secondary.primary; + # # secondaryWs = findDefaultWs primary-secondary.secondary; + # # }; + # in { + # enable = true; + # settings = { + # monitor = config.hypr.monitor.details; + # workspace = let + # wsMonitor = monitor: wrksps: map (ws: + # if ws == (builtins.head wrksps) + # then "name:"+ws+", monitor:"+monitor+", persistent:true, default:true" + # else "name:"+ws+", monitor:"+monitor+", persistent:true" + # ) wrksps; + # makeRules = wsAttr: builtins.concatLists (builtins.attrValues ( + # builtins.mapAttrs wsMonitor wsAttr + # )); + # in makeRules config.hypr.workspace.workspaces + # ++ [ + # "w[t1], gapsout:0, gapsin:0" + # "w[tg1], gapsout:0, gapsin:0" + # "f[1], gapsout:0, gapsin:0" + # ] + # ++ lopts config.hypr.workspace.scratchpad.enable [ + # "special:scratch, on-created-empty: [float; size 50% 50%; center] ${config.defaultApps.terminal}" + # ]; + # input = { + # accel_profile = "flat"; + # sensitivity = config.hypr.mouse.sensitivity; + # }; + # general = { + # gaps_in = 3; + # gaps_out = 3; + # border_size = 2; + # "col.active_border" = "rgb(F5C2E7)"; + # "col.inactive_border" = "rgb(1E1D2F)"; + # layout = "master"; + # }; + # decoration = { + # rounding = 2; + # blur = { + # enabled = true; + # size = 12; + # passes = 2; + # special = true; + # }; + # }; + # animation = [ + # "windows, 1, 4, default, popin 50%" + # "windowsOut, 1, 4, default, popin 50%" + # "windowsMove, 1, 3, default" + # "border, 1, 3, default" + # "fade, 1, 3, default" + # "workspaces, 1, 3, default" + # ]; + # master = { + # mfact = config.hypr.master.mfact; + # }; + # misc = { + # focus_on_activate = true; + # }; + # + # exec-once = lopts config.hypr.polkit.enable [ + # "${pkgs.kdePackages.polkit-kde-agent-1}/bin/libexec/polkit-kde-authentication-agent-1" + # ] ++ lopts config.hypr.background.enable [ + # "${pkgs.swww}/bin/swww-daemon" + # "${pkgs.swww}/bin/swww img ${config.hypr.background.path}" + # ] ++ lopts config.ags.enable [ + # "ags" + # ] ++ lopts config.beeper.enable [ + # "[workspace name:chat silent] Beeper" + # ]; + # + # env = with config.hypr; [ + # # "HYPR_MON_PRIMARY, ${workspace.primary-secondary.primary}" + # # "HYPR_MON_SECONDARY, ${workspace.primary-secondary.secondary}" + # "HYPR_WORK_DB, ${config.xdg.cacheHome}/hypr/workspace.db" + # ] ++ lopts cursor.enable [ + # "HYPRCURSOR_THEME,${cursor.theme}" + # "HYPRCURSOR_SIZE,${cursor.size}" + # ] ++ lopts config.nvidia.enable [ + # "LIBVA_DRIVER_NAME,nvidia" + # "XDG_SESSION_TYPE,wayland" + # "GBM_BACKEND,nvidia-drm" + # "__GLX_VENDOR_LIBRARY_NAME,nvidia" + # "WLR_RENDERER_ALLOW_SOFTWARE,1" + # "WLR_DRM_DEVICES,/dev/dri/card1" + # ]; + # + # windowrulev2 = let + # workspaceDefaults = wsname: applist: map ( + # app: "workspace " + wsname + ", " + app + # ) applist; + # allDefault = wsAttr: builtins.concatLists (builtins.attrValues ( + # builtins.mapAttrs workspaceDefaults wsAttr + # )); + # in allDefault config.hypr.workspace.defaults + # ++ [ + # "bordersize 0, floating:0, onworkspace:w[t1]" + # "rounding 0, floating:0, onworkspace:w[t1]" + # "bordersize 0, floating:0, onworkspace:w[tg1]" + # "rounding 0, floating:0, onworkspace:w[tg1]" + # "bordersize 0, floating:0, onworkspace:f[1]" + # "rounding 0, floating:0, onworkspace:f[1]" + # ] + # ++ lopts config.hypr.xwayland.videobridge.enable [ + # "opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$" + # "noanim,class:^(xwaylandvideobridge)$" + # "noinitialfocus,class:^(xwaylandvideobridge)$" + # "maxsize 1 1,class:^(xwaylandvideobridge)$" + # "noblur,class:^(xwaylandvideobridge)$" + # ] ++ map (id: "opacity 1 override, " + id) config.hypr.windows.opaque + # ++ [ + # "opacity 0.94 fullscreen:0" + # "opacity 0.79 override, class:^(${config.defaultApps.terminal})$" + # ]; + # + # # 1, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh home + # # 2, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh web + # # 3, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh med + # # 4, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh game + # # 5, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh etc + # # _, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh hell + # # TAB, exec, $XDG_CONFIG_HOME/hypr/scripts/changesecondary.xsh + # # + # # SHIFT, 1, movetoworkspacesilent, name:home + # # SHIFT, 2, movetoworkspacesilent, name:web + # # SHIFT, 3, movetoworkspacesilent, name:med + # # SHIFT, 4, movetoworkspacesilent, name:game + # # SHIFT, TAB, movetoworkspacesilent, r-1 + # + # bind = let + # modPrefix = kb: if (lib.strings.hasPrefix "&" kb) + # then ("${mod}" + kb) + # else ("${mod}, " + kb); + # in map modPrefix ([ + # "Return, exec, ${config.defaultApps.terminal}" + # "&SHIFT, Q, exit" + # "h, focusmonitor, l" + # "l, focusmonitor, r" + # "j, cyclenext," + # "k, cyclenext, prev" + # "&SHIFT, h, movecurrentworkspacetomonitor, -1" + # "&SHIFT, l, movecurrentworkspacetomonitor, +1" + # "&SHIFT, j, swapnext," + # "&SHIFT, k, swapnext, prev" + # "c, killactive" + # "f, togglefloating" + # "&SHIFT, f, fullscreen" + # ] ++ (let + # workspaces = builtins.concatLists ( + # builtins.attrValues config.hypr.workspace.workspaces); + # wsBinds = with builtins; wrksps: depth: if depth > (length wrksps) + # then [] + # else let ws = builtins.elemAt wrksps (depth -1); in [ + # "${toString depth}, workspace, name:${ws}" + # "&SHIFT, ${toString depth}, movetoworkspacesilent, name:${ws}" + # ] ++ wsBinds wrksps (depth + 1); + # in wsBinds workspaces 1) ++ lopts config.rofi.enable [ + # "&SHIFT, return, exec, ${pkgs.rofi}/bin/rofi -show run" + # ] ++ lopts config.hypr.screenshot.enable [ + # "P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copy area" + # "&SHIFT, P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copysave area" + # ] ++ lopts config.hypr.workspace.scratchpad.enable [ + # "i, togglespecialworkspace, scratch" + # ]); + # + # bindm = map (kb: "${mod}, " + kb) [ + # "mouse:272, movewindow" + # "mouse:273, movewindow" + # ]; + # }; + # }; + # + # home.packages = with pkgs; [ + # wlr-randr # Xrandr for wayland + # wl-clipboard # Clipboard manager for wayland + # ] ++ lopts config.hypr.xwayland.videobridge.enable [ + # kdePackages.xwaylandvideobridge + # ] ++ lopts config.hypr.cursor.enable [ + # hyprcursor + # ] ++ lopts config.hypr.screenshot.enable [ + # hyprpicker # Colorpicker, needed for screenshot tool + # inputs.hyprland-contrib.packages.${pkgs.system}.grimblast + # ]; + # + # xdg.configFile."hypr-scripts" = { + # source = rootPath + "/scripts"; + # target = "hypr/scripts"; + # executable = true; + # }; + # + # xdg.dataFile."hypr-icons" = lib.mkIf config.hypr.cursor.enable { + # source = rootPath + "/icons"; + # target = "icons/"; + # recursive = true; + # }; + # }; } diff --git a/hmModules/apps/lf/app.nix b/hmModules/apps/lf/app.nix index f4ff3da..ecc428e 100644 --- a/hmModules/apps/lf/app.nix +++ b/hmModules/apps/lf/app.nix @@ -33,7 +33,7 @@ relativenumber = true; }; commands = { - dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"''; + dragon-out = ''%${pkgs.dragon-drop}/bin/dragon-drop -a -x "$fx"''; trash = lib.mkIf config.trash.enable '' %${pkgs.trash-cli}/bin/trash "$fx" ''; diff --git a/hmModules/automatic/default.nix b/hmModules/automatic/default.nix index f974b21..18c78ef 100644 --- a/hmModules/automatic/default.nix +++ b/hmModules/automatic/default.nix @@ -1,4 +1,4 @@ -{ config, lib, usernameAtHostname, ... }: +{ config, lib, ... }: { options = { @@ -9,17 +9,15 @@ browser = lib.mkOption { default = ""; }; }; }; - config = let - st = lib.strings; - in { + config = { # Let Home Manager install and manage itself. programs.home-manager.enable = true; nixpkgs.config.allowUnfree = true; home.stateVersion = "23.05"; home = { - username = builtins.elemAt (st.splitString "@" usernameAtHostname) 0; - homeDirectory = "/home/" + config.home.username; + username = "pan"; + homeDirectory = "/home/pan"; packages = config.extraPkgs; }; diff --git a/hmModules/services/widgets/ags/default.nix b/hmModules/services/widgets/ags/default.nix index 5d248d1..5403b1e 100644 --- a/hmModules/services/widgets/ags/default.nix +++ b/hmModules/services/widgets/ags/default.nix @@ -1,25 +1,30 @@ -{ config, inputs, pkgs, lib, ... }: +{ config, lib, ... }: { options.ags = { enable = lib.mkEnableOption "Enable ags"; }; + + config.warnings = lib.mkIf config.ags.enable ['' + ags.enable has been deprecated to allow the removal of ags from flake + inputs. + '']; - imports = [ inputs.ags.homeManagerModules.default ]; + # imports = [ inputs.ags.homeManagerModules.default ]; - config = lib.mkIf config.ags.enable { - home.packages = with pkgs; [ - libnotify # Notifications through ags - ]; - programs.ags = { - enable = true; - configDir = ./config; - - extraPackages = with pkgs; [ - gtksourceview - webkitgtk - accountsservice - ]; - }; - }; + # config = lib.mkIf config.ags.enable { + # home.packages = with pkgs; [ + # libnotify # Notifications through ags + # ]; + # programs.ags = { + # enable = true; + # configDir = ./config; + # + # extraPackages = with pkgs; [ + # gtksourceview + # webkitgtk + # accountsservice + # ]; + # }; + # }; } diff --git a/hosts/jibril/host.nix b/hosts/jibril/default.nix similarity index 100% rename from hosts/jibril/host.nix rename to hosts/jibril/default.nix diff --git a/hosts/juri/host.nix b/hosts/juri/default.nix similarity index 100% rename from hosts/juri/host.nix rename to hosts/juri/default.nix diff --git a/hosts/onizuka/host.nix b/hosts/onizuka/default.nix similarity index 91% rename from hosts/onizuka/host.nix rename to hosts/onizuka/default.nix index d2dbc49..46a9717 100644 --- a/hosts/onizuka/host.nix +++ b/hosts/onizuka/default.nix @@ -20,8 +20,6 @@ steam.enable = true; steam.gamemode = true; - aagl.enable = true; - aagl.honkai-rail = true; input-remapper.enable = true; postgres.enable = true; diff --git a/nixosModules/apps/animelauncher/app.nix b/nixosModules/apps/animelauncher/app.nix index 5cf1a9b..27f1406 100644 --- a/nixosModules/apps/animelauncher/app.nix +++ b/nixosModules/apps/animelauncher/app.nix @@ -1,4 +1,4 @@ -{ config, inputs, lib, ... }: +{ config, lib, ... }: { options.aagl = { @@ -12,16 +12,21 @@ "Enables honkai 3rd impact"; }; - imports = [ inputs.aagl.nixosModules.default ]; + # imports = [ inputs.aagl.nixosModules.default ]; - config = lib.mkIf config.aagl.enable { - nix.settings = inputs.aagl.nixConfig; + config.warnings = lib.mkIf (config.aagl.enable || config.aagl.honkai-rail || + config.aagl.genshin || config.aagl.honkai-3rd) ['' + aagl.* has been deprecated to allow the removal of aagl from flake inputs. + '']; - programs.honkers-railway-launcher.enable = - lib.mkIf config.aagl.honkai-rail true; - programs.anime-game-launcher.enable = - lib.mkIf config.aagl.genshin true; - programs.honkers-launcher.enable = - lib.mkIf config.aagl.honkai-3rd true; - }; + # config = lib.mkIf config.aagl.enable { + # nix.settings = inputs.aagl.nixConfig; + # + # programs.honkers-railway-launcher.enable = + # lib.mkIf config.aagl.honkai-rail true; + # programs.anime-game-launcher.enable = + # lib.mkIf config.aagl.genshin true; + # programs.honkers-launcher.enable = + # lib.mkIf config.aagl.honkai-3rd true; + # }; } diff --git a/nixosModules/automatic/default.nix b/nixosModules/automatic/default.nix index 2f80ace..2bbeffd 100644 --- a/nixosModules/automatic/default.nix +++ b/nixosModules/automatic/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, hostname, usernameList, ... }: +{ config, pkgs, lib, ... }: { options.system = { @@ -22,7 +22,6 @@ boot.loader.efi.canTouchEfiVariables = true; }) { - networking.hostName = hostname; system.stateVersion = lib.mkDefault "23.05"; time.timeZone = config.system.timezone; @@ -39,24 +38,24 @@ # XDG Compliance nix.settings.use-xdg-base-directories = true; - users = { - users = builtins.listToAttrs (map ( - user: { - name = user; - value = { - name = user; - isNormalUser = true; - extraGroups = [ "network" ]; - }; - } - ) usernameList); - groups = { - wheel = { - members = config.system.users.bigWheels; - }; - network = { }; - }; - }; + # users = { + # users = builtins.listToAttrs (map ( + # user: { + # name = user; + # value = { + # name = user; + # isNormalUser = true; + # extraGroups = [ "network" ]; + # }; + # } + # ) usernameList); + # groups = { + # wheel = { + # members = config.system.users.bigWheels; + # }; + # network = { }; + # }; + # }; fonts = { enableDefaultPackages = true; diff --git a/nixosModules/services/hyprland/service.nix b/nixosModules/services/hyprland/service.nix index 779a8fe..3d13ac0 100644 --- a/nixosModules/services/hyprland/service.nix +++ b/nixosModules/services/hyprland/service.nix @@ -1,4 +1,4 @@ -{ inputs, config, lib, ... }: +{ config, lib, ... }: { @@ -6,18 +6,14 @@ enable = lib.mkEnableOption "Enables hyprland"; }; - imports = [ - inputs.hyprland.nixosModules.default - ]; + # imports = [ + # inputs.hyprland.nixosModules.default + # ]; - config = { - nix.settings = { - substituters = [ "https://hyprland.cachix.org" ]; - trusted-public-keys = [ - "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" - ]; - experimental-features = [ "nix-command" "flakes" ]; - }; - programs.hyprland.enable = lib.mkIf config.hyprland.enable true; - }; + config.warnings = lib.mkIf config.hyprland.enable ['' + hyprland.enable has been deprecated to allow the removal of hyprland from + flake inputs. + '']; + + # config.programs.hyprland.enable = lib.mkIf config.hyprland.enable true; } diff --git a/hosts/juri/users/badtz/user.nix b/users/badtz@juri/user.nix similarity index 100% rename from hosts/juri/users/badtz/user.nix rename to users/badtz@juri/user.nix diff --git a/hosts/jibril/users/pan/user.nix b/users/jibril/default.nix similarity index 100% rename from hosts/jibril/users/pan/user.nix rename to users/jibril/default.nix diff --git a/hosts/juri/users/pan/user.nix b/users/juri/default.nix similarity index 100% rename from hosts/juri/users/pan/user.nix rename to users/juri/default.nix diff --git a/hosts/onizuka/users/pan/user.nix b/users/onizuka/default.nix similarity index 100% rename from hosts/onizuka/users/pan/user.nix rename to users/onizuka/default.nix