3mux is a terminal multiplexer with out-of-the-box support for search, mouse-controlled scrollback, and i3-like keybindings. Imagine tmux with a smaller learning curve and more user-friendly defaults.
- batteries included
- i3-like keybindings
- session management
- optionally interactive
- self-documenting
- search
- scrollback
- mouse support
- drag to resize panes
- click to select pane
- scrollwheel
| Key(s) | Description |
|---|---|
| Alt+Enter Alt+N |
Create a new pane |
| Alt+Shift+F | Make the selected pane fullscreen. Useful for copying text |
| Alt+←/↓/↑/→ Alt+h/j/k/l |
Select an adjacent pane |
| Alt+Shift+←/↓/↑/→ Alt+Shift+h/j/k/l |
Move the selected pane |
| Alt+R | Enter resize mode. Resize selected pane with arrow keys or h/j/k/l. Exit using any other key(s) |
| Alt+/ | Enter search mode. Type query, navigate between results with arrow keys or n/N |
| Scroll | Move through scrollback |
| Shift | Many terminal emulators support selecting text while pressing this key |
| Key(s) | Description |
|---|---|
| Ctrl+b " | Split horizontally |
| Ctrl+b % | Split vertically |
| Ctrl+b { | Move pane left |
| Ctrl+b } | Move pane right |
| Key(s) | Description |
|---|---|
| Ctrl+a | | Split horizontally |
| Ctrl+a S | Split vertically |
| Ctrl+a Tab | Cycle forward through panes |
brew update
brew install 3mux
nix run github:aaronjanse/3mux
- Install Golang
go get github.com/aaronjanse/3mux- Run
3muxto launch the terminal multiplexer
To update 3mux, run go get -u github.com/aaronjanse/3mux
Warning: Arrow-key-controlled pane management is currently unsupported on Terminal.app. Please use the default vim-like keybindings instead.
Preferences > Profiles > Keyboard > Use Option as Meta Key
Preferences > Profiles > Keys > Option Key > Esc+
3mux searches XDG_CONFIG_HOME to find its config. If it cannot, it writes a config to ~/.config/3mux/config.toml upon the first run. Modifiers in shortcuts (e.g. Alt) are case-insensitive.
You can detect if you're running a script inside 3mux by checking if THREEMUX is equal to 1.
All help is welcome! You can help the project by filing issues recording what works well, what doesn't work well, and/or a feature you want. Pull Requests would be very much appreciated.