From 7f104aa6e200771a716ca76d53dc5f337c9bed8b Mon Sep 17 00:00:00 2001 From: Klemens Nanni Date: Thu, 30 May 2019 13:48:22 +0200 Subject: [PATCH] tmux module: Fix escaping in TMUX_TMPDIR 5404595b55eeefae69f2952a34dfc70e32523060 relocated code but kept one backslah too many, leading to $ tmux error creating /run/user/$(id -u)/tmux-1000 (No such file or directory) /run/user/$UID/ is created by pam_systemd(3) which also populates XD_RUNTIME_DIR with that value. Alternatively, TMUX_TMPDIR might simply default to XDG_RUNTIME_DIR without providing the same directory yet again as default string in parameter substitution, however such behaviour change is subject to another patch. In fact, with `security.polkit.enable = false` systemd_logind(8) fails to start and /run/user/$UID/ is never created for unprivileged users in proper login sessions; XDG_RUNTIME_DIR would consequently not be set either. Removing the fallback to /run/user/$UID/ would have caused TMUX_TMPDIR to be empty, which in turn would lead tmux(1) to use /tmp/. This effectively breaks the idea of isolated sockets entirely while hiding errors from the user. --- nixos/modules/programs/tmux.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/programs/tmux.nix b/nixos/modules/programs/tmux.nix index 3d5a37274ae2..ed077e3daa76 100644 --- a/nixos/modules/programs/tmux.nix +++ b/nixos/modules/programs/tmux.nix @@ -177,7 +177,7 @@ in { systemPackages = [ pkgs.tmux ]; variables = { - TMUX_TMPDIR = lib.optional cfg.secureSocket ''''${XDG_RUNTIME_DIR:-"/run/user/\$(id -u)"}''; + TMUX_TMPDIR = lib.optional cfg.secureSocket ''''${XDG_RUNTIME_DIR:-"/run/user/$(id -u)"}''; }; }; };