blob: d311c46e8c5b7ddace31f03bba2049ca69401ee0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#!/usr/bin/env python
from json import loads
from os import popen
from sys import argv
def ipc_query(req="command", msg=""):
ans = popen("i3-msg -t " + req + " " + msg).readlines()[0]
return loads(ans)
if __name__ == "__main__":
# Usage & checking args
if len(argv) != 2:
print ("Usage: switch-workspace.py name-of-workspace")
exit(-1)
newworkspace = argv[1]
# Retrieving active display
active_display = None
old_display = None
for w in ipc_query(req="get_workspaces"):
if w['focused']:
active_display = w['output']
if w['name'] == newworkspace:
old_display = w['output']
if newworkspace.isdigit() and w['num'] == int(newworkspace):
old_display = w['output']
print (w)
# Pre-computing commands
if newworkspace.isdigit():
cmd_show = "workspace number " + newworkspace
else:
cmd_show = "workspace " + newworkspace
cmd_move = "move workspace to output " + active_display
# Moving workspace to active display
if active_display == old_display:
print (cmd_show)
print (ipc_query(msg=cmd_show))
else:
cmd="'" + cmd_show + ";" + cmd_move + ";" + cmd_show + "'"
print (cmd)
print (ipc_query(msg=cmd))
|