summaryrefslogtreecommitdiff
path: root/src/caelestia/subcommands/pip.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/caelestia/subcommands/pip.py')
-rw-r--r--src/caelestia/subcommands/pip.py46
1 files changed, 0 insertions, 46 deletions
diff --git a/src/caelestia/subcommands/pip.py b/src/caelestia/subcommands/pip.py
deleted file mode 100644
index 6f4727d..0000000
--- a/src/caelestia/subcommands/pip.py
+++ /dev/null
@@ -1,46 +0,0 @@
-import re
-import socket
-from argparse import Namespace
-
-from caelestia.utils import hypr
-
-
-class Command:
- args: Namespace
-
- def __init__(self, args: Namespace) -> None:
- self.args = args
-
- def run(self) -> None:
- if self.args.daemon:
- self.daemon()
- else:
- win = hypr.message("activewindow")
- if win["floating"]:
- self.handle_window(win["address"], win["workspace"]["name"])
-
- def handle_window(self, address: str, ws: str) -> None:
- mon_id = next(w for w in hypr.message("workspaces") if w["name"] == ws)["monitorID"]
- mon = next(m for m in hypr.message("monitors") if m["id"] == mon_id)
- width, height = next(c for c in hypr.message("clients") if c["address"] == address)["size"]
-
- scale_factor = mon["height"] / 4 / height
- scaled_win_size = f"{int(width * scale_factor)} {int(height * scale_factor)}"
- off = min(mon["width"], mon["height"]) * 0.03
- move_to = f"{int(mon['x']) + int(mon['width'] - off - width * scale_factor)} {int(mon['y']) + int(mon['height'] - off - height * scale_factor)}"
-
- hypr.batch(
- f"dispatch resizewindowpixel exact {scaled_win_size},address:{address}",
- f"dispatch movewindowpixel exact {move_to},address:{address}",
- )
-
- def daemon(self) -> None:
- with socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) as sock:
- sock.connect(hypr.socket2_path)
-
- while True:
- data = sock.recv(4096).decode()
- if data.startswith("openwindow>>"):
- address, ws, cls, title = data[12:].split(",")
- if re.match(r"^[Pp]icture(-| )in(-| )[Pp]icture$", title):
- self.handle_window(f"0x{address}", ws)