Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/svenstaro/wmfocus
Visually focus windows by label
https://github.com/svenstaro/wmfocus
i3 i3wm manager window wm
Last synced: 13 days ago
JSON representation
Visually focus windows by label
- Host: GitHub
- URL: https://github.com/svenstaro/wmfocus
- Owner: svenstaro
- License: mit
- Created: 2018-05-26T13:13:10.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-10-04T04:24:23.000Z (about 1 month ago)
- Last Synced: 2024-10-04T10:34:46.534Z (about 1 month ago)
- Topics: i3, i3wm, manager, window, wm
- Language: Rust
- Homepage:
- Size: 788 KB
- Stars: 222
- Watchers: 5
- Forks: 20
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# wmfocus - Visually focus windows by label
[![CI](https://github.com/svenstaro/wmfocus/workflows/CI/badge.svg)](https://github.com/svenstaro/wmfocus/actions)
[![Crates.io](https://img.shields.io/crates/v/wmfocus.svg)](https://crates.io/crates/wmfocus)
[![license](http://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/svenstaro/wmfocus/blob/master/LICENSE)
[![Stars](https://img.shields.io/github/stars/svenstaro/wmfocus.svg)](https://github.com/svenstaro/wmfocus/stargazers)
[![Lines of Code](https://tokei.rs/b1/github/svenstaro/wmfocus)](https://github.com/svenstaro/wmfocus)This tool that allows you to rapidly choose a specific window directly without having to use the mouse or directional keyboard navigation.
![Screen cast](cast.apng)
Thanks to cairo, it should work on all kinds of screens and automatically display at the correct size according to your DPI.
## Installation
**On Arch Linux**: `pacman -S wmfocus`
**With Cargo**: `cargo install --features i3 wmfocus`
## Usage
Draw labels on the upper-left corner of all windows:
wmfocus
Completely fill out windows and draw the label in the middle (try it with transparency!):
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.5.0Sven-Hendrik Haase
Visually focus windows by label
USAGE:
wmfocus [OPTIONS]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)"]
--textcolorcurrent Text color current window (CSS notation) [default: #333333]
--textcolorcurrentalt Text color current window alternate (CSS notation) [default: #999999]
--bgcolorcurrent Background color current window (CSS notation) [default: "rgba(200, 200, 200, 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]
--fill Completely fill out windows
-c, --chars Define a set of possbile values to use as hint characters [default: sadfjklewcmpgh]
-e, --exit-keys ... List of keys to exit application, sequences separator is space, key separator is '+', eg Control_L+g
Shift_L+f
-f, --font Use a specific TrueType font with this format: family:size [default: Mono:72]
-h, --help Print help information
-m, --margin Add an additional margin around the text box (value is a factor of the box size) [default: 0.2]
-o, --offset Offset box from edge of window relative to alignment (x,y) [default: 0,0]
-p, --print-only Print the window id only but don't change focus
-V, --version Print version information
```## Troubleshooting
If there's some funky stuff, you can try to track it down by running `wmfocus` with `RUST_LOG=trace`:
RUST_LOG=trace wmfocus
This will print quite some useful debugging info.
## 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
- sway (partial, accepting PRs)If you want to implement support for more window managers, have a look at the [i3 implementation](https://github.com/svenstaro/wmfocus/blob/master/src/wm_i3.rs).
This tool is heavily inspired by [i3-easyfocus](https://github.com/cornerman/i3-easyfocus).
## Releasing
This is mostly a note for me on how to release this thing:
- `cargo release`
- `cargo release --execute`
- Release will automatically be deployed by GitHub Actions.
- Update Arch package.