mirror of
https://github.com/DeeJanuz/frametop.git
synced 2026-10-24 23:00:43 +02:00
Opened in the Frametop desktop, the app has that session's private bus (dbus-run-session), and host() passed it to distrobox-host-exec. On it `systemctl --user` on the host can't find the user manager, so the Voice switch failed with "Failed to connect to user scope bus via local transport: No such file or directory" and the page couldn't tell whether voice was on. host() now runs its commands with the host's own /run/user/UID/bus; the app keeps the session bus for itself. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
18 lines
1.0 KiB
Bash
Executable File
18 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Launch Frametop Input Settings from a Plasma session on the Frame host.
|
|
# The app runs in Frametop's container (PySide6 and Kirigami come from Fedora there).
|
|
# podman needs the real XDG_RUNTIME_DIR and the real user bus (to reach systemd for
|
|
# the container's cgroup; the Frametop session runs on a private bus from
|
|
# dbus-run-session). The session's Wayland socket and bus go to the app itself; its
|
|
# commands on the host (host() in ft_input_settings.py) use the real user bus again.
|
|
here=$(cd "$(dirname "$(readlink -f "$0")")" && pwd)
|
|
wl=${WAYLAND_DISPLAY:-wayland-0}
|
|
case $wl in /*) ;; *) wl="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}/$wl" ;; esac
|
|
session_bus=${DBUS_SESSION_BUS_ADDRESS:-}
|
|
export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
|
export DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus
|
|
exec "$here/../scripts/in-box" env WAYLAND_DISPLAY="$wl" DISPLAY="${DISPLAY:-}" \
|
|
XAUTHORITY="${XAUTHORITY:-}" DBUS_SESSION_BUS_ADDRESS="$session_bus" \
|
|
QT_QPA_PLATFORM="wayland;xcb" \
|
|
python3 "$here/ft_input_settings.py" "$@"
|