Is a lightweight golang daemon service that updates your i3 workspace based on the programs that are running in your workspace's windows.
go build .
~ » cat ~/.i3/icons.json
{
"firefox": "\uf269",
"spotify": "\uf1bc",
"chrome": "\uf268",
"code": "\uf121",
"edit": "\uf044",
"nautilus": "\uf07b",
"vlc": "\uf04b",
"terminal": "\uf120",
"_wildcard": "\uf128"
}
# add the following line in your i3 config
exec_always i3-icons -separator "|" -config ~/.i3/icons.json
# change the following confis in order to allow switching and moving workspaces
# from this
bindsym $mod+N workspace N
bindsym $mod+Shift+N move container to workspace N
# to this
bindsym $mod+N workspace number N
bindsym $mod+Shift+N move container to workspace number N