# ReMux: a friendlier tmux wrapper Pronounced \[ ɹ̠i məks \], like "remix." A tmux wrapper and command shortener written in Rust. ReMux's goal is to wrap tmux commands to be both shorter, and oriented around session names instead of session IDs. To further simplify developer usage, the `attach`, `detach`, `has`, and `new` commands can be used without a target field, and will default to the name of the Git repository root directory, if one is found. In their shortest forms, *every* ReMux command is as short or shorter than its equivalent tmux command: ```sh # new session tmux new-s -t foo remux n foo # list sessions tmux ls remux l # attach tmux a -t foo remux a foo # has tmux h -t foo remux h foo # detach tmux det -t foo remux d foo # nesting sessions with '-n' flag TMUX='' tmux a -t foo remux a -n foo TMUX='' tmux new-session -t foo remux n -n foo # switch to another session tmux swi -t foo rmux s foo # cd to session path cd `tmux display-mes -p "#{session_path}"` cd `rmux p` ``` ## Dependencies ReMux depends on [tmux](https://github.com/tmux/tmux). ## Installation ### Manual Install
Release Binary Copy the compiled binary from the releases page to a directory in $PATH, such as /usr/bin/.
Compile from Source Compile using cargo with the command cargo build --release and copy the file from target/release/ to a directory in $PATH, such as /usr/bin/.
makepkg (AUR) Clone the AUR Repository and run the command makepkg --install.
### Package Managers
Arch Linux (AUR): remux Install the package from the remux AUR Package using an AUR package manager such as paru.
Cargo: tmux-remux Install the package using Cargo with the command cargo install tmux-remux.
### Supplemental
Bash Completions Copy bash_completion/remux to the appropriate directory, typically /usr/share/bash-completion.
Man Page: Section 1 Copy man/remux.1 into /usr/share/man/man1/.
## Configuration The pretty-print attached symbol (default: `*`) can be set manually by setting `REMUX_ATTACH_SYMBOL`. ## Libraries - [pico-args](https://crates.io/crates/pico_args) — argument parsing - [termion](https://crates.io/crates/termion) — ANSI formatting - [tmux_interface](https://crates.io/crates/tmux_interface) — tmux communication