Compare commits

...
Sign in to create a new pull request.

1 commit

Author SHA1 Message Date
d4e12d46b3
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.
2025-11-19 09:38:33 -08:00
16 changed files with 444 additions and 1067 deletions

773
flake.lock generated
View file

@ -1,140 +1,50 @@
{ {
"nodes": { "nodes": {
"aagl": { "easy-hosts": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
},
"locked": { "locked": {
"lastModified": 1762188647, "lastModified": 1755470564,
"narHash": "sha256-OAXK4p7WIYUcp8xx9m0RZUpV6XUDEhkoM4efI8dzPiU=", "narHash": "sha256-KB1ZryVDoQcbIsItOf4WtxkHhh3ppj+XwMpSnt/2QHc=",
"owner": "ezKEa", "owner": "tgirlcloud",
"repo": "aagl-gtk-on-nix", "repo": "easy-hosts",
"rev": "1172be1377bc65581004f4d5927b58c5c7d96639", "rev": "d0422bc7b3db26268982aa15d07e60370e76ee1d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "ezKEa", "owner": "tgirlcloud",
"repo": "aagl-gtk-on-nix", "repo": "easy-hosts",
"type": "github" "type": "github"
} }
}, },
"ags": { "flake-parts": {
"inputs": { "inputs": {
"astal": "astal", "nixpkgs-lib": [
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1762046771,
"narHash": "sha256-baVZvZZN0t9F3fvVhxmQA1/oNykXGd/YhlF19JqCLc8=",
"owner": "Aylur",
"repo": "ags",
"rev": "fe13af2daec716226ccdb3158606a8577853e0ff",
"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": 1761420899,
"narHash": "sha256-kxGCip6GNbcbNWKu4J2iKbNYfFTS8Zbjg9CWp0zmFoM=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "62479232aae42c1ef09c2c027c8cfd91df060897",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"astal": {
"inputs": {
"nixpkgs": [
"ags",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1762012522, "lastModified": 1762980239,
"narHash": "sha256-ncEN4OVFM5M9VFc4oR3gOI5K8r99GcYxtU+Cf4Z8pbs=", "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=",
"owner": "aylur", "owner": "hercules-ci",
"repo": "astal", "repo": "flake-parts",
"rev": "671d4229c798834190a50fb8b8d8addd19b529e9", "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "aylur", "owner": "hercules-ci",
"repo": "astal", "repo": "flake-parts",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"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",
"type": "github" "type": "github"
} }
}, },
"flake-utils": { "flake-utils": {
"inputs": { "inputs": {
"systems": "systems_2" "systems": "systems"
}, },
"locked": { "locked": {
"lastModified": 1726560853, "lastModified": 1731533236,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -158,38 +68,18 @@
"type": "github" "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": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1762351818, "lastModified": 1763416652,
"narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", "narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", "rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -198,331 +88,60 @@
"type": "github" "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": 1760445448,
"narHash": "sha256-fXGjL6dw31FPFRrmIemzGiNSlfvEJTJNsmadZi+qNhI=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "50fb9f069219f338a11cf0bcccb9e58357d67757",
"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": 1762269308,
"narHash": "sha256-3fTMnF1E7BsZ7NlmFmPo6+SRFm4FELP45IDLHcGLZ1s=",
"ref": "refs/heads/main",
"rev": "46b71eda6423cc9c3b19cb310c3344e81ac624c5",
"revCount": 6551,
"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": 1759613406,
"narHash": "sha256-PzgQJydp+RlKvwDi807pXPlURdIAVqLppZDga3DwPqg=",
"owner": "hyprwm",
"repo": "contrib",
"rev": "32e1a75b65553daefb419f0906ce19e04815aa3a",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "contrib",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1759610243,
"narHash": "sha256-+KEVnKBe8wz+a6dTLq8YDcF3UrhQElwsYJaVaHXJtoI=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "bd153e76f751f150a09328dbdeb5e4fab9d23622",
"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": 1759080228,
"narHash": "sha256-RgDoAja0T1hnF0pTc56xPfLfFOO8Utol2iITwYbUhTk=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "629b15c19fa4082e4ce6be09fdb89e8c3312aed7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1758927902,
"narHash": "sha256-LZgMds7M94+vuMql2bERQ6LiFFdhgsEFezE4Vn+Ys3A=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "4dafa28d4f79877d67a7d1a654cddccf8ebf15da",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1762208756,
"narHash": "sha256-hC1jb4tdjFfEuU18KQiMgz5XPAO+d5SfbjAUS7haLl4=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "164a30b3d8b3174a32ac7326782476f1188e6118",
"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": { "lix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1729298361, "lastModified": 1763570812,
"narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=", "narHash": "sha256-A42G8ulTZ1MFCR0VsLF21CoKi0XKGUYwtVBHGm5mFgQ=",
"rev": "ad9d06f7838a25beec425ff406fe68721fef73be", "rev": "f3b2f3496bd6d346cba475d0ba152a9d3a83dec7",
"type": "tarball", "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/f3b2f3496bd6d346cba475d0ba152a9d3a83dec7.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "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": { "lix-module": {
"inputs": { "inputs": {
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"flakey-profile": "flakey-profile", "flakey-profile": "flakey-profile",
"lix": "lix", "lix": [
"nixpkgs": "nixpkgs_7" "lix"
],
"nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1732605668, "lastModified": 1763435414,
"narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=", "narHash": "sha256-i2467FddWfd19q5Qoj+1/BAeg6LZmM5m4mYGRSQn/as=",
"rev": "f19bd752910bbe3a861c9cad269bd078689d50fe", "rev": "192c92b603731fbc1bade6c1b18c8d8a0086f703",
"type": "tarball", "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/192c92b603731fbc1bade6c1b18c8d8a0086f703.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "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": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
"niri-unstable": "niri-unstable", "niri-unstable": "niri-unstable",
"nixpkgs": "nixpkgs_8", "nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable", "nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
"locked": { "locked": {
"lastModified": 1762341801, "lastModified": 1763538184,
"narHash": "sha256-zx7UxreMz646qikxw+So7eGRQeWccKFZxuMvJowJuFs=", "narHash": "sha256-6umNY06L6ZUjinthjVZIwyWyAjxOXSPhXfY0U1CVTWw=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "20aadad64b8b8cbebc71371713c141d91d7f8172", "rev": "85a16f400641eed912431efcec16f12e2100d46a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -551,11 +170,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1762146685, "lastModified": 1763531615,
"narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=", "narHash": "sha256-cMi8tz+0+gWtlYqVnyMv7phOeQ0/4WmzZ/lxCyraUVw=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943", "rev": "c722634c269ae97a5ea185691bcd0b8c73a600e5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -566,27 +185,24 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1761672384, "lastModified": 1763464769,
"narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=", "narHash": "sha256-mU85VDFRIgKGq1EhT71bLjhvjJ5yuMEe0Ip1kwCbR80=",
"owner": "nixos", "rev": "6f374686605df381de8541c072038472a5ea2e2d",
"repo": "nixpkgs", "type": "tarball",
"rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c", "url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre898015.6f374686605d/nixexprs.tar.xz"
"type": "github"
}, },
"original": { "original": {
"owner": "nixos", "type": "tarball",
"ref": "nixos-unstable", "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1762233356, "lastModified": 1763334038,
"narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=", "narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8", "rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -596,213 +212,30 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_10": {
"locked": {
"lastModified": 1760596604,
"narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43",
"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": 1761907660,
"narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1762111121,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_5": {
"locked": {
"lastModified": 1762111121,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_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": 1762111121,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": {
"lastModified": 1762111121,
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
"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": 1760663237,
"narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"aagl": "aagl", "easy-hosts": "easy-hosts",
"ags": "ags", "flake-parts": "flake-parts",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland", "lix": "lix",
"hyprland-contrib": "hyprland-contrib",
"lix-module": "lix-module", "lix-module": "lix-module",
"niri": "niri", "niri": "niri",
"nixpkgs": "nixpkgs_9", "nixpkgs": "nixpkgs",
"sops-nix": "sops-nix" "sops-nix": "sops-nix"
} }
}, },
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1761791894,
"narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "59c45eb69d9222a4362673141e00ff77842cd219",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"sops-nix": { "sops-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_10" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1760998189, "lastModified": 1763509310,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=", "narHash": "sha256-s2WzTAD3vJtPACBCZXezNUMTG/wC6SFsU9DxazB9wDI=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3", "rev": "3ee33c0ed7c5aa61b4e10484d2ebdbdc98afb03e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -812,21 +245,6 @@
} }
}, },
"systems": { "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": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -841,47 +259,6 @@
"type": "github" "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": 1761431178,
"narHash": "sha256-xzjC1CV3+wpUQKNF+GnadnkeGUCJX+vgaWIZsnz9tzI=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "4b8801228ff958d028f588f0c2b911dbf32297f9",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
},
"xwayland-satellite-stable": { "xwayland-satellite-stable": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -902,11 +279,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1762302024, "lastModified": 1762747449,
"narHash": "sha256-F+4W0J5r7fbEl+VmATFqAA5+4dFSNAmLJB7tAtrTIkY=", "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "53b6072bd995b5b4017999cf247f9eb6660c72a2", "rev": "6338574bc5c036487486acde264f38f39ea15fad",
"type": "github" "type": "github"
}, },
"original": { "original": {

159
flake.nix
View file

@ -1,94 +1,89 @@
{ {
inputs = { outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } {
nixpkgs.url = "nixpkgs/nixos-unstable"; 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"; flake = {
hyprland-contrib.url = "github:hyprwm/contrib"; homeConfigurations = let
userConfig = system: extraModules:
niri.url = "github:sodiboo/niri-flake"; inputs.home-manager.lib.homeManagerConfiguration {
extraSpecialArgs = { inherit inputs; };
sops-nix.url = "github:Mic92/sops-nix"; pkgs = inputs.nixpkgs.legacyPackages.${system};
ags.url = "github:Aylur/ags"; modules = [ ./hmModules ] ++ extraModules;
aagl.url = "github:ezKEa/aagl-gtk-on-nix"; };
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 inputs = {
system = "x86_64-linux"; # Save data with this url. Source:
pkgs = nixpkgs.legacyPackages.${system}; # at://did:plc:mojgntlezho4qt7uvcfkdndg/app.bsky.feed.post/3loogwsoqok2w
fs = pkgs.lib.fileset; # cid: bafyreidhuuxs3cuabneygtxir65hnd7hvy4hwj5rwrylpwmp7jhxciasve
st = pkgs.lib.strings; nixpkgs.url = "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz";
as = pkgs.lib.attrsets;
hosts = let home-manager = {
hostFilter = { name, ...}: name == "host.nix"; type = "github";
hostPaths = fs.toList (fs.fileFilter hostFilter ./hosts); owner = "nix-community";
# Assumes dir structure is start_of_path/hosts/hostname/host.nix repo = "home-manager";
extractHostName = path: builtins.unsafeDiscardStringContext ( inputs.nixpkgs.follows = "nixpkgs";
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
];
}; };
hostConfig = hostname: hostpath: nixpkgs.lib.nixosSystem { flake-parts = {
specialArgs = let type = "github";
hostFilteredUsers = as.filterAttrs ( owner = "hercules-ci";
name: value: let repo = "flake-parts";
userHostname = builtins.elemAt (st.splitString "@" name) 1; inputs.nixpkgs-lib.follows = "nixpkgs";
in userHostname == hostname };
) users;
easy-hosts = {
hostUsers = as.mapAttrsToList ( type = "github";
name: value: builtins.elemAt (st.splitString "@" name) 0 owner = "tgirlcloud";
) hostFilteredUsers; repo = "easy-hosts";
in { };
inherit inputs;
inherit hostname; lix = {
"usernameList" = hostUsers; url = "https://git.lix.systems/lix-project/lix/archive/main.tar.gz";
}; flake = false;
modules = [ };
./nixosModules
hostpath 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;
}; };
} }

View file

@ -1,5 +1,5 @@
{ config, inputs, pkgs, lib, ... }: { config, lib, ... }:
let rootPath = ./.; in # let rootPath = ./.; in
{ {
options.hypr = { options.hypr = {
enable = lib.mkEnableOption "Enables hyprland"; enable = lib.mkEnableOption "Enables hyprland";
@ -35,219 +35,223 @@ let rootPath = ./.; in
screenshot.enable = lib.mkEnableOption "Enables Screenshotting"; screenshot.enable = lib.mkEnableOption "Enables Screenshotting";
}; };
imports = [ inputs.hyprland.homeManagerModules.default ]; config.warnings = lib.mkIf config.hypr.enable [''
hypr.* has been deprecated to allow the removal of hyprland from flake inputs.
''];
config = let # imports = [ inputs.hyprland.homeManagerModules.default ];
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 [ # config = let
"${pkgs.kdePackages.polkit-kde-agent-1}/bin/libexec/polkit-kde-authentication-agent-1" # lopts = lib.lists.optionals;
] ++ lopts config.hypr.background.enable [ # in {
"${pkgs.swww}/bin/swww-daemon" # nix.settings = {
"${pkgs.swww}/bin/swww img ${config.hypr.background.path}" # substituters = ["https://hyprland.cachix.org"];
] ++ lopts config.ags.enable [ # trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
"ags" # };
] ++ lopts config.beeper.enable [ # } // lib.mkIf config.hypr.enable {
"[workspace name:chat silent] Beeper" # wayland.windowManager.hyprland = let
]; # mod = config.hypr.mod_key;
# # p-s = let
env = with config.hypr; [ # # chw = config.hypr.workspace;
# "HYPR_MON_PRIMARY, ${workspace.primary-secondary.primary}" # # findDefaultWs = id: if (builtins.hasAttr id chw.workspaces)
# "HYPR_MON_SECONDARY, ${workspace.primary-secondary.secondary}" # # then (builtins.head (builtins.getAttr id chw.workspaces))
"HYPR_WORK_DB, ${config.xdg.cacheHome}/hypr/workspace.db" # # else "";
] ++ lopts cursor.enable [ # # in with config.hypr.workspace; lib.mkIf primary-secondary.enable {
"HYPRCURSOR_THEME,${cursor.theme}" # # primaryWs = findDefaultWs primary-secondary.primary;
"HYPRCURSOR_SIZE,${cursor.size}" # # secondaryWs = findDefaultWs primary-secondary.secondary;
] ++ lopts config.nvidia.enable [ # # };
"LIBVA_DRIVER_NAME,nvidia" # in {
"XDG_SESSION_TYPE,wayland" # enable = true;
"GBM_BACKEND,nvidia-drm" # settings = {
"__GLX_VENDOR_LIBRARY_NAME,nvidia" # monitor = config.hypr.monitor.details;
"WLR_RENDERER_ALLOW_SOFTWARE,1" # workspace = let
"WLR_DRM_DEVICES,/dev/dri/card1" # wsMonitor = monitor: wrksps: map (ws:
]; # if ws == (builtins.head wrksps)
# then "name:"+ws+", monitor:"+monitor+", persistent:true, default:true"
windowrulev2 = let # else "name:"+ws+", monitor:"+monitor+", persistent:true"
workspaceDefaults = wsname: applist: map ( # ) wrksps;
app: "workspace " + wsname + ", " + app # makeRules = wsAttr: builtins.concatLists (builtins.attrValues (
) applist; # builtins.mapAttrs wsMonitor wsAttr
allDefault = wsAttr: builtins.concatLists (builtins.attrValues ( # ));
builtins.mapAttrs workspaceDefaults wsAttr # in makeRules config.hypr.workspace.workspaces
)); # ++ [
in allDefault config.hypr.workspace.defaults # "w[t1], gapsout:0, gapsin:0"
++ [ # "w[tg1], gapsout:0, gapsin:0"
"bordersize 0, floating:0, onworkspace:w[t1]" # "f[1], gapsout:0, gapsin:0"
"rounding 0, floating:0, onworkspace:w[t1]" # ]
"bordersize 0, floating:0, onworkspace:w[tg1]" # ++ lopts config.hypr.workspace.scratchpad.enable [
"rounding 0, floating:0, onworkspace:w[tg1]" # "special:scratch, on-created-empty: [float; size 50% 50%; center] ${config.defaultApps.terminal}"
"bordersize 0, floating:0, onworkspace:f[1]" # ];
"rounding 0, floating:0, onworkspace:f[1]" # input = {
] # accel_profile = "flat";
++ lopts config.hypr.xwayland.videobridge.enable [ # sensitivity = config.hypr.mouse.sensitivity;
"opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$" # };
"noanim,class:^(xwaylandvideobridge)$" # general = {
"noinitialfocus,class:^(xwaylandvideobridge)$" # gaps_in = 3;
"maxsize 1 1,class:^(xwaylandvideobridge)$" # gaps_out = 3;
"noblur,class:^(xwaylandvideobridge)$" # border_size = 2;
] ++ map (id: "opacity 1 override, " + id) config.hypr.windows.opaque # "col.active_border" = "rgb(F5C2E7)";
++ [ # "col.inactive_border" = "rgb(1E1D2F)";
"opacity 0.94 fullscreen:0" # layout = "master";
"opacity 0.79 override, class:^(${config.defaultApps.terminal})$" # };
]; # decoration = {
# rounding = 2;
# 1, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh home # blur = {
# 2, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh web # enabled = true;
# 3, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh med # size = 12;
# 4, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh game # passes = 2;
# 5, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh etc # special = true;
# _, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh hell # };
# TAB, exec, $XDG_CONFIG_HOME/hypr/scripts/changesecondary.xsh # };
# # animation = [
# SHIFT, 1, movetoworkspacesilent, name:home # "windows, 1, 4, default, popin 50%"
# SHIFT, 2, movetoworkspacesilent, name:web # "windowsOut, 1, 4, default, popin 50%"
# SHIFT, 3, movetoworkspacesilent, name:med # "windowsMove, 1, 3, default"
# SHIFT, 4, movetoworkspacesilent, name:game # "border, 1, 3, default"
# SHIFT, TAB, movetoworkspacesilent, r-1 # "fade, 1, 3, default"
# "workspaces, 1, 3, default"
bind = let # ];
modPrefix = kb: if (lib.strings.hasPrefix "&" kb) # master = {
then ("${mod}" + kb) # mfact = config.hypr.master.mfact;
else ("${mod}, " + kb); # };
in map modPrefix ([ # misc = {
"Return, exec, ${config.defaultApps.terminal}" # focus_on_activate = true;
"&SHIFT, Q, exit" # };
"h, focusmonitor, l" #
"l, focusmonitor, r" # exec-once = lopts config.hypr.polkit.enable [
"j, cyclenext," # "${pkgs.kdePackages.polkit-kde-agent-1}/bin/libexec/polkit-kde-authentication-agent-1"
"k, cyclenext, prev" # ] ++ lopts config.hypr.background.enable [
"&SHIFT, h, movecurrentworkspacetomonitor, -1" # "${pkgs.swww}/bin/swww-daemon"
"&SHIFT, l, movecurrentworkspacetomonitor, +1" # "${pkgs.swww}/bin/swww img ${config.hypr.background.path}"
"&SHIFT, j, swapnext," # ] ++ lopts config.ags.enable [
"&SHIFT, k, swapnext, prev" # "ags"
"c, killactive" # ] ++ lopts config.beeper.enable [
"f, togglefloating" # "[workspace name:chat silent] Beeper"
"&SHIFT, f, fullscreen" # ];
] ++ (let #
workspaces = builtins.concatLists ( # env = with config.hypr; [
builtins.attrValues config.hypr.workspace.workspaces); # # "HYPR_MON_PRIMARY, ${workspace.primary-secondary.primary}"
wsBinds = with builtins; wrksps: depth: if depth > (length wrksps) # # "HYPR_MON_SECONDARY, ${workspace.primary-secondary.secondary}"
then [] # "HYPR_WORK_DB, ${config.xdg.cacheHome}/hypr/workspace.db"
else let ws = builtins.elemAt wrksps (depth -1); in [ # ] ++ lopts cursor.enable [
"${toString depth}, workspace, name:${ws}" # "HYPRCURSOR_THEME,${cursor.theme}"
"&SHIFT, ${toString depth}, movetoworkspacesilent, name:${ws}" # "HYPRCURSOR_SIZE,${cursor.size}"
] ++ wsBinds wrksps (depth + 1); # ] ++ lopts config.nvidia.enable [
in wsBinds workspaces 1) ++ lopts config.rofi.enable [ # "LIBVA_DRIVER_NAME,nvidia"
"&SHIFT, return, exec, ${pkgs.rofi}/bin/rofi -show run" # "XDG_SESSION_TYPE,wayland"
] ++ lopts config.hypr.screenshot.enable [ # "GBM_BACKEND,nvidia-drm"
"P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copy area" # "__GLX_VENDOR_LIBRARY_NAME,nvidia"
"&SHIFT, P, exec, ${pkgs.grimblast}/bin/grimblast --freeze copysave area" # "WLR_RENDERER_ALLOW_SOFTWARE,1"
] ++ lopts config.hypr.workspace.scratchpad.enable [ # "WLR_DRM_DEVICES,/dev/dri/card1"
"i, togglespecialworkspace, scratch" # ];
]); #
# windowrulev2 = let
bindm = map (kb: "${mod}, " + kb) [ # workspaceDefaults = wsname: applist: map (
"mouse:272, movewindow" # app: "workspace " + wsname + ", " + app
"mouse:273, movewindow" # ) applist;
]; # allDefault = wsAttr: builtins.concatLists (builtins.attrValues (
}; # builtins.mapAttrs workspaceDefaults wsAttr
}; # ));
# in allDefault config.hypr.workspace.defaults
home.packages = with pkgs; [ # ++ [
wlr-randr # Xrandr for wayland # "bordersize 0, floating:0, onworkspace:w[t1]"
wl-clipboard # Clipboard manager for wayland # "rounding 0, floating:0, onworkspace:w[t1]"
] ++ lopts config.hypr.xwayland.videobridge.enable [ # "bordersize 0, floating:0, onworkspace:w[tg1]"
kdePackages.xwaylandvideobridge # "rounding 0, floating:0, onworkspace:w[tg1]"
] ++ lopts config.hypr.cursor.enable [ # "bordersize 0, floating:0, onworkspace:f[1]"
hyprcursor # "rounding 0, floating:0, onworkspace:f[1]"
] ++ lopts config.hypr.screenshot.enable [ # ]
hyprpicker # Colorpicker, needed for screenshot tool # ++ lopts config.hypr.xwayland.videobridge.enable [
inputs.hyprland-contrib.packages.${pkgs.system}.grimblast # "opacity 0.0 override 0.0 override,class:^(xwaylandvideobridge)$"
]; # "noanim,class:^(xwaylandvideobridge)$"
# "noinitialfocus,class:^(xwaylandvideobridge)$"
xdg.configFile."hypr-scripts" = { # "maxsize 1 1,class:^(xwaylandvideobridge)$"
source = rootPath + "/scripts"; # "noblur,class:^(xwaylandvideobridge)$"
target = "hypr/scripts"; # ] ++ map (id: "opacity 1 override, " + id) config.hypr.windows.opaque
executable = true; # ++ [
}; # "opacity 0.94 fullscreen:0"
# "opacity 0.79 override, class:^(${config.defaultApps.terminal})$"
xdg.dataFile."hypr-icons" = lib.mkIf config.hypr.cursor.enable { # ];
source = rootPath + "/icons"; #
target = "icons/"; # # 1, exec, $XDG_CONFIG_HOME/hypr/scripts/changeprimary.xsh home
recursive = true; # # 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;
# };
# };
} }

View file

@ -33,7 +33,7 @@
relativenumber = true; relativenumber = true;
}; };
commands = { commands = {
dragon-out = ''%${pkgs.dragon-drop}/bin/dragon -a -x "$fx"''; dragon-out = ''%${pkgs.dragon-drop}/bin/dragon-drop -a -x "$fx"'';
trash = lib.mkIf config.trash.enable '' trash = lib.mkIf config.trash.enable ''
%${pkgs.trash-cli}/bin/trash "$fx" %${pkgs.trash-cli}/bin/trash "$fx"
''; '';

View file

@ -1,4 +1,4 @@
{ config, lib, usernameAtHostname, ... }: { config, lib, ... }:
{ {
options = { options = {
@ -9,17 +9,15 @@
browser = lib.mkOption { default = ""; }; browser = lib.mkOption { default = ""; };
}; };
}; };
config = let config = {
st = lib.strings;
in {
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
home.stateVersion = "23.05"; home.stateVersion = "23.05";
home = { home = {
username = builtins.elemAt (st.splitString "@" usernameAtHostname) 0; username = "pan";
homeDirectory = "/home/" + config.home.username; homeDirectory = "/home/pan";
packages = config.extraPkgs; packages = config.extraPkgs;
}; };

View file

@ -1,25 +1,30 @@
{ config, inputs, pkgs, lib, ... }: { config, lib, ... }:
{ {
options.ags = { options.ags = {
enable = lib.mkEnableOption "Enable ags"; enable = lib.mkEnableOption "Enable ags";
}; };
imports = [ inputs.ags.homeManagerModules.default ]; config.warnings = lib.mkIf config.ags.enable [''
ags.enable has been deprecated to allow the removal of ags from flake
inputs.
''];
config = lib.mkIf config.ags.enable { # imports = [ inputs.ags.homeManagerModules.default ];
home.packages = with pkgs; [
libnotify # Notifications through ags
];
programs.ags = {
enable = true;
configDir = ./config;
extraPackages = with pkgs; [ # config = lib.mkIf config.ags.enable {
gtksourceview # home.packages = with pkgs; [
webkitgtk # libnotify # Notifications through ags
accountsservice # ];
]; # programs.ags = {
}; # enable = true;
}; # configDir = ./config;
#
# extraPackages = with pkgs; [
# gtksourceview
# webkitgtk
# accountsservice
# ];
# };
# };
} }

View file

@ -20,8 +20,6 @@
steam.enable = true; steam.enable = true;
steam.gamemode = true; steam.gamemode = true;
aagl.enable = true;
aagl.honkai-rail = true;
input-remapper.enable = true; input-remapper.enable = true;
postgres.enable = true; postgres.enable = true;

View file

@ -1,4 +1,4 @@
{ config, inputs, lib, ... }: { config, lib, ... }:
{ {
options.aagl = { options.aagl = {
@ -12,16 +12,21 @@
"Enables honkai 3rd impact"; "Enables honkai 3rd impact";
}; };
imports = [ inputs.aagl.nixosModules.default ]; # imports = [ inputs.aagl.nixosModules.default ];
config = lib.mkIf config.aagl.enable { config.warnings = lib.mkIf (config.aagl.enable || config.aagl.honkai-rail ||
nix.settings = inputs.aagl.nixConfig; 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 = # config = lib.mkIf config.aagl.enable {
lib.mkIf config.aagl.honkai-rail true; # nix.settings = inputs.aagl.nixConfig;
programs.anime-game-launcher.enable = #
lib.mkIf config.aagl.genshin true; # programs.honkers-railway-launcher.enable =
programs.honkers-launcher.enable = # lib.mkIf config.aagl.honkai-rail true;
lib.mkIf config.aagl.honkai-3rd true; # programs.anime-game-launcher.enable =
}; # lib.mkIf config.aagl.genshin true;
# programs.honkers-launcher.enable =
# lib.mkIf config.aagl.honkai-3rd true;
# };
} }

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, hostname, usernameList, ... }: { config, pkgs, lib, ... }:
{ {
options.system = { options.system = {
@ -22,7 +22,6 @@
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
}) })
{ {
networking.hostName = hostname;
system.stateVersion = lib.mkDefault "23.05"; system.stateVersion = lib.mkDefault "23.05";
time.timeZone = config.system.timezone; time.timeZone = config.system.timezone;
@ -39,24 +38,24 @@
# XDG Compliance # XDG Compliance
nix.settings.use-xdg-base-directories = true; nix.settings.use-xdg-base-directories = true;
users = { # users = {
users = builtins.listToAttrs (map ( # users = builtins.listToAttrs (map (
user: { # user: {
name = user; # name = user;
value = { # value = {
name = user; # name = user;
isNormalUser = true; # isNormalUser = true;
extraGroups = [ "network" ]; # extraGroups = [ "network" ];
}; # };
} # }
) usernameList); # ) usernameList);
groups = { # groups = {
wheel = { # wheel = {
members = config.system.users.bigWheels; # members = config.system.users.bigWheels;
}; # };
network = { }; # network = { };
}; # };
}; # };
fonts = { fonts = {
enableDefaultPackages = true; enableDefaultPackages = true;

View file

@ -1,4 +1,4 @@
{ inputs, config, lib, ... }: { config, lib, ... }:
{ {
@ -6,18 +6,14 @@
enable = lib.mkEnableOption "Enables hyprland"; enable = lib.mkEnableOption "Enables hyprland";
}; };
imports = [ # imports = [
inputs.hyprland.nixosModules.default # inputs.hyprland.nixosModules.default
]; # ];
config = { config.warnings = lib.mkIf config.hyprland.enable [''
nix.settings = { hyprland.enable has been deprecated to allow the removal of hyprland from
substituters = [ "https://hyprland.cachix.org" ]; flake inputs.
trusted-public-keys = [ ''];
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
]; # config.programs.hyprland.enable = lib.mkIf config.hyprland.enable true;
experimental-features = [ "nix-command" "flakes" ];
};
programs.hyprland.enable = lib.mkIf config.hyprland.enable true;
};
} }