mirror of
https://github.com/vale981/bspwm
synced 2025-03-06 02:01:42 -05:00
23 lines
818 B
Python
Executable file
23 lines
818 B
Python
Executable file
#! /usr/bin/env python3
|
|
|
|
import sys
|
|
import json
|
|
|
|
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'], [])
|