From eec1396d42e7458eabb76b724ded9ee68c7cb33a Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Mon, 1 Jul 2024 14:17:30 -0700 Subject: Remove rounded corners around the stumpwm modeline - Redefine the ‘stumpwm::make-mode-line-window’ function to set the ‘_NET_WM_WINDOW_TYPE’ property to ‘_NET_WM_WINDOW_TYPE_DOCK’ so that it can be matched by window type. - Specify that for picom any “dock” type windows should be excluded from getting rounded corners. - Add ‘rounded-corners-exclude’ initializer for the ‘home-picom-configuration’. --- oni/home/config/rincewind.scm | 2 ++ oni/home/services/picom.scm | 3 +++ oni/home/services/stumpwm/config | 20 ++++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/oni/home/config/rincewind.scm b/oni/home/config/rincewind.scm index 83c1883..d93956a 100644 --- a/oni/home/config/rincewind.scm +++ b/oni/home/config/rincewind.scm @@ -242,6 +242,8 @@ (wintypes '((dnd (shadow . #f)) (dock (shadow . #f)))) + (rounded-corners-exclude + '("window_type *= \\\"dock\\\"")) (corner-radius 15) (blur-background #f) (blur-background-frame #f) diff --git a/oni/home/services/picom.scm b/oni/home/services/picom.scm index 723895d..54a3f02 100644 --- a/oni/home/services/picom.scm +++ b/oni/home/services/picom.scm @@ -113,6 +113,9 @@ (wintypes (alist '()) "Window-type-specific settings") + (rounded-corners-exclude + (list '()) + "Specify a list of conditions of windows that should have no rounded corners") (corner-radius (number 0) "Sets the radius of rounded window corners") diff --git a/oni/home/services/stumpwm/config b/oni/home/services/stumpwm/config index 1939a50..c566cf2 100644 --- a/oni/home/services/stumpwm/config +++ b/oni/home/services/stumpwm/config @@ -93,6 +93,26 @@ after it has been unlocked." "^*5^B[VPN]^b^n " "")) "%d ")) + +;;; Redefinition of the make mode-line window to add the Dock window type. +(defun stumpwm::make-mode-line-window (screen) + "Create a window suitable for a modeline." + (let ((window (xlib:create-window + :parent (screen-root screen) + :x 0 :y 0 :width 1 :height 1 + :background (stumpwm::alloc-color screen *mode-line-background-color*) + :border (stumpwm::alloc-color screen *mode-line-border-color*) + :border-width *mode-line-border-width* + ;; You can click the modeline + :event-mask (xlib:make-event-mask :button-press :exposure) + ;; these windows are not controlled by the window manager + :override-redirect :on))) + (xlib:change-property + window :_NET_WM_WINDOW_TYPE + (list (xlib:find-atom *display* :_NET_WM_WINDOW_TYPE_DOCK)) + :atom 32) + window)) + (mode-line) ;;; Screenshots -- cgit v1.2.3-54-g00ecf