Compare commits

..

No commits in common. "d4e12d46b30626118ff2b1bf5f2b2e89c6b9316e" and "5bddc3384b68e51ec27eb74d1cf63f582053f38a" have entirely different histories.

17 changed files with 1068 additions and 446 deletions

1
.gitignore vendored
View file

@ -1 +0,0 @@
result

777
flake.lock generated
View file

@ -1,50 +1,140 @@
{ {
"nodes": { "nodes": {
"easy-hosts": { "aagl": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
},
"locked": { "locked": {
"lastModified": 1755470564, "lastModified": 1762188647,
"narHash": "sha256-KB1ZryVDoQcbIsItOf4WtxkHhh3ppj+XwMpSnt/2QHc=", "narHash": "sha256-OAXK4p7WIYUcp8xx9m0RZUpV6XUDEhkoM4efI8dzPiU=",
"owner": "tgirlcloud", "owner": "ezKEa",
"repo": "easy-hosts", "repo": "aagl-gtk-on-nix",
"rev": "d0422bc7b3db26268982aa15d07e60370e76ee1d", "rev": "1172be1377bc65581004f4d5927b58c5c7d96639",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tgirlcloud", "owner": "ezKEa",
"repo": "easy-hosts", "repo": "aagl-gtk-on-nix",
"type": "github" "type": "github"
} }
}, },
"flake-parts": { "ags": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "astal": "astal",
"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": 1762980239, "lastModified": 1762012522,
"narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", "narHash": "sha256-ncEN4OVFM5M9VFc4oR3gOI5K8r99GcYxtU+Cf4Z8pbs=",
"owner": "hercules-ci", "owner": "aylur",
"repo": "flake-parts", "repo": "astal",
"rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", "rev": "671d4229c798834190a50fb8b8d8addd19b529e9",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hercules-ci", "owner": "aylur",
"repo": "flake-parts", "repo": "astal",
"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" "systems": "systems_2"
}, },
"locked": { "locked": {
"lastModified": 1731533236, "lastModified": 1726560853,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
"owner": "numtide", "owner": "numtide",
"repo": "flake-utils", "repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -68,18 +158,38 @@
"type": "github" "type": "github"
} }
}, },
"home-manager": { "gitignore": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1763416652, "lastModified": 1709087332,
"narHash": "sha256-8EBEEvtzQ11LCxpQHMNEBQAGtQiCu/pqP9zSovDSbNM=", "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"
},
"locked": {
"lastModified": 1762351818,
"narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "ea164b7c9ccdc2321379c2ff78fd4317b4c41312", "rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -88,60 +198,331 @@
"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": 1763570812, "lastModified": 1729298361,
"narHash": "sha256-A42G8ulTZ1MFCR0VsLF21CoKi0XKGUYwtVBHGm5mFgQ=", "narHash": "sha256-hiGtfzxFkDc9TSYsb96Whg0vnqBVV7CUxyscZNhed0U=",
"rev": "f3b2f3496bd6d346cba475d0ba152a9d3a83dec7", "rev": "ad9d06f7838a25beec425ff406fe68721fef73be",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f3b2f3496bd6d346cba475d0ba152a9d3a83dec7.tar.gz" "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/ad9d06f7838a25beec425ff406fe68721fef73be.tar.gz?rev=ad9d06f7838a25beec425ff406fe68721fef73be"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" "url": "https://git.lix.systems/lix-project/lix/archive/2.91.1.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",
"lix" "nixpkgs": "nixpkgs_7"
],
"nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1763435414, "lastModified": 1732605668,
"narHash": "sha256-i2467FddWfd19q5Qoj+1/BAeg6LZmM5m4mYGRSQn/as=", "narHash": "sha256-DN5/166jhiiAW0Uw6nueXaGTueVxhfZISAkoxasmz/g=",
"rev": "192c92b603731fbc1bade6c1b18c8d8a0086f703", "rev": "f19bd752910bbe3a861c9cad269bd078689d50fe",
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/192c92b603731fbc1bade6c1b18c8d8a0086f703.tar.gz" "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/f19bd752910bbe3a861c9cad269bd078689d50fe.tar.gz"
}, },
"original": { "original": {
"type": "tarball", "type": "tarball",
"url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz" "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz"
} }
}, },
"niri": { "niri": {
"inputs": { "inputs": {
"niri-stable": "niri-stable", "niri-stable": "niri-stable",
"niri-unstable": "niri-unstable", "niri-unstable": "niri-unstable",
"nixpkgs": [ "nixpkgs": "nixpkgs_8",
"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": 1763538184, "lastModified": 1762341801,
"narHash": "sha256-6umNY06L6ZUjinthjVZIwyWyAjxOXSPhXfY0U1CVTWw=", "narHash": "sha256-zx7UxreMz646qikxw+So7eGRQeWccKFZxuMvJowJuFs=",
"owner": "sodiboo", "owner": "sodiboo",
"repo": "niri-flake", "repo": "niri-flake",
"rev": "85a16f400641eed912431efcec16f12e2100d46a", "rev": "20aadad64b8b8cbebc71371713c141d91d7f8172",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -170,11 +551,11 @@
"niri-unstable": { "niri-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1763531615, "lastModified": 1762146685,
"narHash": "sha256-cMi8tz+0+gWtlYqVnyMv7phOeQ0/4WmzZ/lxCyraUVw=", "narHash": "sha256-anRlNG6t7esBbF1+ALDeathVBSclA0PEL52Vo0WnN5g=",
"owner": "YaLTeR", "owner": "YaLTeR",
"repo": "niri", "repo": "niri",
"rev": "c722634c269ae97a5ea185691bcd0b8c73a600e5", "rev": "a2ca2b3c866bc781b12c334a9f949b3db6d7c943",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -185,24 +566,27 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1763464769, "lastModified": 1761672384,
"narHash": "sha256-mU85VDFRIgKGq1EhT71bLjhvjJ5yuMEe0Ip1kwCbR80=", "narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
"rev": "6f374686605df381de8541c072038472a5ea2e2d", "owner": "nixos",
"type": "tarball", "repo": "nixpkgs",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre898015.6f374686605d/nixexprs.tar.xz" "rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
"type": "github"
}, },
"original": { "original": {
"type": "tarball", "owner": "nixos",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" "ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": { "locked": {
"lastModified": 1763334038, "lastModified": 1762233356,
"narHash": "sha256-LBVOyaH6NFzQ3X/c6vfMZ9k4SV2ofhpxeL9YnhHNJQQ=", "narHash": "sha256-cGS3lLTYusbEP/IJIWGgnkzIl+FA5xDvtiHyjalGr4k=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "4c8cdd5b1a630e8f72c9dd9bf582b1afb3127d2c", "rev": "ca534a76c4afb2bdc07b681dbc11b453bab21af8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -212,30 +596,213 @@
"type": "github" "type": "github"
} }
}, },
"root": { "nixpkgs_10": {
"inputs": { "locked": {
"easy-hosts": "easy-hosts", "lastModified": 1760596604,
"flake-parts": "flake-parts", "narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=",
"home-manager": "home-manager", "owner": "NixOS",
"lix": "lix", "repo": "nixpkgs",
"lix-module": "lix-module", "rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43",
"niri": "niri", "type": "github"
"nixpkgs": "nixpkgs", },
"sops-nix": "sops-nix" "original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"sops-nix": { "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": { "inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"hyprland",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1763509310, "lastModified": 1760663237,
"narHash": "sha256-s2WzTAD3vJtPACBCZXezNUMTG/wC6SFsU9DxazB9wDI=", "narHash": "sha256-BflA6U4AM1bzuRMR8QqzPXqh8sWVCNDzOdsxXEguJIc=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "ca5b894d3e3e151ffc1db040b6ce4dcc75d31c37",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"root": {
"inputs": {
"aagl": "aagl",
"ags": "ags",
"home-manager": "home-manager",
"hyprland": "hyprland",
"hyprland-contrib": "hyprland-contrib",
"lix-module": "lix-module",
"niri": "niri",
"nixpkgs": "nixpkgs_9",
"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": {
"inputs": {
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1760998189,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "3ee33c0ed7c5aa61b4e10484d2ebdbdc98afb03e", "rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -245,6 +812,21 @@
} }
}, },
"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=",
@ -259,6 +841,47 @@
"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": {
@ -279,11 +902,11 @@
"xwayland-satellite-unstable": { "xwayland-satellite-unstable": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1762747449, "lastModified": 1762302024,
"narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=", "narHash": "sha256-F+4W0J5r7fbEl+VmATFqAA5+4dFSNAmLJB7tAtrTIkY=",
"owner": "Supreeeme", "owner": "Supreeeme",
"repo": "xwayland-satellite", "repo": "xwayland-satellite",
"rev": "6338574bc5c036487486acde264f38f39ea15fad", "rev": "53b6072bd995b5b4017999cf247f9eb6660c72a2",
"type": "github" "type": "github"
}, },
"original": { "original": {

161
flake.nix
View file

@ -1,89 +1,94 @@
{ {
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { inputs = {
imports = with inputs; [ nixpkgs.url = "nixpkgs/nixos-unstable";
easy-hosts.flakeModule
home-manager.flakeModules.home-manager
];
systems = [ "x86_64-linux" ]; home-manager.url = "github:nix-community/home-manager";
easy-hosts = {
autoConstruct = true;
path = ./hosts;
onlySystem = "x86_64-nixos";
shared = { lix-module.url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-2.tar.gz";
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";
};
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;
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 = [ modules = [
inputs.lix-module.nixosModules.default ./hmModules
./nixosModules userpath
]; ];
}; };
};
flake = { hostConfig = hostname: hostpath: nixpkgs.lib.nixosSystem {
homeConfigurations = let specialArgs = let
userConfig = system: extraModules: hostFilteredUsers = as.filterAttrs (
inputs.home-manager.lib.homeManagerConfiguration { name: value: let
extraSpecialArgs = { inherit inputs; }; userHostname = builtins.elemAt (st.splitString "@" name) 1;
pkgs = inputs.nixpkgs.legacyPackages.${system}; in userHostname == hostname
modules = [ ./hmModules ] ++ extraModules; ) users;
hostUsers = as.mapAttrsToList (
name: value: builtins.elemAt (st.splitString "@" name) 0
) hostFilteredUsers;
in {
inherit inputs;
inherit hostname;
"usernameList" = hostUsers;
};
modules = [
./nixosModules
hostpath
];
}; };
in { in {
"pan@juri" = userConfig "x86_64-linux" [ ./users/juri ]; nixosConfigurations = builtins.mapAttrs (name: path: hostConfig name path) hosts;
"pan@jibril" = userConfig "x86_64-linux" [ ./users/jibril ]; homeConfigurations = builtins.mapAttrs (name: path: userConfig name path) users;
"pan@onizuka" = userConfig "x86_64-linux" [ ./users/onizuka ];
};
};
};
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";
home-manager = {
type = "github";
owner = "nix-community";
repo = "home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
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";
};
}; };
} }

View file

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

View file

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

View file

@ -20,6 +20,8 @@
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, lib, ... }: { config, inputs, lib, ... }:
{ {
options.aagl = { options.aagl = {
@ -12,21 +12,16 @@
"Enables honkai 3rd impact"; "Enables honkai 3rd impact";
}; };
# imports = [ inputs.aagl.nixosModules.default ]; imports = [ inputs.aagl.nixosModules.default ];
config.warnings = lib.mkIf (config.aagl.enable || config.aagl.honkai-rail || config = lib.mkIf config.aagl.enable {
config.aagl.genshin || config.aagl.honkai-3rd) ['' nix.settings = inputs.aagl.nixConfig;
aagl.* has been deprecated to allow the removal of aagl from flake inputs.
''];
# config = lib.mkIf config.aagl.enable { programs.honkers-railway-launcher.enable =
# nix.settings = inputs.aagl.nixConfig; lib.mkIf config.aagl.honkai-rail true;
# programs.anime-game-launcher.enable =
# programs.honkers-railway-launcher.enable = lib.mkIf config.aagl.genshin true;
# lib.mkIf config.aagl.honkai-rail true; programs.honkers-launcher.enable =
# programs.anime-game-launcher.enable = lib.mkIf config.aagl.honkai-3rd true;
# 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, ... }: { config, pkgs, lib, hostname, usernameList, ... }:
{ {
options.system = { options.system = {
@ -22,6 +22,7 @@
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;
@ -38,24 +39,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 @@
{ config, lib, ... }: { inputs, config, lib, ... }:
{ {
@ -6,14 +6,18 @@
enable = lib.mkEnableOption "Enables hyprland"; enable = lib.mkEnableOption "Enables hyprland";
}; };
# imports = [ imports = [
# inputs.hyprland.nixosModules.default inputs.hyprland.nixosModules.default
# ]; ];
config.warnings = lib.mkIf config.hyprland.enable ['' config = {
hyprland.enable has been deprecated to allow the removal of hyprland from nix.settings = {
flake inputs. substituters = [ "https://hyprland.cachix.org" ];
'']; 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;
};
} }