/bspi

:see_no_evil: Icons for bspwm, sort of

Primary LanguagePythonBSD 2-Clause "Simplified" LicenseBSD-2-Clause

bspi

Automatic desktop renamer for bspwm. Similar to btops but interfaces via subprocesses rather than UNIX sockets and focuses on icons.

Recognizes clients and renames desktops accordingly to a pre-configured FontAwesome icon set. Works with polybar.

scrot

Prerequisites:

bspwm (duh), xprop, python3, FontAwesome etc.

Installation:

Arch Linux

Install the package bspi-git from AUR : aura -A bspi-git. Copy the configuration file: cp /usr/share/doc/bspi/bspi.ini ~/.config/bspwm/bspi.ini

Manual

Place the files bspi.py bspi_listen in a directory included in your $PATH. Store a copy of bspi.ini and remember the path. cp bspi.ini ~/.config/bspwm/bspi.ini

Execution

Icons are configured via bspi.ini - you may maintain your own copy and use it with bspi_listen --config path/to/bspi.ini & (add this to your bspwmrc)

The _other key is a fallback for all mismatched window names.

[Icons]
dolphin = 
chromium = 
firefox = 
signal = 
slack = 
spotify = 
termite = 
urxvt = 
tilix = 
alacritty = 
kitty = 
code-oss = 
_other = 

For polybar, make sure the fonts are configured in polybar/config, e.g.

font-3 = Font Awesome 5 Free:pixelsize=20;3
font-4 = Font Awesome 5 Free Solid:pixelsize=20;3
font-5 = Font Awesome 5 Brands:pixelsize=20;3

TODO

  • tests
  • docs
  • screencast gif
  • external configuration

Known issues

Polybar Format Tags won't work for colored icons, bspwm truncates desktop names at 32 bytes.