mirror of
https://github.com/nmasur/dotfiles
synced 2026-08-07 10:28:34 +00:00
fix: cap zellij session name length to avoid socket path overflow crash
This commit is contained in:
@@ -1,5 +1,18 @@
|
||||
# Changelog
|
||||
|
||||
## 2026-08-03
|
||||
|
||||
- Fixed the `zellij-session` fish function in `presets/programs/zellij.nix`
|
||||
truncating the session name (derived from the target directory basename)
|
||||
to 20 characters. Zellij names each session's Unix-domain IPC socket
|
||||
`$TMPDIR/zellij-<uid>/<version>/<name>`, and on macOS the socket path is
|
||||
capped at 103 bytes. The `/var/folders/...` `$TMPDIR` prefix consumes ~79
|
||||
of those, leaving only ~24 chars for the name, so switching into directories
|
||||
with long basenames overflowed the socket path. Because `switch-session`
|
||||
had already detached from the current session by the time the new one failed
|
||||
to bind, the failure took down the entire terminal instead of erroring
|
||||
gracefully.
|
||||
|
||||
## 2026-07-25
|
||||
|
||||
- Added jjui config generation to `jujutsu.nix` in Home Manager to include custom GitHub ruleset bypass commands (`ctrl+b` and `ctrl+shift+b`).
|
||||
|
||||
@@ -58,8 +58,15 @@ in
|
||||
if test "$TARGET_DIR" = $(pwd)
|
||||
return 1
|
||||
end
|
||||
# Zellij names each session's IPC socket $TMPDIR/zellij-<uid>/<ver>/<name>.
|
||||
# On macOS the socket path is capped at 103 bytes; the $TMPDIR prefix under
|
||||
# /var/folders/... eats ~79 of those, leaving only ~24 chars for the name.
|
||||
# A longer basename overflows the socket path, and because switch-session has
|
||||
# already detached from the current session by the time the new one fails to
|
||||
# bind, it takes the whole terminal down. Truncate to stay well under the limit.
|
||||
set SESSION_NAME (basename $TARGET_DIR | string sub --length 20)
|
||||
echo "$ZELLIJ_SESSION_NAME" > ~/.local/state/zellij-last-session
|
||||
${lib.getExe pkgs.zellij} action switch-session $(basename $TARGET_DIR) --cwd $TARGET_DIR --layout default
|
||||
${lib.getExe pkgs.zellij} action switch-session $SESSION_NAME --cwd $TARGET_DIR --layout default
|
||||
'';
|
||||
};
|
||||
gh-run = {
|
||||
|
||||
Reference in New Issue
Block a user