4 releases

0.0.51 Jun 11, 2024
0.0.50 Jun 11, 2024
0.0.45 Mar 31, 2022
0.0.41 Dec 18, 2021

#231 in GUI

MIT/Apache

145KB
2.5K SLoC

wmctl

license-badge crates.io Minimum rustc

Rust X11 automation

wmctl partially implements the Extended Window Manager Hints (EWMH) specification as a way to work along side EWMH compatible window managers as a companion. wmctl provides the ability to precisely define how windows should be shaped and placed and can fill in gaps for window managers lacking some shaping or placement features. Mapping wmctl commands to user defined hot key sequences will allow for easy window manipulation beyond what your favorite EWMH window manager provides.

Disclaimer

wmctl comes with absolutely no guarantees or support of any kind. It is to be used at your own risk. Any damages, issues, losses or problems caused by the use of wmctl are strictly the responsiblity of the user and not the developer/creator of wmctl.

Usage

rustc >= 1.56 is the minimum supported Rust version for this project

$ wmctl -h for cli help help image

Shape window

Shape the active window using the pre-defined small shape which is a quarter of the screen.

$ wmctl shape small

Move window

Move the active window to the bottom left corner of the screen.

$ wmctl move bottom-left

Place window

Combine the shape and move into a single command by placing the window. First the window is shaped using the pre-defined halfw shape then it is moved to the top left of the screen in a single operation.

$ wmctl place halfw top-left

Development

Run Examples

License

This project is licensed under either of:

Contribution

Pull requests are always welcome. However understand that they will be evaluated purely on whether or not the change fits with my goals/ideals for the project.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.


Backlog

Changelog

  • 5/30/2024
    • Fix for GTK Client-side window decorations not being calculated correctly
  • 12/18/2021
    • Add Arch Linux packaging
    • Added public documentation
    • Fix to precisely place windows with Xfwm4
    • Completed move, shape and place implementation

Dependencies

~15–25MB
~396K SLoC