diff --git a/modules/dock.py b/modules/dock.py index 0f32a93..0c836f4 100644 --- a/modules/dock.py +++ b/modules/dock.py @@ -74,7 +74,7 @@ class AppBar(Box): logger.error(f"[AppBar] Error updating apps: {e}") return True - GLib.timeout_add(100, update_running_apps) + GLib.timeout_add(250, update_running_apps) GLib.idle_add(self.update_dock_apps) def _populate_pinned_apps(self): @@ -751,7 +751,7 @@ class Dock(Window): self.revealer = Revealer( child=Box(children=[self.app_bar], style="padding: 20px 50px 5px 50px;"), - transition_duration=500, + transition_duration=200, transition_type=transition_type, ) @@ -783,7 +783,10 @@ class Dock(Window): def on_hover_leave(self): self.is_hovered = False - # Revealer/occlusion logic will handle CSS state + # Add small delay before potential hiding to prevent rapid show/hide cycles + if self.hide_timeout_id: + GLib.source_remove(self.hide_timeout_id) + self.hide_timeout_id = GLib.timeout_add(100, lambda: None) def _get_anchor_from_position(self): if data.DOCK_POSITION == "Left": @@ -837,4 +840,4 @@ class Dock(Window): return True - GLib.timeout_add(100, check_dock_occlusion) + GLib.timeout_add(300, check_dock_occlusion) diff --git a/styles/dock.css b/styles/dock.css index 9bd8efa..24eb0f7 100644 --- a/styles/dock.css +++ b/styles/dock.css @@ -4,15 +4,15 @@ margin: 4px 4px; border: none; border-radius: 16px; - transition: all 0.25s cubic-bezier(0.5, 0.25, 0, 1); + transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1); } #dock.shown { - transition: margin 0.4s cubic-bezier(0.2, 1.8, 0.5, 0.8); + transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1); } #dock_item_main_container { - transition: all 0.15s ease-out; + transition: all 0.2s cubic-bezier(0.165, 0.84, 0.44, 1); } #dock_item.shown:hover #dock_item_main_container { @@ -53,6 +53,7 @@ #dock_item_icon { border-radius: 13px; opacity: 0.7; + transition: all 0.2s cubic-bezier(0.25, 0.1, 0.25, 1); } /* #dock_item_indicator { */ @@ -62,7 +63,7 @@ /* } */ #dock_item { - transition: margin 0.2s ease-out; + transition: margin 0.25s cubic-bezier(0.25, 0.1, 0.25, 1); } #dock_item.shown { @@ -75,7 +76,7 @@ } .dock_separator { - transition: all 0.1s ease-out; + transition: all 0.25s cubic-bezier(0.25, 0.1, 0.25, 1); min-width: 1.5px; min-height: 50px; margin: 0px 4px;