diff --git a/bin/swws.py b/bin/swws.py new file mode 100755 index 0000000..9fe0a55 --- /dev/null +++ b/bin/swws.py @@ -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)