4 releases (2 breaking)
0.3.0 | Jul 9, 2020 |
---|---|
0.2.0 | May 3, 2020 |
0.1.1 | May 3, 2020 |
0.1.0 | May 2, 2020 |
#30 in #now
43KB
1K
SLoC
wlm is a command-line tool to move and resize windows based on a config.
Rationale
wlm started as an open source replacement to http://www.stefandidak.com/windows-layout-manager/ and a way for me to get more experience with Rust. The intent is to provide cross-platform support, with Windows being the first to be implemented.
Installation
cargo install wlm
How to Use
Create a config
A config is a list of windows and their respective properties.
wlm init
By default, this will create a default.json
in your platform-specific location.
This is determined by the directories library.
Multiple configs can be created by using the --file
argument.
View available window information
Once a window is in a state you like, get its information via the ls
command.
wlm ls
Modify a config
The following example will create a new window in your config:
wlm add --process "chrome.exe" -x 0 -y 0 -w 800 -H 600
And now that, that window exists it can be modified via the following example:
wlm config windows.0.process "chrome.exe"
wlm config windows.0.x 0
wlm config windows.0.y 0
wlm config windows.0.w 800
wlm config windows.0.h 600
To view your existing config:
wlm config
Apply a config
Now to apply the config:
wlm apply
To apply a different config, simply specify it with the --file
argument.
TODO
- Add support for default config location
$HOME/.config/wlm/default.json
- Add support for modifying existing config via CLI
- e.g.
wlm config windows.2.process "chrome.exe"
- e.g.
- Add support for specifying monitor
- Add support for percentage-based configs
- e.g. similar to how tiling window managers work or Windows snapping
- Add support for a daemon/service that will auto apply config on new window events
Dependencies
~10MB
~169K SLoC