feat: added multi-head workspace switcher script
This commit is contained in:
parent
65dafe2749
commit
2afd3e846f
56
bin/swws.py
Executable file
56
bin/swws.py
Executable file
@ -0,0 +1,56 @@
|
||||
#!/usr/bin/python
|
||||
# thanks to dalahast < https://git.dotya.ml/dalahast >
|
||||
|
||||
import json,sys,subprocess
|
||||
|
||||
args = sys.argv
|
||||
if len(args) > 2:
|
||||
a = args[2]
|
||||
else:
|
||||
a = ""
|
||||
ws = args[1]
|
||||
ws10 = str(10+int(ws))
|
||||
msg = json.loads(subprocess.run(["swaymsg", "-t", "get_workspaces"], stdout=subprocess.PIPE).stdout.decode('utf-8'))
|
||||
|
||||
def expl_pick(mon_type):
|
||||
if mon_type == "eDP-1":
|
||||
subprocess.run(["swaymsg", "focus", "output", "HDMI-A-1"])
|
||||
subprocess.run(["swaymsg", "workspace", ws10])
|
||||
else:
|
||||
subprocess.run(["swaymsg", "focus", "output", "eDP-1"])
|
||||
subprocess.run(["swaymsg", "workspace", ws])
|
||||
|
||||
def mov_to(mon_type):
|
||||
if mon_type == "eDP-1":
|
||||
subprocess.run(["swaymsg", "move", "container", "to", "workspace", ws])
|
||||
else:
|
||||
subprocess.run(["swaymsg", "move", "container", "to", "workspace", ws10])
|
||||
|
||||
def mov_to_next_mon(mon_type):
|
||||
if mon_type == "eDP-1":
|
||||
subprocess.run(["swaymsg", "move", "container", "to", "workspace", ws10])
|
||||
else:
|
||||
subprocess.run(["swaymsg", "move", "container", "to", "workspace", ws])
|
||||
|
||||
def wssw(mon_type):
|
||||
if a == '-c':
|
||||
expl_pick(mon_type)
|
||||
elif a == '-s':
|
||||
mov_to(mon_type)
|
||||
elif a == '-t':
|
||||
mov_to_next_mon(mon_type)
|
||||
|
||||
for i in range(len(msg)):
|
||||
if msg[i]["focused"] == True:
|
||||
if msg[i]["output"] == "eDP-1":
|
||||
if not a:
|
||||
subprocess.run(["swaymsg", "workspace", ws])
|
||||
else:
|
||||
mon_type = "eDP-1"
|
||||
wssw(mon_type)
|
||||
if msg[i]["output"] == "HDMI-A-1":
|
||||
if not a:
|
||||
subprocess.run(["swaymsg", "workspace", ws10])
|
||||
else:
|
||||
mon_type = "HDMI-A-1"
|
||||
wssw(mon_type)
|
Loading…
Reference in New Issue
Block a user