From d18a587b780447056ce9d316d68f5d418582dab3 Mon Sep 17 00:00:00 2001 From: John Titor <50095635+JohnRTitor@users.noreply.github.com> Date: Sat, 27 Apr 2024 11:44:44 +0530 Subject: [PATCH] nixos/hyprland: Set environment variables for Hyprland to work better XDG vars set to Hyprland GTK and QT backend set to wayland (preferred), with x11 as fallback Java AWT fix for tiling window managers --- nixos/modules/programs/wayland/hyprland.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/nixos/modules/programs/wayland/hyprland.nix b/nixos/modules/programs/wayland/hyprland.nix index 5891ff25e437..e648eaa1b68e 100644 --- a/nixos/modules/programs/wayland/hyprland.nix +++ b/nixos/modules/programs/wayland/hyprland.nix @@ -42,6 +42,15 @@ in xwayland.enable = mkEnableOption ("XWayland") // { default = true; }; + envVars.enable = mkEnableOption null // { + default = true; + example = false; + description = '' + Set environment variables for Hyprland to work properly. + Enabled by default. + ''; + }; + systemd.setPath.enable = mkEnableOption null // { default = true; example = false; @@ -74,6 +83,15 @@ in configPackages = mkDefault [ cfg.finalPackage ]; }; + environment.sessionVariables = mkIf cfg.envVars.enable { + XDG_CURRENT_DESKTOP = "Hyprland"; + XDG_SESSION_DESKTOP = "Hyprland"; + XDG_SESSION_TYPE = "wayland"; + GDK_BACKEND = "wayland,x11"; + QT_QPA_PLATFORM = "wayland;xcb"; + _JAVA_AWT_WM_NONREPARENTING = "1"; # Fix for Java applications on tiling window managers + }; + systemd = mkIf cfg.systemd.setPath.enable { user.extraConfig = '' DefaultEnvironment="PATH=$PATH:/run/current-system/sw/bin:/etc/profiles/per-user/%u/bin:/run/wrappers/bin"