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 sane defaults.
Features
- batteries included
- i3-like keybindings
- search
- scrollback
- mouse support
- drag to resize panes
- click to select pane
- scrollwheel
Key Bindings
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 |
Supported tmux Bindings
Key(s) |
Description |
Ctrl+b " |
Split horizontally |
Ctrl+b % |
Split vertically |
Ctrl+b { |
Move pane left |
Ctrl+b } |
Move pane right |
Supported screen Bindings
Key(s) |
Description |
Ctrl+a | |
Split horizontally |
Ctrl+a S |
Split vertically |
Ctrl+a Tab |
Cycle forward through panes |
Installation Instructions
- Install Golang
go get github.com/aaronjanse/ci-testing
- Run
3mux
to launch the terminal multiplexer
To update 3mux
, run go get -u github.com/aaronjanse/ci-testing
Terminal.app
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
iTerm2
Preferences > Profiles > Keys > Option Key > Esc+
Miscellaneous
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
.
Contributing
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.