aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-23 16:17:15 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-23 16:17:15 +0200
commitf00bfd93a416f7c3ca2dcbb0c85b61186a6d6f42 (patch)
tree3cc773d009d1ce06bf891457d5b7811e0de05c02 /modules
parentmodules/river: Keep environment sourcing actually on one line (diff)
downloadnixos-config-f00bfd93a416f7c3ca2dcbb0c85b61186a6d6f42.zip
modules/river: Update the environments 5 variables at a timeHEADprime
Otherwise we might run into the maximal argv length limit.
Diffstat (limited to 'modules')
-rw-r--r--modules/by-name/ri/river/module.nix39
1 files changed, 33 insertions, 6 deletions
diff --git a/modules/by-name/ri/river/module.nix b/modules/by-name/ri/river/module.nix
index 1fe2104e..7eb30014 100644
--- a/modules/by-name/ri/river/module.nix
+++ b/modules/by-name/ri/river/module.nix
@@ -241,18 +241,45 @@ in {
'';
sessionVars =
- builtins.concatStringsSep " " (builtins.attrNames
- config.home-manager.users.soispha.home.sessionVariables);
+ (builtins.attrNames config.environment.sessionVariables)
+ ++ (builtins.attrNames config.home-manager.users.soispha.home.sessionVariables)
+ ++ [
+ "WAYLAND_DISPLAY"
+ "DISPLAY"
+ "XDG_RUNTIME_DIR"
+ ];
+
+ part = acc: vars: let
+ firstTen = lib.lists.take 5 vars;
+ in
+ if firstTen == []
+ then acc
+ else part (acc ++ [firstTen]) (lib.lists.removePrefix firstTen vars);
+
+ partedSessionVars = part [] sessionVars;
+
+ mkEnvSet = prefix: vars: let
+ stringVars = builtins.concatStringsSep " " vars;
+ in ''err_fail ${riverctl} spawn "${prefix} ${stringVars}"'';
+
+ dbusEnvs =
+ builtins.map
+ (mkEnvSet "${lib.getExe' pkgs.dbus "dbus-update-activation-environment"} --verbose --systemd")
+ partedSessionVars;
+ systemdUserEnvs =
+ builtins.map
+ (mkEnvSet "systemctl --user --verbose import-environment")
+ partedSessionVars;
in
builtins.readFile ./init_base.sh
+
# bash
mkHeading "Environment variables" ''
export XDG_CURRENT_DESKTOP=river DESKTOP_SESSION=river;
-
- err_fail ${riverctl} spawn "${lib.getExe' pkgs.dbus "dbus-update-activation-environment"} --verbose --systemd SEATD_SOCK DISPLAY WAYLAND_DISPLAY DESKTOP_SESSION XDG_CURRENT_DESKTOP ${sessionVars}"
- err_fail ${riverctl} spawn "systemctl --user import-environment SEATD_SOCK DISPLAY WAYLAND_DISPLAY DESKTOP_SESSION XDG_CURRENT_DESKTOP ${sessionVars}"
-
+ ''
+ + mkHeading "Informing dbus about changed env-vars" (builtins.concatStringsSep "\n" dbusEnvs)
+ + mkHeading "Informing systemd user about changed env-vars" (builtins.concatStringsSep "\n" systemdUserEnvs)
+ + mkHeading "Starting graphical-session-target" ''
err_fail systemctl --user start nixos-fake-graphical-session.target
''
+ mkHeading "Key Mappings" keymappings