fix: resolve wifi crashes, shell injections, race conditions, and add debug mode
- Remove transient NEED_AUTH/DISCONNECTED error paths from wifi connect - Guard double-callback in connect_wifi_bssid/connect_wifi_with_password - Shell-quote user paths in wallpaper, screenshot, screenrecorder services - Fix OSD hide-timer use-after-free and applet_window stale source ID - Fix brightness poll timer leak on read failure - Fix spotlight search stale idle source removal - Lock dbusmenu _cache mutation under _registry_lock - Fix entry.revision written outside _registry_lock scope - Add fabric-cli exec wrapper for lock screen (lock_screen.lock()) - Replace hyprlock with lock screen in power menu and dropdown - Add debug mode toggle in settings (controls log verbosity) - Add diagnostic logging to globalmenu click chain
This commit is contained in:
26 files changed
+224
-57
No files matched your search
+2
-4
@@ -20,13 +20,11 @@ def _get_wallpaper_path() -> str:
|
||||
custom = get_config("wallpapers_dir")
|
||||
if custom:
|
||||
return os.path.expanduser(str(custom))
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as e:
|
||||
logger.warning(f"[data] Failed to load wallpapers_dir from config: {e}")
|
||||
return f"{HOME_DIR}/Pictures/Wallpapers"
|
||||
|
||||
|
||||
WALLPAPER_PATH = _get_wallpaper_path()
|
||||
WALLPAPER_THUMBS_PATH = f"{WALLPAPER_PATH}/.thumbnails"
|
||||
WALLPAPERS_THUMBNAILS_SIZE = 200
|
||||
WALLPAPERS_DIR_DEFAULT = get_relative_path("../assets/wallpapers_example/")
|
||||
|
||||
|
||||
@@ -226,8 +226,12 @@ class WiFiPasswordDialog(Window):
|
||||
def _connection_timeout(self):
|
||||
if self.is_connecting:
|
||||
self.is_connecting = False
|
||||
self.join_button.set_sensitive(True)
|
||||
self.show_error("Connection timeout. Please try again.")
|
||||
self.connection_timeout_id = None
|
||||
try:
|
||||
self.join_button.set_sensitive(True)
|
||||
self.show_error("Connection timeout. Please try again.")
|
||||
except Exception:
|
||||
pass
|
||||
return False
|
||||
|
||||
def show_dialog(self):
|
||||
|
||||
@@ -102,4 +102,5 @@ class AppletWindow(PopupWindow):
|
||||
self.dismiss_layer.destroy()
|
||||
if self._hide_timeout_id is not None:
|
||||
GLib.source_remove(self._hide_timeout_id)
|
||||
self._hide_timeout_id = None
|
||||
super().destroy()
|
||||
Reference in new issue
Block a user