@jx0/jmux 0.1.0 → 0.1.2

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.
Files changed (3) hide show
  1. package/README.md +26 -28
  2. package/package.json +1 -1
  3. package/src/main.ts +5 -1
package/README.md CHANGED
@@ -64,43 +64,44 @@ Your tmux is unmodified. Sessions, windows, panes, keybindings — all unchanged
64
64
  - Green `▎` left marker — active session
65
65
  - Green `●` dot — new output since you last viewed that session
66
66
  - Orange `!` flag — attention needed (set programmatically)
67
- - Blue highlight — sidebar navigation mode (prefix + j)
68
67
 
69
68
  ## Installation
70
69
 
70
+ ```bash
71
+ # Install globally
72
+ bun install -g @jx0/jmux
73
+
74
+ # Run
75
+ jmux
76
+ ```
77
+
71
78
  ### Requirements
72
79
 
73
80
  - [Bun](https://bun.sh) 1.2+
74
81
  - [tmux](https://github.com/tmux/tmux) 3.2+
75
- - [fzf](https://github.com/junegunn/fzf) (for new session modal and window picker)
82
+ - [fzf](https://github.com/junegunn/fzf) (for new session modal)
76
83
  - [git](https://git-scm.com/) (optional, for branch display)
77
84
 
78
- ### Install
85
+ ### Usage
79
86
 
80
87
  ```bash
81
- git clone https://github.com/jarredkenny/jmux.git
82
- cd jmux
83
- bun install
84
- ```
88
+ # Start jmux (creates or attaches to default session)
89
+ jmux
85
90
 
86
- ### Run
91
+ # Start with a named session
92
+ jmux my-project
87
93
 
88
- ```bash
89
- bun run bin/jmux
94
+ # Use a separate tmux server (won't touch your existing sessions)
95
+ jmux -L work
90
96
  ```
91
97
 
92
- Or with a named session:
98
+ ### From Source
93
99
 
94
100
  ```bash
95
- bun run bin/jmux my-project
96
- ```
97
-
98
- ### Isolated Server
99
-
100
- To run jmux on a separate tmux server (keeps your existing tmux sessions untouched):
101
-
102
- ```bash
103
- bun run bin/jmux -L jmux
101
+ git clone https://github.com/jarredkenny/jmux.git
102
+ cd jmux
103
+ bun install
104
+ bun run bin/jmux
104
105
  ```
105
106
 
106
107
  ## New Session Modal
@@ -124,22 +125,19 @@ The session is created in the selected directory and the sidebar updates immedia
124
125
  | `Ctrl-a n` | New session (directory picker + name) |
125
126
  | Click sidebar | Switch to that session |
126
127
 
127
- ### Sidebar Mode (`Ctrl-a j` to enter)
128
-
129
- | Key | Action |
130
- |-----|--------|
131
- | `j` / `k` / arrows | Move highlight |
132
- | `Enter` | Switch to highlighted session |
133
- | `Escape` | Exit sidebar mode |
134
-
135
128
  ### Windows
136
129
 
137
130
  | Key | Action |
138
131
  |-----|--------|
139
132
  | `Ctrl-a c` | New window (opens in `~`) |
133
+ | `Ctrl-a j` | fzf window picker |
140
134
  | `Ctrl-Right` / `Ctrl-Left` | Next / previous window |
141
135
  | `Ctrl-Shift-Right` / `Ctrl-Shift-Left` | Reorder windows |
142
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
+
143
141
  ### Panes
144
142
 
145
143
  | Key | Action |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jx0/jmux",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "A persistent session sidebar for tmux",
5
5
  "type": "module",
6
6
  "bin": {
package/src/main.ts CHANGED
@@ -367,7 +367,11 @@ async function start(): Promise<void> {
367
367
  // Start control mode
368
368
  await control.start({ socketName, configFile });
369
369
 
370
- // Prefix is C-a hardcoded since we ship our own tmux.conf
370
+ // Re-apply our config to the running server handles the case where
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}`);
374
+ await control.sendCommand(`source-file ${configFile}`);
371
375
 
372
376
  // Fetch initial sessions, then resolve client name (needs sessions list)
373
377
  await fetchSessions();