v1
This commit is contained in:
commit
7baa66a92c
1 file changed
+72
@@ -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
|
||||
|
||||
Reference in new issue
Block a user