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:
Build and install from source with cargo. Then simply run the executable. See piow --help
for
supported cli options.
```bash
cargo install piow
piow
RUST_LOG=piow=Debug piow ```
piow
looks for a configuration file in toml format in ${XDG_CONFIG_HOME}/piow/config.toml
. 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 |
|-------------------|------------------------------------------------------------------------------------------------------------|
| defaulticon | Icon used for apps without a configured icon |
| formatstr | Format string for generating names. Supported placeholders:
%n
: Workspace number
%i
: Icons |
| icon_separator | Literal between icons |
| [icons] | (app id, icon) map, app id as reported by swaymsg -t get_tree
|
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.
Add the following to your sway config file at ${XDG_CONFIG_HOME}/sway/config
. By fowarding the
log you get access to application names without a icon in the config.
bash
exec_always --no-startup-id piow > /tmp/piow.log
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:
json
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.
[Workstyle] has a similar approach but uses the i3 IPC connection. The config file format was inspired by this crate.