From 7baa66a92ca446fc6d73188260cff1f2c3e2ae6d Mon Sep 17 00:00:00 2001 From: Krevos Date: Sun, 30 Aug 2026 21:14:56 +0200 Subject: [PATCH] v1 --- scolia_script.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 scolia_script.sh diff --git a/scolia_script.sh b/scolia_script.sh new file mode 100644 index 0000000..67f375c --- /dev/null +++ b/scolia_script.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +URL="https://example.com" # <-- REPLACE with the real Scolia site URL before running + +CHROME_PROFILE="$HOME/.browser-profiles/chrome-scolia" +FIREFOX_PROFILE="$HOME/.browser-profiles/firefox-scolia" + +mkdir -p "$CHROME_PROFILE" + +# --- Detect connected monitors and their positions via xrandr (X11 only) --- +# Example xrandr line: "HDMI-1 connected 1920x1080+0+0 ..." +mapfile -t MONITORS < <(xrandr --query 2>/dev/null | grep " connected" | grep -oP '\d+x\d+\+\d+\+\d+') + +if [ "${#MONITORS[@]}" -lt 2 ]; then + echo "Warning: fewer than 2 monitors detected (or not running X11). Both windows may open on the same screen." +fi + +# Parse "WxH+X+Y" into width, height, x-offset, y-offset +parse_geom() { + local geom=$1 + WIDTH=$(echo "$geom" | grep -oP '^\d+') + HEIGHT=$(echo "$geom" | grep -oP '(?<=x)\d+') + XOFF=$(echo "$geom" | grep -oP '(?<=\+)\d+(?=\+)') + YOFF=$(echo "$geom" | grep -oP '(?<=\+)\d+$') +} + +# --- Screen 1 -> Chrome --- +if [ "${#MONITORS[@]}" -ge 1 ]; then + parse_geom "${MONITORS[0]}" + CHROME_X=$XOFF + CHROME_Y=$YOFF +else + CHROME_X=0 + CHROME_Y=0 +fi + +google-chrome \ + --user-data-dir="$CHROME_PROFILE" \ + --new-window \ + --window-position="$CHROME_X,$CHROME_Y" \ + "$URL" & + +sleep 2 # give Chrome a moment before launching Firefox + +# --- Screen 2 -> Firefox --- +if [ "${#MONITORS[@]}" -ge 2 ]; then + parse_geom "${MONITORS[1]}" +elif [ "${#MONITORS[@]}" -eq 1 ]; then + parse_geom "${MONITORS[0]}" # fallback: same screen +else + XOFF=0 + YOFF=0 +fi +FIREFOX_X=$XOFF +FIREFOX_Y=$YOFF + +if [ ! -d "$FIREFOX_PROFILE" ]; then + firefox -CreateProfile "scolia $FIREFOX_PROFILE" +fi + +firefox -P "scolia" --new-instance --new-window "$URL" & + +sleep 2 + +# Firefox doesn't support --window-position as a launch flag reliably, +# so we reposition it after launch using wmctrl (X11 only) +if command -v wmctrl &> /dev/null; then + wmctrl -r "Mozilla Firefox" -e 0,"$FIREFOX_X","$FIREFOX_Y",-1,-1 +else + echo "Tip: install 'wmctrl' (sudo apt install wmctrl) for automatic Firefox window positioning." +fi +