Crates.io | murus |
lib.rs | murus |
version | 0.1.1 |
created_at | 2025-09-07 20:18:53.844042+00 |
updated_at | 2025-09-13 16:33:05.388652+00 |
description | Crates for tmux API and plugin manager implementations |
homepage | https://git.notfloor.com/nfejzic/plux |
repository | https://git.notfloor.com/nfejzic/plux |
max_upload_size | |
id | 1828501 |
size | 11,121 |
This workspace contains Rust crate that wraps tmux commands and a simple plugin manager for tmux.
Plux is a very simple tmux plugin manager. Aim is to provide modern plugin
management. To use the plugin manager, specify plux.toml
file with desired
plugins, and add run-shell plux
to your tmux configuration.
Plux needs to know two paths to do the work:
@plux_toml_path
- where the plux.toml
file is located. By default the
$HOME/.config/tmux/plux.toml
is used.@plux_plugins_path
- directory that will contain installed plugins. By
default the $HOME/.config/tmux/plux/
directory is used.You can install plux with using cargo:
cargo install plux
Plugins are specified in a single plux.toml
file, with following syntax:
[plugins]
# you can specify the url of a plugin directly, default git branch will be used
# (e.g. 'main')
tmux-ssh-split = "https://github.com/pschmitt/tmux-ssh-split"
# or you can specify full plugin spec
# with branch:
tmux-fingers = { rul = "https://github.com/Morantron/tmux-fingers", branch = "feature-xyz" }
# with tag:
smart-splits = { url = "https://github.com/mrjones2014/smart-splits.nvim", tag = "v2.0.3"}
# with commit hash:
tmux-sensible = { url = "https://github.com/tmux-plugins/tmux-sensible", commit = "<commit hash>"}
There are multiple parts to plugin installation:
git clone
command..tmux
files in plugins directory. Plux does that as well, with one exception. If
plugin contains a top level plux_start.tmux
file, then this file is sourced
from tmux (e.g. tmux source <path-to-plugin>/plux_start.tmux
). Otherwise
all .tmux
files are executed (e.g. tmux run-shell <path-to-file>.tmux
).