wmfocus - Visually focus windows by label
This tool that allows you to rapidly choose a specific window directly without having to use the mouse or directional keyboard navigation.
Installation
On Arch Linux: Get it from AUR
With Cargo:
cargo install --features i3 wmfocus
wmfocus
Usage
Draw labels on the upper-left corner of all windows:
wmfocus
Completely fill out windows and draw the label in the middle:
wmfocus --fill
Use a different font (as provided by fontconfig):
wmfocus -f "Droid Sans":100
Change up the default colors:
wmfocus --textcolor red --textcoloralt #eeeeee --bgcolor "rgba(50, 50, 200, 0.5)"
wmfocus will make use of a compositor to get real transparency.
Full help
wmfocus 1.0.0
Sven-Hendrik Haase <svenstaro@gmail.com>
USAGE:
wmfocus [FLAGS] [OPTIONS]
FLAGS:
--fill Completely fill out windows
-h, --help Prints help information
-p, --printonly Print the window id only but don't change focus
-V, --version Prints version information
OPTIONS:
--textcolor <text_color> Text color (CSS notation) [default: #dddddd]
--textcoloralt <text_color_alt> Text color alternate (CSS notation) [default: #666666]
--bgcolor <bg_color> Background color (CSS notation) [default: rgba(30, 30, 30, 0.9)]
--halign <horizontal_align> Horizontal alignment of the box inside the window [default: left] [possible
values: left, center, right]
--valign <vertical_align> Vertical alignment of the box inside the window [default: top] [possible
values: top, center, bottom]
-f, --font <font> Use a specific TrueType font with this format: family:size [default: Mono:72]
-c, --chars <hint_chars> Define a set of possbile values to use as hint characters [default:
sadfjklewcmpgh]
-m, --margin <margin> Add an additional margin around the text box (value is a factor of the box
size) [default: 0.2]
Compiling
You need to have recent versions of rust
, cargo
, xcb-util-keysyms
, libxkbcommon-x11
and cairo
installed.
Then, just clone it like usual and cargo run
to get output:
git clone https://github.com/svenstaro/wmfocus.git
cd wmfocus
cargo run --features i3
Window manager support
While this tool is window manager-independent, an implementation for your favorite window manager might not yet be available. Current support:
- i3
If you want to implement support for more window managers, have a look at the i3 implementation.
This tool is heavily inspired by i3-easyfocus.
Releasing
This is mostly a note for me on how to release this thing:
- Update
README.md
,Cargo.toml
. git commit
andgit tag -s
,git push
.cargo publish
- Releases will automatically be deployed by Travis.
- Update AUR package.