A friendly tmux wrapper.
Find a file
2024-07-24 20:59:48 -04:00
bash-completion renamed bash completion folder to be more appropriate 2024-07-17 09:24:31 -04:00
man 'switch' command now supports detach flag, and updated manual documentation for 'switch' 2024-07-22 09:26:33 -04:00
src error functions now return a never type 2024-07-24 20:59:48 -04:00
.gitignore initial commit 2023-04-06 13:34:32 -04:00
Cargo.toml added search and quiet mode to 'list' command and wrote a completion function 2024-07-16 11:46:56 -04:00
deny.toml version bump and added data for auditing tools 2024-03-14 16:42:11 -04:00
LICENSE removed dead code and updated package information 2024-02-12 14:06:54 -05:00
README.md renamed bash completion folder to be more appropriate 2024-07-17 09:24:31 -04:00
sbom.xml version bump and added data for auditing tools 2024-03-14 16:42:11 -04:00

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:


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

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