openmux 0.2.41 → 0.2.43
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 +19 -56
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -171,6 +171,23 @@ Each workspace has a layout mode that determines how panes are arranged:
|
|
|
171
171
|
|
|
172
172
|
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`).
|
|
173
173
|
|
|
174
|
+
### Configuration
|
|
175
|
+
|
|
176
|
+
openmux loads `~/.config/openmux/config.toml` (or `$XDG_CONFIG_HOME/openmux/config.toml`). If the file is missing, a full default config is generated on startup. Deleting the file and restarting openmux will regenerate it.
|
|
177
|
+
|
|
178
|
+
Config changes are hot-reloaded while openmux is running (layout, theme, and keybindings update live).
|
|
179
|
+
|
|
180
|
+
See [`CONFIG.md`](CONFIG.md) for the full generated config.
|
|
181
|
+
|
|
182
|
+
Environment variables override the config file for layout values:
|
|
183
|
+
|
|
184
|
+
- `OPENMUX_WINDOW_GAP`
|
|
185
|
+
- `OPENMUX_MIN_PANE_WIDTH`
|
|
186
|
+
- `OPENMUX_MIN_PANE_HEIGHT`
|
|
187
|
+
- `OPENMUX_STACK_RATIO` (maps to `layout.defaultSplitRatio`)
|
|
188
|
+
|
|
189
|
+
To unbind a keybinding, set its value to `null` or `"unbind"`.
|
|
190
|
+
|
|
174
191
|
### Detach / Attach
|
|
175
192
|
|
|
176
193
|
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.
|
|
@@ -184,60 +201,6 @@ A fullscreen overlay (`Alt+a` or `Ctrl+b a`) that lets you browse all PTYs acros
|
|
|
184
201
|
- **Filter by typing** to search by process name, directory, or git branch
|
|
185
202
|
- Navigate with `j/k` or arrow keys, `Enter` to interact, `Prefix+Esc` to return to list
|
|
186
203
|
|
|
187
|
-
## Project Structure
|
|
188
|
-
|
|
189
|
-
```
|
|
190
|
-
src/
|
|
191
|
-
├── core/ # Core layout and session management
|
|
192
|
-
│ ├── types.ts # Type definitions (Workspace, Pane, etc.)
|
|
193
|
-
│ ├── config.ts # Configuration and defaults
|
|
194
|
-
│ ├── keyboard-utils.ts # hjkl to Direction conversion
|
|
195
|
-
│ ├── operations/
|
|
196
|
-
│ │ ├── index.ts # Layout operations exports
|
|
197
|
-
│ │ └── master-stack-layout.ts # Master-stack layout calculations
|
|
198
|
-
│ └── session/ # Session persistence
|
|
199
|
-
│ ├── index.ts # Session exports
|
|
200
|
-
│ ├── session-manager.ts # High-level session operations
|
|
201
|
-
│ ├── session-serializer.ts # Serialize/deserialize sessions
|
|
202
|
-
│ └── session-storage.ts # Disk I/O for sessions
|
|
203
|
-
│
|
|
204
|
-
├── components/ # OpenTUI SolidJS components
|
|
205
|
-
│ ├── index.ts # Component exports
|
|
206
|
-
│ ├── Pane.tsx # Individual pane with border/focus
|
|
207
|
-
│ ├── PaneContainer.tsx # Layout pane renderer
|
|
208
|
-
│ ├── TerminalView.tsx # Terminal rendering with buffer API
|
|
209
|
-
│ ├── StatusBar.tsx # Bottom status bar
|
|
210
|
-
│ ├── KeyboardHints.tsx # Keyboard shortcuts overlay
|
|
211
|
-
│ ├── SessionPicker.tsx # Session selection modal
|
|
212
|
-
│ └── AggregateView.tsx # PTY browser overlay
|
|
213
|
-
│
|
|
214
|
-
├── contexts/ # SolidJS contexts for state
|
|
215
|
-
│ ├── index.ts # Context exports
|
|
216
|
-
│ ├── LayoutContext.tsx # Workspace/pane layout state (store + actions)
|
|
217
|
-
│ ├── TerminalContext.tsx # PTY management and lifecycle
|
|
218
|
-
│ ├── KeyboardContext.tsx # Prefix mode and key state
|
|
219
|
-
│ ├── SessionContext.tsx # Session management and persistence
|
|
220
|
-
│ ├── ThemeContext.tsx # Theme/styling configuration
|
|
221
|
-
│ └── AggregateViewContext.tsx # Aggregate view state management
|
|
222
|
-
│
|
|
223
|
-
├── terminal/ # PTY and terminal emulation
|
|
224
|
-
│ ├── index.ts # Terminal exports
|
|
225
|
-
│ ├── pty-manager.ts # PTY session lifecycle (zig-pty)
|
|
226
|
-
│ ├── ghostty-vt/ # Native libghostty-vt bindings + emulator
|
|
227
|
-
│ ├── ghostty-emulator/ # Cell conversion utilities
|
|
228
|
-
│ ├── input-handler.ts # Key/mouse to escape sequence encoder
|
|
229
|
-
│ ├── graphics-passthrough.ts # Kitty Graphics/Sixel protocol
|
|
230
|
-
│ ├── capabilities.ts # Terminal capability detection
|
|
231
|
-
│ └── terminal-colors.ts # Color palette detection
|
|
232
|
-
│
|
|
233
|
-
├── utils/
|
|
234
|
-
│ ├── index.ts # Utils exports
|
|
235
|
-
│ └── clipboard.ts # Clipboard read/write
|
|
236
|
-
│
|
|
237
|
-
├── App.tsx # Main app component with provider hierarchy
|
|
238
|
-
└── index.tsx # Entry point (Bun + OpenTUI renderer)
|
|
239
|
-
```
|
|
240
|
-
|
|
241
204
|
## Development Status
|
|
242
205
|
|
|
243
206
|
Current status:
|
|
@@ -256,8 +219,8 @@ Current status:
|
|
|
256
219
|
- [x] Scrollback support
|
|
257
220
|
- [x] Aggregate view (PTY browser)
|
|
258
221
|
- [x] Attach/detach (steal + lock)
|
|
259
|
-
- [
|
|
260
|
-
- [
|
|
222
|
+
- [x] Configurable keybindings
|
|
223
|
+
- [x] Configurable settings and colors
|
|
261
224
|
|
|
262
225
|
## License
|
|
263
226
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openmux",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.43",
|
|
4
4
|
"description": "Terminal multiplexer with master-stack tiling layout",
|
|
5
5
|
"module": "src/index.tsx",
|
|
6
6
|
"type": "module",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"check:circular": "bunx madge --circular --extensions ts,tsx src/",
|
|
29
29
|
"lint:effect": "effect-language-service diagnostics --format pretty --project ./tsconfig.json",
|
|
30
30
|
"lint": "bun run lint:effect",
|
|
31
|
+
"config:doc": "bun scripts/generate-config-doc.ts",
|
|
31
32
|
"release": "standard-version",
|
|
32
33
|
"release:minor": "standard-version --release-as minor",
|
|
33
34
|
"release:major": "standard-version --release-as major",
|
|
@@ -75,6 +76,7 @@
|
|
|
75
76
|
"dependencies": {
|
|
76
77
|
"@effect/cli": "^0.72.1",
|
|
77
78
|
"@effect/platform": "^0.93.8",
|
|
79
|
+
"@iarna/toml": "^3.0.0",
|
|
78
80
|
"@opentui/core": "^0.1.62",
|
|
79
81
|
"@opentui/solid": "^0.1.62",
|
|
80
82
|
"effect": "^3.19.13",
|