{ config, lib, pkgs, flakeRoot, ... }: let hyprConf = flakeRoot + "/assets/conf/desktop/hypr/hyprland.conf"; bindingsConf = flakeRoot + "/assets/conf/desktop/hypr/bindings.conf"; in { wayland.windowManager.hyprland = { enable = true; # Load base config + bindings from repo files extraConfig = (builtins.readFile hyprConf) + "\n\n# --- Repo keybindings ---\n" + (builtins.readFile bindingsConf) + "\n"; settings = { windowrule = [ "match:class nm-connection-editor, float 1, center 1, size 900 700" ]; }; }; xdg.configFile."hypr/scripts/lid-lock.sh" = { source = lib.mkForce flakeRoot + "/assets/conf/desktop/hypr/scripts/lid-lock.sh"; backup = lib.mkForce false; 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" ]; }; }; }