Files
cnix/modules/nixos/programs/hyprland/default.nix
2025-08-29 15:25:40 +02:00

68 lines
1.3 KiB
Nix

{
config,
lib,
inputs,
pkgs,
...
}:
let
inherit (lib)
mkIf
mkEnableOption
mkOption
mkDefault
;
cfg = config.nixos.programs.hyprland;
in
{
imports = [
inputs.hyprland.nixosModules.default
./appearance.nix
./inputs.nix
./keybinds.nix
./layout.nix
./startup.nix
];
options = {
nixos.programs.hyprland = {
enable = mkEnableOption "Enable Hyprland";
withUWSM = mkOption {
type = lib.types.bool;
default = false;
description = "Use UWSM to handle hyprland session";
};
};
};
config = mkIf cfg.enable {
nixos.programs.hyprland = {
appearance.enable = mkDefault true;
inputs.enable = mkDefault true;
keybinds.enable = mkDefault true;
rules.enable = mkDefault true;
startup.enable = mkDefault true;
};
programs = {
hyprland = {
enable = true;
package = pkgs.hyprland;
withUWSM = cfg.withUWSM;
};
uwsm = mkIf cfg.withUWSM {
enable = true;
waylandCompositors = {
hyprland = {
prettyName = "Hyprland";
comment = "Hyprland compositor managed by UWSM";
binPath = "/run/current-system/sw/bin/Hyprland";
};
};
};
};
environment.variables.NIXOS_OZONE_WL = "1";
};
}