From 37a13648b23cdfb04f4007ba2d1f7132f99c03ed Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Fri, 2 Jan 2026 03:35:01 -0700 Subject: [PATCH 1/4] dock: Improve default css --- data/css/default.css | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/data/css/default.css b/data/css/default.css index 5f4792aa..eed40763 100644 --- a/data/css/default.css +++ b/data/css/default.css @@ -98,27 +98,37 @@ } .wf-dock .box { + background-color: #33333355; padding-left: 1em; padding-right: 1em; border-radius: 1em; } +.wf-dock button { + background: transparent; + padding-left: 0rem; + padding-right: 0rem; +} + +.wf-dock button.activated { + border-bottom: 3px solid white; + margin-bottom: 5px; +} + .wf-dock image { + background: transparent; + padding-left: 0rem; + padding-right: 0rem; transition: 200ms; - -gtk-icon-transform: scale(1.0); - padding-left: 1rem; - padding-right: 1rem; + -gtk-icon-transform: scale(0.7); } .wf-dock image:hover { + background: transparent; + padding-left: 0rem; + padding-right: 0rem; transition: 200ms; - -gtk-icon-transform: scale(1.3); - padding-left: 2rem; - padding-right: 2rem; -} - -.wf-dock .minimized image { - -gtk-icon-filter: grayscale(1); + -gtk-icon-transform: scale(1.0); } .wf-dock image { From 220cb32ff00a39763c58fe4a82fb11c46b926ece Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Fri, 2 Jan 2026 04:57:39 -0700 Subject: [PATCH 2/4] dock: Change flat class to activated for activated toplevels This effectively removes the black border around active application icons while still setting a class so users can style them. --- src/dock/toplevel-icon.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/dock/toplevel-icon.cpp b/src/dock/toplevel-icon.cpp index b96105e6..01083bdc 100644 --- a/src/dock/toplevel-icon.cpp +++ b/src/dock/toplevel-icon.cpp @@ -147,18 +147,17 @@ class WfToplevelIcon::impl return; } - bool was_activated = this->state & WF_TOPLEVEL_STATE_ACTIVATED; this->state = state; bool is_activated = this->state & WF_TOPLEVEL_STATE_ACTIVATED; bool is_min = state & WF_TOPLEVEL_STATE_MINIMIZED; bool is_max = state & WF_TOPLEVEL_STATE_MAXIMIZED; auto style = this->button.get_style_context(); - if (!was_activated && is_activated) + if (is_activated) { - style->remove_class("flat"); - } else if (was_activated && !is_activated) + style->add_class("activated"); + } else { - style->add_class("flat"); + style->remove_class("activated"); } if (is_min) From a006210dbd58a1d7006b0c7c555f2ebde238b9fb Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Fri, 2 Jan 2026 03:57:52 -0700 Subject: [PATCH 3/4] dock: Do not set exclusive zone, regardless of autohide state If we set exclusive zone but do not cover the entire zone as is the case with dock, it pushes all the surfaces out of the way, so that the only thing that's left is the background clear color. It's much better to just not set the exclusive zone at all for dock, because it's more aesthetically pleasing while still allowing to click to the surface below, on either side of the dock. --- src/dock/dock.cpp | 1 + src/util/wf-autohide-window.cpp | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dock/dock.cpp b/src/dock/dock.cpp index ba461c21..7c5ea453 100644 --- a/src/dock/dock.cpp +++ b/src/dock/dock.cpp @@ -30,6 +30,7 @@ class WfDock::impl this->output = output; window = std::unique_ptr( new WayfireAutohidingWindow(output, "dock")); + window->set_auto_exclusive_zone(false); gtk_layer_set_layer(window->gobj(), GTK_LAYER_SHELL_LAYER_TOP); gtk_layer_set_anchor(window->gobj(), GTK_LAYER_SHELL_EDGE_LEFT, true); gtk_layer_set_anchor(window->gobj(), GTK_LAYER_SHELL_EDGE_RIGHT, true); diff --git a/src/util/wf-autohide-window.cpp b/src/util/wf-autohide-window.cpp index 96155640..81734ba2 100644 --- a/src/util/wf-autohide-window.cpp +++ b/src/util/wf-autohide-window.cpp @@ -302,6 +302,7 @@ void WayfireAutohidingWindow::set_auto_exclusive_zone(bool has_zone) } auto_exclusive_zone = has_zone; + update_auto_exclusive_zone(); } void WayfireAutohidingWindow::increase_autohide() @@ -476,8 +477,6 @@ void WayfireAutohidingWindow::setup_autohide() this->set_auto_exclusive_zone(!(output->output && autohide_opt)); this->update_autohide(); - - this->update_auto_exclusive_zone(); } void WayfireAutohidingWindow::update_autohide() From d8ff5abaaf4c79aa8c5c665687186019b7f2bc12 Mon Sep 17 00:00:00 2001 From: Scott Moreau Date: Fri, 2 Jan 2026 04:19:28 -0700 Subject: [PATCH 4/4] dock: Fix build warning --- src/dock/toplevel.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/dock/toplevel.cpp b/src/dock/toplevel.cpp index a8bb94cd..ae12c85f 100644 --- a/src/dock/toplevel.cpp +++ b/src/dock/toplevel.cpp @@ -187,6 +187,9 @@ static void handle_toplevel_closed(void *data, toplevel_t handle) zwlr_foreign_toplevel_handle_v1_destroy(handle); } +static void handle_toplevel_parent(void *data, toplevel_t handle, toplevel_t parent) +{} + namespace { struct zwlr_foreign_toplevel_handle_v1_listener toplevel_handle_v1_impl = { @@ -196,6 +199,7 @@ struct zwlr_foreign_toplevel_handle_v1_listener toplevel_handle_v1_impl = { .output_leave = handle_toplevel_output_leave, .state = handle_toplevel_state, .done = handle_toplevel_done, - .closed = handle_toplevel_closed + .closed = handle_toplevel_closed, + .parent = handle_toplevel_parent }; }