#!/usr/bin/env python3 import sys import subprocess import json FILTER = sys.argv[1:] I3_WORKSPACES = ['i3-msg', '-t', 'get_workspaces'] I3_RENAME = ['i3-msg', 'rename', 'workspace', 'to'] ESCAPE = [ ['\\', '\\\\'], ['"', '\\"' ], ] def run(*args): return subprocess.check_output(args, text=True).strip() def name(): for workspace in json.loads(run(*I3_WORKSPACES)): if workspace['focused']: return workspace['name'] def filter(value): return run(*FILTER, value) def rename(value): for old, new in ESCAPE: value.replace(old, new) run(*I3_RENAME, f'"{value}"') rename(filter(name()))