wmfocus - Visually focus windows by label

Build Status AUR Crates.io dependency status license

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 (CSS notation) [default: #dddddd] --textcoloralt Text color alternate (CSS notation) [default: #666666] --bgcolor Background color (CSS notation) [default: rgba(30, 30, 30, 0.9)] --halign Horizontal alignment of the box inside the window [default: left] [possible values: left, center, right] --valign Vertical alignment of the box inside the window [default: top] [possible values: top, center, bottom] -f, --font Use a specific TrueType font with this format: family:size [default: Mono:72] -c, --chars Define a set of possbile values to use as hint characters [default: sadfjklewcmpgh] -m, --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:

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: