Files
nixos/modules/features/hypr/default.nix

72 lines
1.5 KiB
Nix

{
moduleWithSystem,
self,
inputs,
...
}: {
flake.nixosModules.hyprland = moduleWithSystem ({
self',
pkgs,
...
}: let
modules = with self.nixosModules; [
audio
systemTheme
];
in {
imports = modules;
programs.hyprland = {
enable = true;
package = self'.packages.hyprland;
};
services.xserver.enable = true;
security.polkit.enable = true;
environment.systemPackages = with pkgs; [
hyprlock
gsettings-desktop-schemas
];
});
perSystem = {
pkgs,
self',
system,
inputs',
...
}: {
packages = {
hyprland = inputs'.hyprland.packages.default.override {
runtimePackages =
inputs.hyprland.lib.defaultRuntimePkgs.${system}
// {
wpaperd = self'.packages.wpaperd;
kitty = self'.packages.kitty;
gotify-desktop = self'.packages.gotify-desktop;
otter-launcher = self'.packages.otter-launcher;
};
};
wpaperd = let
config-file = builtins.toFile "config.toml" ''
[any]
path = "${./wallpapers}"
[HDMI-A-1]
path = "${./wallpapers/topo1.png}"
[DP-1]
path = "${./wallpapers/topo2.png}"
[DP-2]
path = "${./wallpapers/topo3.png}"
'';
in
inputs.wrappers.lib.wrapPackage ({...}: {
inherit pkgs;
package = pkgs.wpaperd;
flags = {
"--config" = config-file;
};
});
};
};
}