Skip to content

Add screen-style multi-session support and recursive split panes#52

Merged
wfaderhold21 merged 1 commit into
mainfrom
topic/multi-session-and-recursive-panes
Jul 22, 2026
Merged

Add screen-style multi-session support and recursive split panes#52
wfaderhold21 merged 1 commit into
mainfrom
topic/multi-session-and-recursive-panes

Conversation

@wfaderhold21

Copy link
Copy Markdown
Owner

Multi-session (screen-style):

  • Replace the singleton reattach info file with a session registry under ~/.config/linkshell/sessions/.json. Each detached server registers its own id, pid, sockets, and token; linkshell ls lists live sessions (pruning dead pids) and linkshell -r <id> reattaches to a specific one. Bare linkshell (and linkshell new [name]) always starts a fresh server; linkshell -r with no id attaches the sole running session.

Recursive split panes:

  • New layout.rs: a binary LayoutTree (Leaf/Split) with split/close/rotate and in-order rect tiling. Replace the fixed two-pane LayoutMode + [Option;2] model with tree + Vec-based panes/pane_sizes so any pane can be split any number of times, in either direction. Chat docking now splits a dedicated pane and undocking closes it (sibling reclaims the space).
  • Keys: alt-\ split right, alt-- split down, alt-w close, alt-r rotate, alt-o focus next. Config actions: split_pane_right, split_pane_down, close_pane, rotate_split, focus_next_pane.

Docs (README, in-app help, CHANGELOG) updated.

Multi-session (screen-style):
- Replace the singleton reattach info file with a session registry under
  ~/.config/linkshell/sessions/<id>.json. Each detached server registers its
  own id, pid, sockets, and token; `linkshell ls` lists live sessions (pruning
  dead pids) and `linkshell -r <id>` reattaches to a specific one. Bare
  `linkshell` (and `linkshell new [name]`) always starts a fresh server;
  `linkshell -r` with no id attaches the sole running session.

Recursive split panes:
- New layout.rs: a binary LayoutTree (Leaf/Split) with split/close/rotate and
  in-order rect tiling. Replace the fixed two-pane LayoutMode + [Option;2]
  model with tree + Vec-based panes/pane_sizes so any pane can be split any
  number of times, in either direction. Chat docking now splits a dedicated
  pane and undocking closes it (sibling reclaims the space).
- Keys: alt-\ split right, alt-- split down, alt-w close, alt-r rotate,
  alt-o focus next. Config actions: split_pane_right, split_pane_down,
  close_pane, rotate_split, focus_next_pane.

Docs (README, in-app help, CHANGELOG) updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@wfaderhold21
wfaderhold21 merged commit 7f96002 into main Jul 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant