diff --git a/includes/usr/bin/launch_browser b/includes/usr/bin/launch_browser index 74ef1c8..104703d 100755 --- a/includes/usr/bin/launch_browser +++ b/includes/usr/bin/launch_browser @@ -1,33 +1,37 @@ #!/bin/bash -set -e -# --- Opciones del wrapper original --- -BROWSER_DEBUG= -DISABLE_WAYLAND=1 -DISABLE_X11= - -while getopts ":qwsDWX" opt; do - case "$opt" in +# Compatibilidad con los argumentos usados con el browser original: browser -qws http://google.com +while getopts ":qwsDWX" opt ; do +case $opt in q) echo "Ignoring option: -q" ;; w) echo "Ignoring option: -w" ;; s) echo "Ignoring option: -s" ;; D) BROWSER_DEBUG=1 ;; W) DISABLE_WAYLAND=1 ;; X) DISABLE_X11=1 ;; - esac + esac done -shift $((OPTIND - 1)) -browser_args="$*" +shift $(expr $OPTIND - 1) + +browser_args="$@" + echo "Browser args: $browser_args" + [ -n "$DISABLE_WAYLAND" ] && echo "WAYLAND DISABLED" [ -n "$DISABLE_X11" ] && echo "X11 DISABLED" -[ -n "$BROWSER_DEBUG" ] && { - echo "DEBUG MODE ENABLED" - echo "* Terminal available via Win+Enter" - echo "* Session may be killed with Ctrl+Alt+Backspace" - echo -} + +if [ -n "BROWSER_DEBUG" ] ; then + echo "DEBUG MODE ENABLED" + echo "* Terminal available via Win+Enter" + echo "* Session may be killed with Ctrl+Alt+Backspace" + echo "" +fi + +[ -x "/usr/bin/kitty" ] && wl_terminal=/usr/bin/kitty +[ -x "/usr/bin/foot" ] && wl_terminal=/usr/bin/foot +#[ -x "/usr/bin/xterm" ] && x11_terminal=/usr/bin/kitty +#[ -x "/usr/bin/i3-sensible-terminal" ] && x11_terminal=/usr/bin/i3-sensible-terminal # --- El navegador y flags (QtWebEngine/Chromium) --- # Seguridad: desactiva CORS si lo necesitas realmente (como en tu script original) @@ -43,96 +47,66 @@ fi export QTWEBENGINE_CHROMIUM_FLAGS # Entorno Qt (software puro; X11 por xcb) -export QT_QPA_PLATFORM=linuxfb +export QT_QPA_PLATFORM=xcb export QSG_RHI_BACKEND=software export QT_QUICK_BACKEND=software export LIBGL_ALWAYS_SOFTWARE=1 export QT_XCB_GL_INTEGRATION=none -# XDG runtime (Chromium lo usa). Para root: -if [ -z "${XDG_RUNTIME_DIR:-}" ]; then - export XDG_RUNTIME_DIR="/run/user/$EUID" + +## sway +mkdir -p $HOME/.config/sway +echo "exec /usr/bin/OGBrowser --ignore-ssl-errors \"$browser_args\"" > $HOME/.config/sway/config +if [ -n "BROWSER_DEBUG" ] ; then + echo "bindsym Mod4+Return exec $wl_terminal" >> $HOME/.config/sway/config + echo "bindsym Control+Alt+Backspace exit" >> $HOME/.config/sway/config fi -mkdir -p "$XDG_RUNTIME_DIR" 2>/dev/null || true -chmod 700 "$XDG_RUNTIME_DIR" 2>/dev/null || true +echo "exec touch /run/sway.started" >> $HOME/.config/sway/config -# Terminals opcionales para debug -wl_terminal= -x11_terminal= -[ -x "/usr/bin/kitty" ] && wl_terminal=/usr/bin/kitty -[ -x "/usr/bin/foot" ] && wl_terminal=${wl_terminal:-/usr/bin/foot} -[ -x "/usr/bin/i3-sensible-terminal" ] && x11_terminal=/usr/bin/i3-sensible-terminal -[ -z "$x11_terminal" ] && [ -x /usr/bin/xterm ] && x11_terminal=/usr/bin/xterm +## i3 +mkdir -p $HOME/.config/i3 +echo "exec /usr/bin/OGBrowser --ignore-ssl-errors \"$browser_args\"" > $HOME/.config/i3/config +if [ -n "BROWSER_DEBUG" ] ; then + echo "bindsym Mod4+Return exec i3-sensible-terminal" >> $HOME/.config/i3/config + echo "bindsym Control+Mod1+BackSpace exit" >> $HOME/.config/i3/config +fi +echo "exec touch /run/x11.started" >> $HOME/.config/i3/config -# --- Generar configuración de sway (si procede) --- -if [ -z "$DISABLE_WAYLAND" ]; then - mkdir -p "$HOME/.config/sway" - { - echo "exec /usr/bin/OGBrowser --ignore-ssl-errors \"$browser_args\"" - if [ -n "$BROWSER_DEBUG" ] && [ -n "$wl_terminal" ]; then - echo "bindsym Mod4+Return exec $wl_terminal" - echo "bindsym Control+Alt+Backspace exec swaymsg exit" +## xinitrc +if [[ -z $DBUS_SESSION_BUS_ADDRESS ]]; then eval $(cat /proc/$(pidof OGAgent)/environ |sed -e 's/\x00/\x0a/g' |grep DBUS_SESSION_BUS_ADDRESS); fi +echo "export DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS" > $HOME/.xinitrc +echo "exec /usr/bin/i3" >> $HOME/.xinitrc +echo "exec /usr/bin/xterm" >> $HOME/.xinitrc + + +# Make sure libinput works +/usr/bin/udevadm trigger + + +## go +rm -rf "/run/sway.started" "/run/x11.started" + +if [ -x "/usr/bin/sway" -a -z "$DISABLE_WAYLAND" ] ; then + echo "*** Trying to launch Sway ***" + /usr/bin/sway +else + echo Sway not installed in this image, skipping. +fi + +if [ ! -f "/run/sway.started" -a -z "$DISABLE_X11" ] ; then + if [ -x "/usr/bin/startx" ] ; then + echo "*** Trying to launch X11 ***" + /usr/bin/startx + else + echo X11 not installed in this image, skipping. fi - echo "exec touch /run/sway.started" - } > "$HOME/.config/sway/config" -fi - -# --- Generar configuración de i3 (v4, válida) --- -mkdir -p "$HOME/.config/i3" -{ - echo 'set $mod Mod4' - echo 'font pango:monospace 10' - # Ejecutar OGBrowser con todas las vars en UNA sola línea - echo "exec --no-startup-id env QT_QPA_PLATFORM=\$QT_QPA_PLATFORM QSG_RHI_BACKEND=\$QSG_RHI_BACKEND QT_QUICK_BACKEND=\$QT_QUICK_BACKEND LIBGL_ALWAYS_SOFTWARE=\$LIBGL_ALWAYS_SOFTWARE QT_XCB_GL_INTEGRATION=\$QT_XCB_GL_INTEGRATION QTWEBENGINE_CHROMIUM_FLAGS=\"\$QTWEBENGINE_CHROMIUM_FLAGS\" XDG_RUNTIME_DIR=\"\$XDG_RUNTIME_DIR\" /usr/bin/OGBrowser --ignore-ssl-errors \"$browser_args\"" - if [ -n "$BROWSER_DEBUG" ] && [ -n "$x11_terminal" ]; then - echo "bindsym \$mod+Return exec $x11_terminal" - echo "bindsym Control+Mod1+BackSpace exit" - fi - echo 'exec --no-startup-id /usr/bin/touch /run/x11.started' - # Barra (bien formada). Si no la quieres, comenta este bloque entero. - echo 'bar {' - echo ' status_command i3status' - echo ' tray_output none' - echo '}' -} > "$HOME/.config/i3/config" - -# --- .xinitrc limpio: un solo exec, con D-Bus de sesión --- -mkdir -p "$HOME" -cat > "$HOME/.xinitrc" <<'EOF' -#!/bin/sh -exec dbus-run-session i3 -EOF -chmod +x "$HOME/.xinitrc" - -# Asegura libinput (como ya hacías) -[ -x /usr/bin/udevadm ] && /usr/bin/udevadm trigger || true - -# Flags de control de arranque -rm -f "/run/sway.started" "/run/x11.started" - -# --- Lanzar sesión --- -if [ -x "/usr/bin/sway" ] && [ -z "$DISABLE_WAYLAND" ]; then - echo "*** Trying to launch Sway ***" - /usr/bin/sway || echo "Sway failed, falling back to X11..." else - echo "Sway not installed in this image, skipping." + echo "Sway was run before, not starting X11". fi -if [ ! -f "/run/sway.started" ] && [ -z "$DISABLE_X11" ]; then - if [ -x "/usr/bin/startx" ]; then - echo "*** Trying to launch X11 ***" - /usr/bin/startx - else - echo "X11 not installed in this image, skipping." - fi +if [ ! -f "/run/sway.started" -a ! -f "/run/x11.started" ] ; then + echo "Everything failed, dropping into a shell." + exec /usr/bin/bash else - echo "Sway was run before, not starting X11." + echo "All done." fi - -if [ ! -f "/run/sway.started" ] && [ ! -f "/run/x11.started" ]; then - echo "Everything failed, dropping into a shell." - exec /usr/bin/bash -else - echo "All done." -fi -