diff --git a/quickshell/services/LockscreenService.qml b/quickshell/services/LockscreenService.qml index f93c974..60bd8ea 100644 --- a/quickshell/services/LockscreenService.qml +++ b/quickshell/services/LockscreenService.qml @@ -100,11 +100,13 @@ Item { Process { id: disableEffectsProc command: ["bash", "-c", "qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.unloadEffect overview 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.unloadEffect grid 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.unloadEffect presentwindows 2>/dev/null"] + onExited: running = false } Process { id: enableEffectsProc command: ["bash", "-c", "qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.loadEffect overview 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.loadEffect grid 2>/dev/null; qdbus6 org.kde.KWin /Effects org.kde.kwin.Effects.loadEffect presentwindows 2>/dev/null"] + onExited: running = false } function appendChar(ch) { diff --git a/quickshell/services/python/save_wallpaper.py b/quickshell/services/python/save_wallpaper.py index 9a562c7..a49d74a 100755 --- a/quickshell/services/python/save_wallpaper.py +++ b/quickshell/services/python/save_wallpaper.py @@ -39,7 +39,7 @@ def save_wallpaper(): try: import subprocess file_url = wp_path if wp_path.startswith("file://") else f"file://{wp_path}" - subprocess.run(["kwriteconfig6", "--file", "kscreenlockerrc", "--group", "Greeter", "--group", "Wallpaper", "--group", "org.kde.image", "--group", "General", "--key", "Image", file_url], capture_output=True) + subprocess.run(["kwriteconfig6", "--file", "kscreenlockerrc", "--group", "Greeter", "--group", "Wallpaper", "--group", "org.kde.image", "--group", "General", "--key", "Image", file_url], capture_output=True, timeout=2) except Exception: pass diff --git a/quickshell/services/python/theme_sync.py b/quickshell/services/python/theme_sync.py index a78d12c..1ff6a7b 100644 --- a/quickshell/services/python/theme_sync.py +++ b/quickshell/services/python/theme_sync.py @@ -2161,12 +2161,15 @@ def sync_papirus_folders(variant_name, accent="#ff79c6", sub_accent="#bd93f9"): else: chosen_color = "blue" - # Execute papirus-folders for all installed Papirus theme variants - for theme_name in ["Papirus", "Papirus-Dark", "Papirus-Light"]: - try: - subprocess.run(["papirus-folders", "-C", chosen_color, "-t", theme_name, "-u"], capture_output=True) - except Exception: - pass + # Execute papirus-folders asynchronously in background thread to prevent blocking theme engine + def run_papirus(): + for theme_name in ["Papirus", "Papirus-Dark", "Papirus-Light"]: + try: + subprocess.run(["papirus-folders", "-C", chosen_color, "-t", theme_name, "-u"], capture_output=True, timeout=5) + except Exception: + pass + import threading + threading.Thread(target=run_papirus, daemon=True).start() def main(): parser = argparse.ArgumentParser()