Skip to content

Commit 1af0daa

Browse files
committed
πŸ› fix: fix: ORCA screen reader not working on pre-Calamares screen
The pre-Calamares GTK4 app runs as root via sudo, which disconnects it from the user's AT-SPI2 accessibility bus. ORCA could not read the app widgets because root had no access to the accessibility bus at /run/user/<uid>/at-spi/bus_0. - calamares-biglinux_polkit: query the AT-SPI2 bus address via D-Bus (org.a11y.Bus.GetAddress) before elevating to root, and pass AT_SPI_BUS_ADDRESS as an environment variable to the sudo process. This allows the GTK4 app to register with the user's AT-SPI2 bus, making it visible to ORCA.
1 parent 3d0248a commit 1af0daa

2 files changed

Lines changed: 10 additions & 2 deletions

File tree

β€Žbiglinux-livecd/usr/bin/calamares-biglinux_polkitβ€Ž

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,13 @@
1212
# Detect user's color scheme preference (prefer-light or prefer-dark)
1313
colorScheme=$(gsettings get org.gnome.desktop.interface color-scheme | tr -d "'")
1414

15+
# Get AT-SPI2 accessibility bus address so ORCA can read the GTK4 app
16+
# even when it runs as root via sudo
17+
AT_SPI_BUS_ADDRESS=$(dbus-send --session --dest=org.a11y.Bus --print-reply \
18+
/org/a11y/bus org.a11y.Bus.GetAddress 2>/dev/null \
19+
| grep 'string "' | sed 's/.*string "//;s/"//')
20+
1521
# Launch Calamares with preserved environment and color scheme override
16-
sudo -E env ADW_DEBUG_COLOR_SCHEME=$colorScheme /usr/bin/calamares "$@"
22+
sudo -E env ADW_DEBUG_COLOR_SCHEME=$colorScheme \
23+
${AT_SPI_BUS_ADDRESS:+AT_SPI_BUS_ADDRESS="$AT_SPI_BUS_ADDRESS"} \
24+
/usr/bin/calamares "$@"

β€Žbiglinux-livecd/usr/share/biglinux/calamares/src/utils/constants.pyβ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# Application Information
1010
APP_NAME = "BigLinux Calamares Config"
1111
APP_ID = "com.biglinux.calamares-config"
12-
APP_VERSION = "1.1.0"
12+
APP_VERSION = "1.1.1"
1313

1414
# Paths and Directories
1515
BASE_DIR = Path(__file__).parent.parent.parent

0 commit comments

Comments
Β (0)