remux/README.md

119 lines
2.5 KiB
Markdown
Raw Permalink Normal View History

2023-04-06 13:34:32 -04:00
# ReMux: a friendlier tmux wrapper
2023-06-15 00:21:23 -04:00
Pronounced \[ ɹ̠i məks \], like "remix."
2023-06-12 19:24:57 -04:00
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.
2023-04-06 13:34:32 -04:00
2024-03-08 10:18:14 -05:00
To further simplify developer workflows, the `attach`, `detach`, `has`, and
`new` commands will default to the name of the root directory if used inside
a Git repository.
2024-03-06 16:05:53 -05:00
2024-03-08 10:18:14 -05:00
## Goals
- Accelerating: Makes simple tmux workflows faster.
- Friendly: Easy to start using.
- Short: Every ReMux command is as short or shorter than its raw tmux equivalent.
<details>
<summary><h2>Examples</h2></summary>
2023-06-12 19:24:57 -04:00
```sh
2023-04-06 13:34:32 -04:00
# new session
tmux new-session -t foo
remux n foo
# lists
tmux ls
remux l
2023-06-12 19:24:57 -04:00
remux
2023-04-06 13:34:32 -04:00
# attach
tmux a -t foo
remux a foo
2023-06-12 19:24:57 -04:00
# has
tmux has -t foo
remux has foo
# detach
tmux detach-client -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
2024-03-08 10:19:23 -05:00
# switch
tmux switch-client -t foo
remux s foo
2023-04-06 13:34:32 -04:00
```
2024-03-08 10:18:14 -05:00
</details>
2024-02-19 19:39:35 -05:00
## Dependencies
ReMux depends on [tmux](https://github.com/tmux/tmux).
## Installation
2024-02-22 14:20:13 -05:00
### Manual Install
<details>
<summary>Release Binary</summary>
2024-03-08 10:18:14 -05:00
Copy the compiled binary from the [releases page](https://git.vwolfe.io/valerie/remux/releases)
to a directory in `$PATH`, such as `/usr/bin/`.
2024-02-22 14:20:13 -05:00
</details>
<details>
<summary>Compile from Source</summary>
2024-03-08 10:18:14 -05:00
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/`.
2024-02-22 14:20:13 -05:00
</details>
<details>
<summary>makepkg (AUR)</summary>
2024-03-08 10:18:14 -05:00
Clone the [AUR Repository](https://aur.archlinux.org/remux.git) and run the
command `makepkg --install`.
2024-02-22 14:20:13 -05:00
</details>
### Package Managers
<details>
<summary>Arch Linux (AUR): <code>remux</code></summary>
2024-03-08 10:18:14 -05:00
Install the package from the [`remux` AUR Package](https://aur.archlinux.org/packages/remux)
using an AUR package manager such as [`paru`](https://github.com/Morganamilo/paru").
2024-02-22 14:20:13 -05:00
</details>
2024-02-19 19:39:35 -05:00
2024-03-03 22:28:32 -05:00
<details>
<summary>Cargo: <code>tmux-remux</code></summary>
2024-03-08 10:18:14 -05:00
Install the package using Cargo with the command `cargo install tmux-remux`.
2024-03-03 22:28:32 -05:00
</details>
2024-03-06 16:12:54 -05:00
## Configuration
The pretty-print attached symbol (default: `*`) can be set manually by setting `REMUX_ATTACH_SYMBOL`.
2023-06-20 12:33:38 -04:00
## Libraries
- [pico-args](https://crates.io/crates/pico_args) — argument parsing
- [termion](https://crates.io/crates/termion) — ANSI formatting
2024-02-13 19:36:38 -05:00
- [tmux_interface](https://crates.io/crates/tmux_interface) — tmux communication
2023-06-13 10:29:28 -04:00