Skip to content

Latest commit

 

History

History
78 lines (67 loc) · 1.62 KB

readme.md

File metadata and controls

78 lines (67 loc) · 1.62 KB

Dynamic i3 workspace names

This Python script listens i3 ipc messages and dynamically changes the names of the workspaces to the lowercase variant of one window in the workspace prefixed by workspace index. For example by moving Gnome terminal to the workspace 7 the workspace will be renamed to 7:gnome-terminal

This functionality can then be used e.g. in Polybar to display custom icons for workspaces based on opened apps with following sample config for Polybar i3 module:

[module/i3]
< rest of i3 module the config here >

fuzzy-match = true
ws-icon-0 = 1;
ws-icon-1 = 2;
ws-icon-2 = 3;
ws-icon-3 = 4;
ws-icon-4 = 5;
ws-icon-5 = 6;
ws-icon-6 = jetbrains;
ws-icon-7 = firefox;
ws-icon-8 = terminal;
ws-icon-9 = telegram;
ws-icon-10 = spotify;
ws-icon-11 = nautilus;
ws-icon-12 = vim;
ws-icon-13 = sublime;
ws-icon-14 = chrome;
ws-icon-15 = chromium;
ws-icon-16 = slack;
ws-icon-17 = 10;
ws-icon-default = 

Install

Pip

pip3 install .

Arch/Pacman

cd dist/
makepkg
sudo pacman -U *.tar.zst

How to run

The script can be run manually by

i3-dynamic-workspace-names

but preferably you should add the following to your i3 config:

exec_always --no-startup-id i3-dynamic-workspace-names -c <path to config file>

Configuration

You can define settings by configuring them to the config file and starting the application by:

i3-dynamic-workspace-names -c <path to config file>

Supported configuration options:

[Behavior]
; Indexes of workspaces which should be named dynamically
DynamicWorkspaceIndexes = [1, 2, 3]