Hyprland Leaf

cells/desktop/hyprland.nix is the central Wayland compositor leaf for the desktop branch.

Up: desktop leaves

Down: theme application | environment leaf

What this leaf does

On the NixOS side, it enables Hyprland, adds related packages, configures lock-screen PAM support, enables desktop portals, enables polkit, and enables dconf.

programs.hyprland.enable = true;
 
xdg.portal = {
  enable = true;
  extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};

On the Home Manager side, it enables Hyprland and builds extraConfig from theme colors plus checked-in config fragments.

themeConf = lib.concatStringsSep "\n" (
  lib.mapAttrsToList
    (name: hex: "$" + name + " = rgb(" + hex + ")")
    config.my.theme.colors
);

Why it is split across NixOS and Home Manager

The compositor must be available system-wide, but user keybinds, monitor fragments, wallpaper scripts, and lock-screen config belong in the user profile. This is a good example of why branches carry both nixosModules and hmModules.