This project is work-in-progress
This project provides a tiling window manager for gyscos/cursive similar to Tmux. You can place any other cursive
view inside of a Mux
view to display these views in complex layouts side by side. Watch the demo below to see how it looks.
How does it look like? demo
Usage
Simply add to your Cargo.toml
[]
= "^0.2.0"
And then use Mux::new
to create a new Mux view
let = new;
Mux has defaults defined for key bindings. You can change them with the API described in the docs.
Adding views
You can add views by giving a path or an id to an existing node e.g.
let new_node = mux.add_right_of.expect;
Its also possible to add views by their path.
if let Some = mux.root.right.right.down.build
Returned will be a Result Ok contains the new id assigned to the view, or an error in case of failure.
Removing Views
You can also remove views, by giving the id of the views.
mux.remove_id?;
On success the id of the removed node is returned.
Switch Views
If you want to reorder your views you can easily switch them by using
mux.switch_views?;
Troubleshooting
If you find any bugs/unexpected behaviour or you have a proposition for future changes open an issue describing the current behaviour and what you expected.
Development
Running the tests
:bangbang: CAUTION :bangbang: This crate uses Tmux for end2end testing and will kill your Tmux server during testing!
Preparing integration tests
In order to run the integration tests, you first need to install a recent version of >=npm-10
and >=tmux-2.6
!
After npm
and tmux
are installed, install required dependencies:
$ ./scripts/prepare-end2end-tests.sh
This will use npm
to install jest
and shellshot
in the tests
folder.
Running all test suites
Just run
$ cargo test
to execute all available tests.
shields.io endpoints
shields.io endpoints are generated inside the ./target/shields
folder. They are used in this README.
Authors
Fin Christensen
:octocat:
@fin-ger
:elephant:@fin_ger@mastodon.social
:bird:@fin_ger_github
Johannes Wünsche
:octocat:
@jwuensche
:elephant:@fredowald@mastodon.social
:bird:@Fredowald
Show your support
Give a :star: if this project helped you!