From 210aa544fc3a9e1e9e808368ce86a18db2497d61 Mon Sep 17 00:00:00 2001 From: Ryan Yin Date: Sun, 24 Dec 2023 23:47:48 +0800 Subject: [PATCH] fix: user environment variables do not take effects --- home/linux/base/shell.nix | 6 ++---- .../linux/desktop/hyprland/options/nvidia.nix | 14 ++++++------- .../desktop/hyprland/values/hyprland.nix | 17 +++++++-------- home/linux/desktop/i3/options/nvidia.nix | 21 ++++++++++++------- 4 files changed, 31 insertions(+), 27 deletions(-) diff --git a/home/linux/base/shell.nix b/home/linux/base/shell.nix index 04bd35cb..a530468c 100644 --- a/home/linux/base/shell.nix +++ b/home/linux/base/shell.nix @@ -7,8 +7,8 @@ in rec { home.homeDirectory = "/home/${username}"; - # add environment variables - systemd.user.sessionVariables = { + # environment variables that always set at login + home.sessionVariables = { # clean up ~ LESSHISTFILE = cache + "/less/history"; LESSKEY = c + "/less/lesskey"; @@ -25,6 +25,4 @@ in rec { # enable scrolling in git diff DELTA_PAGER = "less -R"; }; - - home.sessionVariables = systemd.user.sessionVariables; } diff --git a/home/linux/desktop/hyprland/options/nvidia.nix b/home/linux/desktop/hyprland/options/nvidia.nix index 2009c851..7d604b60 100644 --- a/home/linux/desktop/hyprland/options/nvidia.nix +++ b/home/linux/desktop/hyprland/options/nvidia.nix @@ -11,14 +11,14 @@ in { }; config = mkIf (cfg.enable && cfg.nvidia) { - systemd.user.sessionVariables = { + wayland.windowManager.hyprland.settings.env = [ # for hyprland with nvidia gpu, ref https://wiki.hyprland.org/Nvidia/ - "LIBVA_DRIVER_NAME" = "nvidia"; - "XDG_SESSION_TYPE" = "wayland"; - "GBM_BACKEND" = "nvidia-drm"; - "__GLX_VENDOR_LIBRARY_NAME" = "nvidia"; + "LIBVA_DRIVER_NAME,nvidia" + "XDG_SESSION_TYPE,wayland" + "GBM_BACKEND,nvidia-drm" + "__GLX_VENDOR_LIBRARY_NAME,nvidia" # fix https://github.com/hyprwm/Hyprland/issues/1520 - "WLR_NO_HARDWARE_CURSORS" = "1"; - }; + "WLR_NO_HARDWARE_CURSORS,1" + ]; }; } diff --git a/home/linux/desktop/hyprland/values/hyprland.nix b/home/linux/desktop/hyprland/values/hyprland.nix index 9ea80c49..93abc80a 100644 --- a/home/linux/desktop/hyprland/values/hyprland.nix +++ b/home/linux/desktop/hyprland/values/hyprland.nix @@ -13,6 +13,14 @@ enable = true; settings = { source = "${nur-ryan4yin.packages.${pkgs.system}.catppuccin-hyprland}/themes/mocha.conf"; + env = [ + "NIXOS_OZONE_WL,1" # for any ozone-based browser & electron apps to run on wayland + "MOZ_ENABLE_WAYLAND,1" # for firefox to run on wayland + "MOZ_WEBRENDER,1" + # misc + "_JAVA_AWT_WM_NONREPARENTING,1" + "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" + ]; }; package = hyprland.packages.${pkgs.system}.hyprland; extraConfig = builtins.readFile ../conf/hyprland.conf; @@ -55,13 +63,4 @@ # allow fontconfig to discover fonts and configurations installed through home.packages fonts.fontconfig.enable = true; - - systemd.user.sessionVariables = { - NIXOS_OZONE_WL = "1"; # for any ozone-based browser & electron apps to run on wayland - MOZ_ENABLE_WAYLAND = "1"; # for firefox to run on wayland - MOZ_WEBRENDER = "1"; - # misc - _JAVA_AWT_WM_NONREPARENTING = "1"; - QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; - }; } diff --git a/home/linux/desktop/i3/options/nvidia.nix b/home/linux/desktop/i3/options/nvidia.nix index b10d8e81..d686d317 100644 --- a/home/linux/desktop/i3/options/nvidia.nix +++ b/home/linux/desktop/i3/options/nvidia.nix @@ -10,11 +10,18 @@ in { nvidia = mkEnableOption "whether nvidia GPU is used"; }; - config = mkIf (cfg.enable && cfg.nvidia) { - systemd.user.sessionVariables = { - "LIBVA_DRIVER_NAME" = "nvidia"; - "GBM_BACKEND" = "nvidia-drm"; - "__GLX_VENDOR_LIBRARY_NAME" = "nvidia"; - }; - }; + config = mkIf (cfg.enable && cfg.nvidia) ( + let + env = { + "LIBVA_DRIVER_NAME" = "nvidia"; + "GBM_BACKEND" = "nvidia-drm"; + "__GLX_VENDOR_LIBRARY_NAME" = "nvidia"; + }; + in { + # environment set for systemd's user session + systemd.user.sessionVariables = env; + # environment set at user login + home.sessionVariables = env; + } + ); }