3 unstable releases
Uses new Rust 2024
| new 0.2.0 | Mar 7, 2026 |
|---|---|
| 0.1.1 | Sep 13, 2025 |
| 0.1.0 | Sep 7, 2025 |
#5 in #version-check
Used in plux
10KB
183 lines
PLUX
Minimal tmux plugin management, powered by Rust. This workspace also includes murus, a small Rust API wrapping a few tmux commands.
Quick Start
Installation
From crates.io
You can install plux with using cargo:
cargo install plux
From source
Alternatively, you can build and install from source:
# Clone the repository
git clone https://github.com/nfejzic/plux.git
cd plux
# Build in release mode
cargo build --release
# Link the binary to your PATH
ln -sf $PWD/target/release/plux /usr/local/bin/plux
Setup
- Add this line to your
~/.tmux.conf:
run-shell plux
- Reload tmux:
tmux source-file ~/.tmux.conf
-
On first run, plux auto-creates:
~/.config/tmux/plux.toml- plugin specification file~/.config/tmux/plux/- plugins directory
-
Edit
~/.config/tmux/plux.tomlto add your plugins (see below), then reload tmux again.
Plugin Specification
Add plugins to ~/.config/tmux/plux.toml:
[plugins]
# Simple: plugin name = GitHub URL (uses default branch)
tmux-ssh-split = "https://github.com/pschmitt/tmux-ssh-split"
# With specific version:
tmux-sensible = { url = "https://github.com/tmux-plugins/tmux-sensible", tag = "v2.0.3" }
tmux-fingers = { url = "https://github.com/Morantron/tmux-fingers", branch = "feature-xyz" }
some-plugin = { url = "https://github.com/user/repo", commit = "<commit-hash>" }
Configuration
Custom Paths
Override default paths in your ~/.tmux.conf:
set -g @plux_toml_path "~/custom/path/plux.toml"
set -g @plux_plugins_path "~/custom/path/plugins/"
Defaults:
- Config:
~/.config/tmux/plux.toml - Plugins:
~/.config/tmux/plux/
TPM Migration
Switching from TPM:
- Install plux (see above)
- Replace
run-shell '~/.tmux/plugins/tpm/tpm'withrun-shell pluxin~/.tmux.conf - Convert plugin list to
plux.tomlformat - Remove TPM
- Reload tmux
Compatibility: Plux works with existing TPM plugins. If a plugin provides plux.tmux, it's sourced via source-file; otherwise all *.tmux files are executed via run-shell -b.
How It Works
Plux manages plugins in three steps:
- Clone - Downloads plugins using
git clone --depth 1 - Version - Checks out specified tag/branch/commit
- Load - Sources/executes plugin files in tmux
Dependencies
~140–530KB
~12K SLoC