An open API service indexing awesome lists of open source software.

https://github.com/aaronjanse/3mux

Terminal multiplexer inspired by i3
https://github.com/aaronjanse/3mux

hacktoberfest i3 i3wm tmux tui

Last synced: 20 days ago
JSON representation

Terminal multiplexer inspired by i3

Awesome Lists containing this project

README

        

`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.

[](https://streamable.com/m2r57p)

### 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

[![Packages for 3mux](https://repology.org/badge/vertical-allrepos/3mux.svg)](https://repology.org/project/3mux/versions)

###### Building from source
1. Install Golang
2. `go get github.com/aaronjanse/3mux`
3. 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.

### Related Projects
* [tmux-tilish](https://github.com/jabirali/tmux-tilish)