@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.
- package/README.md +26 -28
- package/package.json +1 -1
- 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
|
|
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
|
-
###
|
|
85
|
+
### Usage
|
|
79
86
|
|
|
80
87
|
```bash
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
bun install
|
|
84
|
-
```
|
|
88
|
+
# Start jmux (creates or attaches to default session)
|
|
89
|
+
jmux
|
|
85
90
|
|
|
86
|
-
|
|
91
|
+
# Start with a named session
|
|
92
|
+
jmux my-project
|
|
87
93
|
|
|
88
|
-
|
|
89
|
-
|
|
94
|
+
# Use a separate tmux server (won't touch your existing sessions)
|
|
95
|
+
jmux -L work
|
|
90
96
|
```
|
|
91
97
|
|
|
92
|
-
|
|
98
|
+
### From Source
|
|
93
99
|
|
|
94
100
|
```bash
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
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
|
+

|
|
140
|
+
|
|
143
141
|
### Panes
|
|
144
142
|
|
|
145
143
|
| Key | Action |
|
package/package.json
CHANGED
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
|
-
//
|
|
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();
|