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.
Features
- 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 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
Using Homebrew
brew update
brew install 3mux
Using Nix flakes (requires Nix 2.4+)
nix run github:aaronjanse/3mux
Package manager
Building from source
- 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
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.