Skip to content

Various fixes and improvements#24

Open
dbachelder wants to merge 23 commits intoliam-mackie:mainfrom
dbachelder:main
Open

Various fixes and improvements#24
dbachelder wants to merge 23 commits intoliam-mackie:mainfrom
dbachelder:main

Conversation

@dbachelder
Copy link

@dbachelder dbachelder commented Jan 16, 2026

hey liam.. I've been using zsm daily for a a couple weeks and these are all the changes I have made to suite my workflow.. not sure if you're interested in any of these.. feel free to close it or take what you want. I could also make PRs for certain pieces.

Visual Polish

  • Tabular alignment — Session names and directory paths now
    display in columns for better readability
  • Pane title — Set the plugin pane title to "ZSM" via Zellij API

Session Ordering

  • MRU sorting — Sessions now sort by most recently used
    (timestamps persisted to /tmp/zsm-mru-timestamps)
  • Config option — Added sort_order config (mru or alphabetical,
    defaults to mru)

Interaction Improvements

  • Session rename — Added Alt+r to rename the current session
    (useful for fixing unwanted .2 suffixes)

  • Two-row help text — Reorganized keybindings into navigation
    (row 1) and actions (row 2)

  • Quick-switch — Added previous session tracking for fast
    toggle-back

  • Includes sessions not started by ZSM

    Resurrectable Sessions

    • Toggle visibility — Alt+D shows/hides dead sessions (hidden by
      default)
    • Visual distinction — Dead sessions display in pink with help
      text explaining the toggle

    Bug Fixes

    • NewSession flow — Fixed Enter key behavior when editing session
      name (now correctly advances to layout selection instead of
      returning to main)
image

dbachelder and others added 23 commits January 7, 2026 15:10
  Add show_all_sessions config option to display all active sessions,
  not just those matching zoxide directories. Useful for seeing sessions
  created outside of zsm.

  Add stability tracking to prevent UI flickering from Zellij's
  inconsistent session updates. Sessions must be missing for 3
  consecutive updates before removal, and new sessions appear
  immediately.

  Changes:
  - Add show_all_sessions config option (default: false)
  - Add update_sessions_stable() with missing-count tracking
  - Add find_matching_zoxide_dir() helper to reduce code duplication
  - Add unit tests for stability tracking logic
  - Add GitHub Actions CI workflow (test, build-wasm, clippy, fmt)
  - Fix all clippy warnings and formatting issues
When switching sessions via the plugin, the current session is saved.
Opening the plugin pre-selects the previous session, allowing instant
toggle between two sessions by pressing Enter.

Implementation uses /tmp/zsm-previous-session file via run_command
to persist state across plugin instances in different sessions.
- Three screens (Main, NewSession, Rename)
- sort_order config option
- MRU ordering explanation
- Optimistic UI updates pattern
- Keybindings reference table

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Phase 10: Help Text Phase 2
- Two-color system: pink keys, white labels
- Focus on visual scannability
- Inspired by strider layout manager style
Phase 10: Help Text Phase 2
- 1 plan in 1 wave
- Two-color help text styling (keys in pink, labels in default)
- Ready for execution
- Add style_help_text() helper that applies color_range(3) to key segments
- Keys (Enter, Esc, Ctrl+Enter, Alt+r, etc.) render in pink/magenta
- Labels (Navigate, Search, Rename, etc.) render in default foreground
- Improves scannability by creating visual contrast between keys and descriptions
Tasks completed: 2/2
- Implement two-color help text styling
- Verify build and visual appearance

SUMMARY: .planning/phases/10-help-text-phase-2/10-01-SUMMARY.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Keys now display as <Enter>, <Esc>, <Ctrl+Enter>, etc. with angle
brackets included in the pink/magenta coloring for visual distinction.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Keys displayed in angle brackets: <Enter>, <Esc>, <Ctrl+Enter>, etc.
- Keys colored orange (index 0) for visibility, labels in default
- Use commas instead of bullet separators
- Fix color_range to use character indices, not byte indices
  (Unicode arrows ↑↓ are 3 bytes each, causing offset issues)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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