#!/bin/sh ### Wird per Ein-Zeilen-Sed-Patch (siehe initrd-hooks/casper-bottom/99casperboot) ### GANZ AM ANFANG von start-ubiquity-dm eingebunden ("."), also BEVOR ### ubiquity-dm den X-Server startet und Ubiquity selbst exec't. ### ### Zweck: die AT-SPI-Barrierefreiheits-Bruecke (atk-bridge) fuer Ubiquitys ### GTK-Prozess aktivieren, damit atspi_click.py (siehe ### /opt/tuxflotte/scripts/) Buttons ueber ihre Rolle/ihren Namen im ### Accessibility-Baum anklicken kann statt ueber Bildschirmkoordinaten. ### Der xdotool-Koordinaten-Ansatz ist an ueberlappenden X11-Fenstern durch ### die Metacity-Fensterdekoration gescheitert (mehrere Fenster aehnlicher ### Groesse, "groesstes Fenster"-Heuristik traf wiederholt das falsche - ### siehe ADR-0023-Nachtrag). ### ### WICHTIG: das muss VOR dem GTK-Init von Ubiquity passieren - eine erst ### nachtraeglich verfuegbare Bruecke wird von einer bereits laufenden ### GTK-Anwendung nicht mehr nachgeladen (GTK_MODULES wird nur beim Start ### ausgewertet). Deshalb blockierend (kein Hintergrund-"&" fuer die ### Paketinstallation) und deshalb im Skript, das ubiquity-dm selbst ### aufruft, statt im spaeter laufenden Autoklicker-Service. ### ### Absichtlich EIN gemeinsamer apt-get-Aufruf fuer alle drei Pakete (statt ### getrennter Aufrufe je Skript) - der Autoklicker installiert xdotool ### zeitlich nah, ein zweiter paralleler apt-get/dpkg-Aufruf haette real ### beobachtete Lock-Konflikte riskiert (debconf: "config.dat is locked by ### another process"). for pkg in at-spi2-core dbus-x11 python3-pyatspi; do dpkg -s "$pkg" >/dev/null 2>&1 && continue if [ "${_tuxflotte_atspi_apt_updated:-}" != "1" ]; then apt-get update -qq _tuxflotte_atspi_apt_updated=1 fi DEBIAN_FRONTEND=noninteractive apt-get install -y "$pkg" done export GTK_MODULES="gail:atk-bridge" export NO_AT_BRIDGE=0 # Eigene Session-Bus-Instanz, falls keine geerbt wurde - die minimale # ubiquity-dm-X-Sitzung startet anders als eine normale Desktop-Sitzung # vermutlich keinen eigenen Session-Bus. if [ -z "${DBUS_SESSION_BUS_ADDRESS:-}" ] && command -v dbus-launch >/dev/null 2>&1; then eval "$(dbus-launch --sh-syntax)" export DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID fi if command -v at-spi-bus-launcher >/dev/null 2>&1; then at-spi-bus-launcher --launch-immediately >/var/log/tuxflotte-atspi-bus.log 2>&1 & # Kurz abwarten, bis der a11y-Bus unter org.a11y.Bus registriert ist, # bevor ubiquity-dm/Ubiquity (naechste Zeile in start-ubiquity-dm) # GTK initialisiert. sleep 1 fi