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