about summary refs log tree commit diff
path: root/nixos/modules/programs/wayland/hyprland.nix
diff options
context:
space:
mode:
authorJohn Titor <50095635+JohnRTitor@users.noreply.github.com>2024-04-27 11:44:44 +0530
committerJohn Titor <50095635+JohnRTitor@users.noreply.github.com>2024-04-27 11:44:44 +0530
commitd18a587b780447056ce9d316d68f5d418582dab3 (patch)
treec2a6de72b2fc11a53861fe4ab69ba17929bf005d /nixos/modules/programs/wayland/hyprland.nix
parentbf93cd2c566a29f96dd690d9fd0079caa10b925a (diff)
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
Diffstat (limited to 'nixos/modules/programs/wayland/hyprland.nix')
-rw-r--r--nixos/modules/programs/wayland/hyprland.nix18
1 files changed, 18 insertions, 0 deletions
diff --git a/nixos/modules/programs/wayland/hyprland.nix b/nixos/modules/programs/wayland/hyprland.nix
index 5891ff25e4375..e648eaa1b68e4 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"