[Sawfish] Patch to set window-type |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, Here i have a patch to set the window type for matched windows in sawfish. You can set the type to normal, dialog, dock, desktop, menu, toolbar, utility, and splashscreen. I also know that this patch is not "correct". I also know _NET_WM_WINDOW_TYPE shouldn't not set by a window manager but sometimes i have windows with wrong _NET_WM_WINDOW_TYPE set by the application (for me). Can't maximize window because a other window is a dock but it should not, or a window is a normal window but it should a dialog etc. I have no problem if you don't accepted the patch but maybe someone other find the patch helpful, i use the patch since several month. -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
--- sawfish/lisp/sawfish/wm/ext/match-window.jl.orgi +++ sawfish/lisp/sawfish/wm/ext/match-window.jl @@ -94,6 +94,7 @@ `(choice ,@(mapcar car match-window-types)))) (frame-style ,(lambda () `(symbol ,@(find-all-frame-styles t)))) + (window-type (choice normal dialog dock desktop menu toolbar utility splashscreen)) (title-position (choice top bottom right left)) (dimensions (pair (number 1) (number 1))) (maximized (choice all vertical horizontal @@ -398,6 +399,35 @@ ;; translate from 1.. to 0.. (set-window-workspaces w (list (1- value)))))) + (define-match-window-setter 'window-type + (lambda (w prop value) + (declare (unused prop)) + (cond ((eq value 'normal) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_NORMAL) 'ATOM 32) + (set-window-type w 'default)) + ((eq value 'dialog) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_DIALOG) 'ATOM 32) + (mark-window-as-transient w)) + ((eq value 'dock) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_DOCK) 'ATOM 32) + (mark-window-as-dock w)) + ((eq value 'desktop) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_DESKTOP) 'ATOM 32) + (mark-window-as-desktop w)) + ((eq value 'menu) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_MENU) 'ATOM 32) + (set-window-type w 'menu)) + ((eq value 'toolbar) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_TOOLBAR) 'ATOM 32) + (set-window-type w 'toolbar)) + ((eq value 'utility) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_UTILITY) 'ATOM 32) + (set-window-type w 'utility)) + ((eq value 'splashscreen) + (set-x-property w '_NET_WM_WINDOW_TYPE (vector '_NET_WM_WINDOW_TYPE_SPLASHSCREEN) 'ATOM 32) + (set-window-type w 'splash) + (window-put w 'place-mode 'centered))))) + (define-match-window-setter 'position (lambda (w prop value) (declare (unused prop))
Attachment:
signature.asc
Description: PGP signature
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |