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
3mux
to 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.