{ config, lib, pkgs, flakeRoot, ... }: let hyprConf = flakeRoot.outPath + "/assets/conf/desktop/hypr/hyprland.conf"; bindingsConf = flakeRoot.outPath + "/assets/conf/desktop/hypr/bindings.conf"; lidLockScript = flakeRoot.outPath + "/assets/conf/desktop/hypr/scripts/lid-lock.sh"; in { wayland.windowManager.hyprland = { enable = true; # Load base config + bindings from repo files extraConfig = '' ${builtins.readFile hyprConf} # --- Repo keybindings --- ${builtins.readFile bindingsConf} ''; settings = { windowrule = [ "match:class nm-connection-editor, float 1, center 1, size 900 700" ]; }; }; # Gebruik home.file voor echte bestanden (geen symlinks) home.file.".config/hypr/scripts/lid-lock.sh" = { source = lidLockScript; executable = true; }; xdg.portal = { enable = true; extraPortals = with pkgs; [ xdg-desktop-portal-gtk xdg-desktop-portal-hyprland ]; # GTK als algemene backend (OpenURI is daar betrouwbaar) config.common.default = [ "gtk" ]; # Hyprland alleen voor screensharing / remote desktop config.hyprland = { "org.freedesktop.impl.portal.Screencast" = [ "hyprland" ]; "org.freedesktop.impl.portal.RemoteDesktop" = [ "hyprland" ]; }; }; }