openmux 0.2.30 → 0.2.32
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 +42 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,7 @@ A terminal multiplexer with master-stack layout (Zellij-style), built with:
|
|
|
21
21
|
- Tmux-style `Ctrl+b` prefix key
|
|
22
22
|
- 9 workspaces with isolated pane layouts
|
|
23
23
|
- Session persistence and management
|
|
24
|
+
- Detach/attach (leave sessions running in background)
|
|
24
25
|
- Pane zoom (fullscreen focused pane)
|
|
25
26
|
- Aggregate view for browsing/filtering PTYs across workspaces
|
|
26
27
|
- Kitty Graphics and Sixel protocol support
|
|
@@ -57,6 +58,7 @@ bun run build --install
|
|
|
57
58
|
Download prebuilt binaries from [GitHub Releases](https://github.com/monotykamary/openmux/releases).
|
|
58
59
|
|
|
59
60
|
Available platforms:
|
|
61
|
+
|
|
60
62
|
- macOS (Apple Silicon)
|
|
61
63
|
- Linux (x64 / arm64)
|
|
62
64
|
|
|
@@ -73,9 +75,33 @@ bun start # Run from source
|
|
|
73
75
|
bun dev # Run with watch mode
|
|
74
76
|
```
|
|
75
77
|
|
|
78
|
+
## Architecture (High Level)
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
┌─────────────────────────┐
|
|
82
|
+
│ Host Terminal (TTY) │
|
|
83
|
+
└────────────┬────────────┘
|
|
84
|
+
│ input/output
|
|
85
|
+
v
|
|
86
|
+
┌─────────────────────────┐
|
|
87
|
+
│ openmux UI (client) │ Solid + OpenTUI
|
|
88
|
+
└────────────┬────────────┘
|
|
89
|
+
│ shim protocol (detach/attach)
|
|
90
|
+
v
|
|
91
|
+
┌─────────────────────────┐
|
|
92
|
+
│ shim server (background)│
|
|
93
|
+
└────────────┬────────────┘
|
|
94
|
+
│ PTY I/O + emulation
|
|
95
|
+
v
|
|
96
|
+
┌─────────────────────────┐
|
|
97
|
+
│ zig-pty + ghostty-web │ worker pool
|
|
98
|
+
└─────────────────────────┘
|
|
99
|
+
```
|
|
100
|
+
|
|
76
101
|
## Keyboard Shortcuts
|
|
77
102
|
|
|
78
103
|
### Normal Mode (Alt shortcuts - no prefix needed)
|
|
104
|
+
|
|
79
105
|
- `Alt+h/j/k/l` - Navigate panes
|
|
80
106
|
- `Alt+n` - New pane
|
|
81
107
|
- `Alt+1-9` - Switch to workspace 1-9
|
|
@@ -87,6 +113,7 @@ bun dev # Run with watch mode
|
|
|
87
113
|
- `Ctrl+b` - Enter prefix mode
|
|
88
114
|
|
|
89
115
|
### Mouse
|
|
116
|
+
|
|
90
117
|
- `Click` - Focus pane
|
|
91
118
|
- `Click tab` - Switch to stacked pane (in stacked mode)
|
|
92
119
|
- `Scroll wheel` - Scroll through terminal history (when not in alternate screen apps like vim)
|
|
@@ -94,6 +121,7 @@ bun dev # Run with watch mode
|
|
|
94
121
|
- `Drag scrollbar` - Scroll through history by dragging
|
|
95
122
|
|
|
96
123
|
### Prefix Mode (Ctrl+b, 2s timeout)
|
|
124
|
+
|
|
97
125
|
- `n` or `Enter` - New pane
|
|
98
126
|
- `h/j/k/l` - Navigate panes
|
|
99
127
|
- `1-9` - Switch to workspace 1-9
|
|
@@ -105,11 +133,13 @@ bun dev # Run with watch mode
|
|
|
105
133
|
- `s` - Open session picker
|
|
106
134
|
- `a` - Open aggregate view
|
|
107
135
|
- `]` - Paste from clipboard
|
|
136
|
+
- `d` - Detach (leave session running)
|
|
108
137
|
- `r` - Enter resize mode
|
|
109
138
|
- `?` - Toggle keyboard hints
|
|
110
139
|
- `Esc` - Exit prefix mode
|
|
111
140
|
|
|
112
141
|
### Resize Mode
|
|
142
|
+
|
|
113
143
|
- `h/l` - Shrink/grow width
|
|
114
144
|
- `j/k` - Grow/shrink height
|
|
115
145
|
- `Enter/Esc` - Exit resize mode
|
|
@@ -117,19 +147,29 @@ bun dev # Run with watch mode
|
|
|
117
147
|
## Concepts
|
|
118
148
|
|
|
119
149
|
### Workspaces
|
|
150
|
+
|
|
120
151
|
Like i3/sway, openmux supports multiple workspaces (1-9). Each workspace has its own layout tree of panes. The status bar shows populated workspaces dynamically - empty workspaces don't appear unless active.
|
|
121
152
|
|
|
122
153
|
### Layout Modes (Zellij-style)
|
|
154
|
+
|
|
123
155
|
Each workspace has a layout mode that determines how panes are arranged:
|
|
156
|
+
|
|
124
157
|
- **Vertical** (`│`): Main pane on left, stack panes split vertically on right
|
|
125
158
|
- **Horizontal** (`─`): Main pane on top, stack panes split horizontally on bottom
|
|
126
159
|
- **Stacked** (`▣`): Main pane on left, stack panes tabbed on right (only active visible)
|
|
127
160
|
|
|
128
161
|
### Sessions
|
|
162
|
+
|
|
129
163
|
Sessions persist your workspace layouts and pane working directories. Sessions are auto-saved to `~/.config/openmux/sessions/` and can be switched via the session picker (`Alt+s` or `Ctrl+b s`).
|
|
130
164
|
|
|
165
|
+
### Detach / Attach
|
|
166
|
+
|
|
167
|
+
Use `Ctrl+b d` to detach and leave the background shim running. Reattach by launching `openmux` again. Detach/attach uses a single-client lock; a new client steals the lock and the previous client detaches.
|
|
168
|
+
|
|
131
169
|
### Aggregate View
|
|
170
|
+
|
|
132
171
|
A fullscreen overlay (`Alt+a` or `Ctrl+b a`) that lets you browse all PTYs across all workspaces in one place. Features:
|
|
172
|
+
|
|
133
173
|
- **Card-style PTY list** showing directory, process name, and git branch
|
|
134
174
|
- **Interactive terminal preview** with full input support (keyboard + mouse)
|
|
135
175
|
- **Filter by typing** to search by process name, directory, or git branch
|
|
@@ -205,8 +245,9 @@ Current status:
|
|
|
205
245
|
- [x] Graphics protocol passthrough (Kitty/Sixel)
|
|
206
246
|
- [x] Scrollback support
|
|
207
247
|
- [x] Aggregate view (PTY browser)
|
|
208
|
-
- [
|
|
248
|
+
- [x] Attach/detach (steal + lock)
|
|
209
249
|
- [ ] Configurable keybindings
|
|
250
|
+
- [ ] Configurable settings and colors
|
|
210
251
|
|
|
211
252
|
## License
|
|
212
253
|
|