Crates.io | wmctrl |
lib.rs | wmctrl |
version | 0.1.8 |
source | src |
created_at | 2020-01-26 09:57:17.365065 |
updated_at | 2021-01-26 12:30:46.54073 |
description | A wrapper for the command line tool wmctrl written in Rust |
homepage | |
repository | https://github.com/Treborium/rust-wmctrl |
max_upload_size | |
id | 202115 |
size | 51,979 |
A wrapper for the command line tool wmctrl written in Rust
wmctrl needs to be installed:
# Ubuntu
sudo apt install wmctrl
# Arch Linux
sudo pacman -S wmctrl
# Fedora
dnf install -y wmctrl
# You get the idea
Add wmctrl
to your dependencies in your Cargo.toml
:
[dependencies]
wmctrl = "0.1.7"
If you want the latest build use the GitHub repository as your uplink:
[dependencies]
wmctrl = { git = "https://github.com/Treborium/rust-wmctrl" }
Please refer to the documentation for detailed information.
If you want to copy & paste the examples below you need to use the following import statement:
use wmctrl::{Self, Window};
Find a window based on the title:
let windows = wmctrl::get_windows();
let firefox = wmctrl::utils::find_window_by_title(&windows, "Firefox").unwrap();
println!("{}", firefox);
Resize and move a window to the specified coordinates:
let mut windows = wmctrl::get_windows();
let win = &mut windows[0];
// This will move the window to the top left corner and resize it to 960x540
win.transform(wmctrl::Transformation::new(0, 0, 960, 540));
Close the window gracefully:
// We need to move the window out of the vector so there is no reference left
let win: Window = wmctrl::get_windows().remove(0);
win.close();
Make the window fullscreen:
let windows = wmctrl::get_windows();
let win = &windows[0];
// Make the window fullscreen
win.change_state(wmctrl::State::new(wmctrl::Action::Add, wmctrl::Property::Fullscreen));