feat(maestro): default daemon TMUX_TMPDIR to $XDG_RUNTIME_DIR (NAP-234)
ci / rust (push) Failing after 2m13s
ci / rust (push) Failing after 2m13s
Plain `tmux ls` in the user's shell now sees maestro-managed sessions without the `TMUX_TMPDIR=/tmp` workaround, because most shells already set `TMUX_TMPDIR=$XDG_RUNTIME_DIR` and the daemon now matches. Precedence: env `MAESTRO_DAEMON_TMUX_TMPDIR` > `[daemon].tmux_tmpdir` > `dirs::runtime_dir()` > None (tmux's own `/tmp` default). Set `tmux_tmpdir = "/tmp"` in config.toml if the daemon must outlive the user's login without linger enabled. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -109,6 +109,23 @@ where you want browser access answer yes — both binaries end up in
|
||||
| `--web-exec-start <path>` | Override the web unit's `ExecStart` (default `~/.cargo/bin/maestro-web`). |
|
||||
| `-y`, `--yes` | Non-interactive: install binaries + drop systemd unit + reload + enable, but **don't** auto-run `configure` or auto-start the unit (those need real config). Also skips the web step unless an existing `maestro-web.service` is being refreshed. |
|
||||
|
||||
## Where tmux sockets land
|
||||
|
||||
`maestrod` defaults `TMUX_TMPDIR` to `$XDG_RUNTIME_DIR` (= `/run/user/$UID`)
|
||||
so a plain `tmux ls` in your shell — which typically uses the same env var
|
||||
— sees maestro-managed sessions. Override in
|
||||
`~/.config/maestro/config.toml`:
|
||||
|
||||
```toml
|
||||
[daemon]
|
||||
tmux_tmpdir = "/tmp"
|
||||
```
|
||||
|
||||
Pick `/tmp` if the daemon must outlive your login session and you can't run
|
||||
`loginctl enable-linger` (the runtime dir is wiped on logout, taking the
|
||||
tmux sockets with it). The env var `MAESTRO_DAEMON_TMUX_TMPDIR` takes
|
||||
precedence over the file.
|
||||
|
||||
## What the systemd unit looks like
|
||||
|
||||
The wizard writes a *user* unit (`systemctl --user`), since `maestrod` runs
|
||||
|
||||
Reference in New Issue
Block a user