tmux_interface
Description
tmux_interface
is a library for communication with
TMUX via CLI written in
Rust programming language. The crate
documentation can be found on the
docs.rs page.
Usage
-
Add a dependency in your
Cargo.toml
. Versions below1.0.0
are mostly for development and testing purposes (use them in your projects on your own risk, further versions may have different API).[dependencies] tmux_interface = "1.0.0"
-
Add extern crate in your source file.
extern crate tmux_interface;
-
Use it's functions
Example 1
use tmux_interface::{HasSession, KillSession, NewSession, NewWindow, SplitWindow, Tmux}; let target_session = "example_1"; // tmux new -d -s example_1 ; neww ; splitw -v Tmux::new() .add_command(NewSession::new().detached().session_name(target_session)) .add_command(NewWindow::new()) .add_command(SplitWindow::new().vertical()) .output() .unwrap(); // tmux has -t example_1 let status = Tmux::with_command(HasSession::new().target_session(target_session)) .status() .unwrap() .success(); assert!(status); // tmux kill-session -t example_1 Tmux::with_command(KillSession::new().target_session(target_session)) .output() .unwrap();
Testing
The library is still in experimental development stage (unstable).
- many features are unimplemented or not well tested
- some APIs/structures/names/... can be changed in the future
- some design patterns of the library can be changed
- almost all library documentation is missing at the moment
- ...
The library was tested using GitHub Actions under following conditions:
-
OS:
- Linux (Ubuntu 20.04.2 LTS Focal Fossa, x64)
- Windows
- MacOS (10.13.6 High Sierra, x64)
-
Rust:
- stable
- beta
- nightly
-
Tmux (covered tmux versions crate features):
- master -
tmux_X_X
- 3.3a -
tmux_3_3a
- 3.3 -
tmux_3_3
- 3.2a -
tmux_3_2a
- 3.2 -
tmux_3_2
- 3.1c -
tmux_3_1c
- 3.1b -
tmux_3_1b
- 3.1a -
tmux_3_1a
- 3.1 -
tmux_3_1
- 3.0a -
tmux_3_0a
- 3.0 -
tmux_3_0
- 2.9a -
tmux_2_9a
- 2.9 -
tmux_2_9
- 2.8 -
tmux_2_8
- 2.7 -
tmux_2_7
- 2.6 -
tmux_2_6
- 2.5 -
tmux_2_5
- 2.4 -
tmux_2_4
- 2.3 -
tmux_2_3
- 2.2 -
tmux_2_2
- 2.1 -
tmux_2_1
- 2.0 -
tmux_2_0
- 1.9a -
tmux_1_9a
- 1.9 -
tmux_1_9
- 1.8 -
tmux_1_8
- 1.7 -
tmux_1_7
- 1.6 -
tmux_1_6
- 1.5 -
tmux_1_5
- 1.4 -
tmux_1_4
- tmux compilation error - 1.3 -
tmux_1_3
- tmux compilation error - 1.2 -
tmux_1_2
- tmux compilation error - 1.1 -
tmux_1_1
- tmux compilation error - 1.0 -
tmux_1_0
- tmux compilation error - 0.9 -
tmux_0_9
- tmux compilation error - 0.8 -
tmux_0_8
- tmux compilation error
- master -
Contributors
- Kian-Meng Ang (kianmeng)
- Martin Terneborg (MTBorg)
- Yanus Poluektovich (ypoluektovich)
License
tmux_interface
library is licensed under the MIT license. Please read the
license file in the repository for more information.