@jx0/jmux 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -130,9 +130,14 @@ The session is created in the selected directory and the sidebar updates immedia
130
130
  | Key | Action |
131
131
  |-----|--------|
132
132
  | `Ctrl-a c` | New window (opens in `~`) |
133
+ | `Ctrl-a j` | fzf window picker |
133
134
  | `Ctrl-Right` / `Ctrl-Left` | Next / previous window |
134
135
  | `Ctrl-Shift-Right` / `Ctrl-Shift-Left` | Reorder windows |
135
136
 
137
+ `Ctrl-a j` opens a full-height fzf popup on the left side of the screen with all windows in the current session. Type to fuzzy search, Enter to switch.
138
+
139
+ ![fzf window picker popup](docs/screenshots/window-picker.png)
140
+
136
141
  ### Panes
137
142
 
138
143
  | Key | Action |
package/config/tmux.conf CHANGED
@@ -77,6 +77,11 @@ bind-key Space if-shell -F '#{==:#{session_name},scratch}' {
77
77
  display-popup -E -w 80% -h 70% -b heavy -S 'fg=#4f565d' "tmux new-session -A -s scratch"
78
78
  }
79
79
 
80
+ # --- Session lifecycle ---
81
+ # When a session is killed, switch to the next one instead of detaching.
82
+ # jmux only exits when the last session is destroyed.
83
+ set -g detach-on-destroy off
84
+
80
85
  # --- Terminal ---
81
86
  set -g default-terminal "tmux-256color"
82
87
  set -g set-clipboard on
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jx0/jmux",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "A persistent session sidebar for tmux",
5
5
  "type": "module",
6
6
  "bin": {
package/src/main.ts CHANGED
@@ -369,6 +369,8 @@ async function start(): Promise<void> {
369
369
 
370
370
  // Re-apply our config to the running server — handles the case where
371
371
  // we attached to an existing server that loaded ~/.tmux.conf
372
+ // Set JMUX_DIR in tmux's global environment so config bindings can reference it
373
+ await control.sendCommand(`set-environment -g JMUX_DIR ${jmuxDir}`);
372
374
  await control.sendCommand(`source-file ${configFile}`);
373
375
 
374
376
  // Fetch initial sessions, then resolve client name (needs sessions list)