diff --git a/.config/i3/compact_workspace_numbers.py b/.config/i3/compact_workspace_numbers.py index 84e1a52..9754ec7 100755 --- a/.config/i3/compact_workspace_numbers.py +++ b/.config/i3/compact_workspace_numbers.py @@ -3,22 +3,13 @@ import subprocess import json -exclude_workspaces = (-1, 10) +workspaces = json.loads( + subprocess.check_output(["i3-msg", "-t", "get_workspaces"])) +workspaces = [ws for ws in workspaces if ws['num'] not in (-1, 10)] -def numbered_workspaces(): - workspaces = json.loads(subprocess.run(["i3-msg", "-t", "get_workspaces"], - stdout=subprocess.PIPE).stdout) - return {int(ws['num']): ws for ws in workspaces if ws['num'] not in exclude_workspaces} - -workspaces = sorted(numbered_workspaces().keys()) -num = 1 -print(workspaces) -while len(workspaces) > 0: - ws = numbered_workspaces()[workspaces.pop(0)] - if ws['num'] != num: - new_name = ws['name'].split(":") - new_name[0] = str(num) - print("move", ws['num'], '->', num) - subprocess.run(["i3-msg", "rename", "workspace", - ws['name'], "to", ":".join(new_name)]) - num += 1 +workspaces.sort(key=lambda x: x['num']) +for num, ws in enumerate(workspaces, 1): + name = ws['name'].split(":") + name[0] = str(num) + subprocess.run( + ["i3", "rename", "workspace", ws['name'], "to", ":".join(name)])