gtkui: force GIO unix volume monitor so file choosers don't hang on dbus; Settings + panel open again; Release 1.8.1
On headless/minimal desktops the gvfs org.gtk.vfs.UDisks2VolumeMonitor dbus service often fails to activate; each Gtk.FileChooserButton then blocked ~25s on a StartServiceByName timeout while realizing, so the Settings dialog never appeared and the stalled main loop froze the control panel too. Set GIO_USE_VOLUME_MONITOR=unix in run_gui() before any window is realized. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
28020fdeda
commit
0d4ad0920d
@ -9,6 +9,18 @@ The version is defined in [`blitztext/__init__.py`](blitztext/__init__.py).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
## [1.8.1] - 2026-06-08
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Settings dialog and control panel wouldn't open on some desktops.** When the
|
||||||
|
gvfs `org.gtk.vfs.UDisks2VolumeMonitor` dbus service fails to activate (common
|
||||||
|
on headless or minimal sessions), every `Gtk.FileChooserButton` blocked ~25s on
|
||||||
|
a `StartServiceByName` timeout while realizing — so the Settings dialog never
|
||||||
|
finished appearing, and the stalled GTK main loop froze the panel too. Blitztext
|
||||||
|
now selects GIO's native `/proc/mounts` volume monitor
|
||||||
|
(`GIO_USE_VOLUME_MONITOR=unix`) before any window is realized, so file choosers
|
||||||
|
open instantly with no dbus dependency.
|
||||||
|
|
||||||
## [1.8.0] - 2026-06-08
|
## [1.8.0] - 2026-06-08
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@ -6,4 +6,4 @@ counterpart to the macOS Blitztext menu bar app: it runs natively on the host
|
|||||||
(not in a container) so it can type into any application via xdotool.
|
(not in a container) so it can type into any application via xdotool.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__version__ = "1.8.0"
|
__version__ = "1.8.1"
|
||||||
|
|||||||
@ -408,6 +408,13 @@ class App:
|
|||||||
|
|
||||||
|
|
||||||
def run_gui(tray_mode: bool = False) -> int:
|
def run_gui(tray_mode: bool = False) -> int:
|
||||||
|
# Use GIO's native /proc/mounts volume monitor instead of the gvfs/udisks2
|
||||||
|
# one. On headless or minimal desktops the `org.gtk.vfs.UDisks2VolumeMonitor`
|
||||||
|
# dbus service often fails to activate, and every Gtk.FileChooserButton then
|
||||||
|
# blocks ~25s on a StartServiceByName timeout while realizing — which freezes
|
||||||
|
# the settings dialog (and, via the stalled main loop, the panel) so neither
|
||||||
|
# ever appears. The unix monitor needs no dbus and opens choosers instantly.
|
||||||
|
os.environ.setdefault("GIO_USE_VOLUME_MONITOR", "unix")
|
||||||
# Identify to the window manager as "blitztext" rather than the Python entry
|
# Identify to the window manager as "blitztext" rather than the Python entry
|
||||||
# point's filename. Launched via `python -m blitztext`, GTK's default program
|
# point's filename. Launched via `python -m blitztext`, GTK's default program
|
||||||
# name is argv[0]'s basename ("__main__.py"), which is what shows in the
|
# name is argv[0]'s basename ("__main__.py"), which is what shows in the
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user