i3/.config/i3/compact_workspace_numbers.py

19 lines
537 B
Python
Executable File

#!/usr/bin/env python3
from itertools import groupby
import i3ipc
i3 = i3ipc.Connection()
workspaces = i3.get_workspaces()
for tens, workspace_group in groupby(workspaces, lambda ws: ws.num // 10):
workspaces = [ws for ws in workspace_group
if ws.num != -1 and ws.num % 10 != 0]
workspaces.sort(key=lambda ws: ws.num)
for num, ws in enumerate(workspaces, 1):
name = ws.name.split(":")
name[0] = str(tens * 10 + num)
i3.command(f"rename workspace {ws.name} to {':'.join(name)}")