Skip to main content

flashfocus

Simple focus animations for tiling window managers.

Demo gif


Compatible with sway as well as all X based window managers (i3, bspwm, awesome-wm, xmonad...).

Flashfocus is currently pretty stable and I don't have any major features in the works, however the project is still actively maintained and feature requests are always welcome :)

Installation

For X based window managers, an active window compositor is required for the effects of flashfocus to be noticeable. If you don't have one setup already, I recommend picom.

Arch

Install from the Arch User Repository: flashfocus

Ubuntu/Debian

sudo apt-get install libxcb-render0-dev libffi-dev python-dev python-cffi
pip install flashfocus

Fedora

dnf install libffi-devel python-devel python-cffi
pip install flashfocus

openSUSE

Flashfocus is in the official repository of openSUSE Tumbleweed. openSUSE Leap users can install it from the X11:Utilities devel project:

zypper ar obs://X11:Utilities x11util
zypper ref
zypper in flashfocus

Nix / NixOS

Declaratively in /etc/nixos/configuration.nix

environment.systemPackages = with pkgs; [
  flashfocus
];

Ad hoc

nix-env -iA nixpkgs.flashfocus

Quickstart

Picom setup

The following must be present in your picom config file:

detect-client-opacity = true;

If you use i3, the following is also required for flashfocus to work with tabbed containers:

opacity-rule = [
  "0:_NET_WM_STATE@:32a *= '_NET_WM_STATE_HIDDEN'"
];

Running flashfocus

Flashfocus should be added to your startup programs. E.g for i3 place the following in your config:

exec_always --no-startup-id flashfocus

The flash_window script can be used to flash the current window on key-press. E.g if you'd like to bind to mod+n in i3:

bindsym $mod+n exec --no-startup-id flash_window

Configuration

Flashfocus can be configured via its config file or with command line parameters. Some features, such as window-specific flash customization, are only available through the config file.

The config file is searched for in the following locations:

  1. $XDG_CONFIG_HOME/flashfocus/flashfocus.yml
  2. ~/.config/flashfocus/flashfocus.yml
  3. ~/.flashfocus.yml

When flashfocus is first run it creates a default config file in 1. or 2. Documentation of all configuration options is present in the config file.

See the wiki for some extra docs.

Metadata

Release files for flashfocus 2.9.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flashfocus 2.9.0
File Size Uploaded Provenance Actions
flashfocus-2.9.0.tar.gz 24.7 kB Without provenance Details for flashfocus-2.9.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for flashfocus 2.9.0
File Interpreter ABI Platform Actions
flashfocus-2.9.0-py3-none-any.whl Python 3 none any Details for flashfocus-2.9.0-py3-none-any.whl

Total release size: 54.1 kB

Release files / flashfocus-2.9.0.tar.gz

Download URL flashfocus-2.9.0.tar.gz
Size 24.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ad095102eebcb4d55dfe5bdc8f117825a512c6c91fadbb19171e89b107ef12aa
BLAKE2b-256 checksum
How to use checksums
dc71b69bee3c6d7b328134115bf5d8aaea24a6ecb9f16c8d1a7adcf16d3cee2b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.1

Release files / flashfocus-2.9.0-py3-none-any.whl

Download URL flashfocus-2.9.0-py3-none-any.whl
Size 29.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8f4f607f9416854c5750975dbc62687389a3a9bd904abbcdbafc1b4f6478631
BLAKE2b-256 checksum
How to use checksums
33c58f3f533e6551842fb6966d240b5ea8b913afb18e242ecdb9476980ec73d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.1

Security for flashfocus 2.9.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.9.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page