8 releases (5 breaking)
0.6.0 | May 29, 2024 |
---|---|
0.5.0 | May 18, 2023 |
0.4.1 | Feb 22, 2023 |
0.4.0 | Mar 12, 2022 |
0.1.0 | Feb 20, 2021 |
#901 in GUI
24KB
257 lines
Put Icons On Workspaces
Rename sway workspaces with icons according to the applications running on them. It constructs the name based on a format string from the config. Duplicate icons are stripped from the list.
With a space as separator and waybar, it looks like this:
Installation & Usage
Build and install from source with cargo. Then simply run the executable. See piow --help
for
supported cli options.
# install
cargo install piow
# run
piow
# increase log level for troubleshooting, possible values: Trace, Debug, Info, Warn, Error
RUST_LOG=piow=Debug piow
Configuration
piow
looks for a configuration file in toml format in ${XDG_CONFIG_HOME}/piow/config.toml
and
/etc/xdg/piow/config.toml
(former takes precedence). If it can't find this file, it loads the
default configuration contained in this repo. The configuration contains a map of application names
to icons, a default icon and a separator between workspaces number and icons. For getting started,
just copy default.toml
over to ${XDG_CONFIG_HOME}/piow/config.toml
and start adding your own
icons.
Configuration Key | Description |
---|---|
default_icon |
Icon used for apps without a configured icon |
format_str |
Format string for generating names. Supported placeholders:%n : Workspace number%i : Icons |
icon_separator |
Literal between icons |
[icons] |
paris of "app-id" = "icon" , app id as reported by swaymsg -t get_tree , matches substrings, e.g. an entry 'libre' will be matched for 'libreoffice' |
Watch the log for messages like [WARN piow::nodes] No icon for application 'app-name' in the config.
to find applications without a config entry. Just add a line "app-name" = "icon"
to the
end of the config file and restart piow. The crate find_unicode is awesome for finding suitable
icons on the command line.
Setup with sway & waybar
Add the following to your sway config file at ${XDG_CONFIG_HOME}/sway/config
. By forwarding the
log you get access to application names without a icon in the config.
exec_always --no-startup-id piow --syslog
It's useful to turn of additional renaming in waybar, e.g. remove "format"
and "format-icon"
from the sway/workspaces
directive in the waybar config similar to this:
sway/workspaces {
"disable-scroll": true,
"all-outputs": true
}
Hint: If you remove the workspace number placeholder
%i
from the format string, the ordering of the workspaces may no longer work as intended.
Similar Projects
Workstyle has a similar approach but uses the i3 IPC connection. The config file format was inspired by this crate.
Dependencies
~12–24MB
~359K SLoC