{ pkgs, ... }: { nix.settings = { substituters = [ "https://hyprland.cachix.org" ]; trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ]; }; services.dbus.enable = true; security.polkit.enable = true; services.flatpak.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; wireplumber.enable = true; }; services.gvfs.enable = true; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-hyprland xdg-desktop-portal-gtk ]; config.common.default = [ "hyprland" "gtk" ]; }; # Hyprland alleen voor screensharing / remote desktop config.hyprland = { "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ]; }; environment.systemPackages = with pkgs; [ walker uwsm hyprland-qtutils hyprpolkitagent grimblast ]; programs = { uwsm.enable = true; uwsm.waylandCompositors.hyprland = { prettyName = "Hyprland"; comment = "Hyprland compositor managed by UWSM"; binPath = "/run/current-system/sw/bin/Hyprland"; }; hyprland = { withUWSM = true; enable = true; xwayland.enable = true; }; }; environment.sessionVariables = { XDG_SESSION_TYPE = "wayland"; XDG_CURRENT_DESKTOP = "Hyprland"; XDG_SESSION_DESKTOP = "Hyprland"; NIXOS_OZONE_WL = "1"; XCURSOR_SIZE = "24"; }; security.pam.services.hyprlock = { }; # Optional; GNOME-specific (keep only if you really use gnome-keyring integration) security.pam.services.gdm.enableGnomeKeyring = true; }