Beispiel #1
0
 def loop(self):
     self.i3ev = subscribe(self.listener, I3_IPC_EVENT_WORKSPACE)
     while self.i3ev.is_alive():
         pass
Beispiel #2
0
 def loop(self):
     self.i3ev = subscribe(self.listener, Events.WORKSPACE)
     while self.i3ev.is_alive():
         pass

def group_name(wsname):
    return wsname.split('::')[-1] if '::' in wsname else ''


def workspace_handler(_, data):
    if data['change'] == 'focus':
        output = data['current']['output']
        name = data['current']['name']
        group = group_name(name)

        if not focus.has_key(group):
            focus[group] = dict()
        focus[group][output] = name


focus = dict()
if not i3.subscribe(['workspace'], workspace_handler):
    raise

if os.path.exists(SOCKET_PATH):
    os.unlink(SOCKET_PATH)
s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.bind(SOCKET_PATH)
s.listen(1)
while True:
    c, _ = s.accept()
    c.send(json.dumps(focus))
    c.close()