diff --git a/linux/CHANGELOG.md b/linux/CHANGELOG.md index 4177c81..b76bdfa 100644 --- a/linux/CHANGELOG.md +++ b/linux/CHANGELOG.md @@ -9,6 +9,18 @@ The version is defined in [`blitztext/__init__.py`](blitztext/__init__.py). ## [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 ### Added diff --git a/linux/blitztext/__init__.py b/linux/blitztext/__init__.py index 0acab2b..eb6640e 100644 --- a/linux/blitztext/__init__.py +++ b/linux/blitztext/__init__.py @@ -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. """ -__version__ = "1.8.0" +__version__ = "1.8.1" diff --git a/linux/blitztext/gtkui.py b/linux/blitztext/gtkui.py index 61372a4..6e55d35 100644 --- a/linux/blitztext/gtkui.py +++ b/linux/blitztext/gtkui.py @@ -408,6 +408,13 @@ class App: 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 # 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