#!/usr/bin/env python3 import sys import json import os file = os.environ['DOTFILES_PATH'] + '/.bspwm-state.json.tmp' source = open(sys.argv[1]) if len(sys.argv) > 1 else sys.stdin state = json.load(source) def print_rules(prefix, node, path): if node is None: return elif node['client'] is None: print_rules(prefix, node['firstChild'], path+['1']) print_rules(prefix, node['secondChild'], path+['2']) else: client = node['client'] print('bspc rule -a {}:{} -o node={}{}'.format(client['className'], client['instanceName'], prefix, '/'.join(path))) for i, monitor in enumerate(state['monitors']): for j, desktop in enumerate(monitor['desktops']): print_rules('@^{}:^{}:/'.format(i+1, j+1), desktop['root'], [])