{config, lib, ... }: with lib; let cfg = config.modules.wms.wayland; hyprland = config.modules.wms.wayland.hyprland; in { options.modules.wms.wayland.enable = mkEnableOption "wayland"; options.modules.wms.wayland.hyprland.enable = mkEnableOption "hyprland"; config = mkIf cfg.enable { environment = { variables = { NIXOS_OZONE_WL = "1"; __GL_GSYNC_ALLOWED = "0"; __GL_VRR_ALLOWED = "0"; _JAVA_AWT_WM_NONEREPARENTING = "1"; SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh"; DISABLE_QT5_COMPAT = "0"; GDK_BACKEND = "wayland,x11"; ANKI_WAYLAND = "1"; DIRENV_LOG_FORMAT = ""; WLR_DRM_NO_ATOMIC = "1"; QT_AUTO_SCREEN_SCALE_FACTOR = "1"; QT_QPA_PLATFORM = "wayland;xcb"; DISABLE_QT_COMPAT = "0"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; MOZ_ENABLE_WAYLAND = "1"; WLR_BACKEND = "vulkan"; WLR_RENDERER = "vulkan"; XDG_SESSION_TYPE = "wayland"; SDL_VIDEODRIVER = "wayland"; CLUTTER_BACKEND = "wayland"; WLR_DRM_DEVICES = "/dev/dri/card1:/dev/dri/card0"; # Session variables for Hyprland (mkIf hyprland.enable LIBVA_DRIVER_NAME = "nvidia"); GTK_USE_PORTAL = "1"; NIXOS_XDG_OPEN_USE_PORTAL = "1"; XDG_CURRENT_DESKTOP = "Hyprland"; XDG_SESSION_TYPE = "wayland"; XDG_SESSION_DESKTOP = "Hyprland"; SDL_VIDEODRIVER = "wayland"; CLUTTER_BACKEND = "wayland"; GDK_BACKEND = "wayland"; WLR_RENDERER_ALLOW_SOFTWARE = "1"; QT_QPA_PLATFORM = "wayland"; # Needed anymore? LIBSEAT_BACKEND = "logind"; # WLR_NO_HARDWARE_CURSORS = "1"; NIXOS_OZONE_WL = "1"; }; } }