# browser.sh # Craig Jennings # Browser wrapper functions for Wayland sessions # Open URL(s) in Chrome, handling Wayland display detection # Usage: open-chrome "https://example.com" "https://another.com" open-chrome() { local wayland_socket wayland_socket=$(ls /run/user/$(id -u)/wayland-* 2>/dev/null | head -1 | xargs -r basename) WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-$wayland_socket}" \ XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \ /opt/google/chrome/chrome "$@" &>/dev/null & } # Open URL(s) in Firefox, handling Wayland display detection # Usage: open-firefox "https://example.com" open-firefox() { local wayland_socket wayland_socket=$(ls /run/user/$(id -u)/wayland-* 2>/dev/null | head -1 | xargs -r basename) WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-$wayland_socket}" \ XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \ /usr/bin/firefox "$@" &>/dev/null & } # Generic URL opener using xdg-open # Usage: open-url "https://example.com" open-url() { local wayland_socket wayland_socket=$(ls /run/user/$(id -u)/wayland-* 2>/dev/null | head -1 | xargs -r basename) WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-$wayland_socket}" \ XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \ xdg-open "$@" &>/dev/null & }