#!/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)}")