Re: [Sawfish] Re: Add compton module to sawfish |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, On Sat, 14 Sep 2013 20:09:12 +0200 wrote Christopher Roy Bratusek <nano@xxxxxxxxxxxxx>: >I corrected two more typos, and I found the issue why it does not work for me: > > --xinerama-shadow-crop does not exist on debian (both official and self-compiled from >git repository) So I added a new boolean defcustom: shadows-crop-xinerama, defaulted >to nil with note that not all compton versions support it. Your changes --xinerama-shadow-crop also crash compton. You have use "--xinerama-shadow-crop" but it should '--xinerama-shadow-crop. By this patch: Add a hook "tab-group-windows-hook" to tabgroup.jl. This hook returns the tabbed windows in a group if a tab add or remove from a tabgroup. Improve tabsupport in compton.jl. Fix --xinerama-shadow-crop crash. Patch also tested in debian. -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
diff -urNad sawfish.orig/lisp/sawfish/wm/prg/compton.jl sawfish/lisp/sawfish/wm/prg/compton.jl --- sawfish.orig/lisp/sawfish/wm/prg/compton.jl +++ sawfish/lisp/sawfish/wm/prg/compton.jl @@ -38,6 +38,7 @@ (define switch-opacity nil) (define update-opacity nil) (define stop-compton nil) + (defgroup window-effects "Window Effects" :group appearance) @@ -88,7 +89,8 @@ :type boolean :after-set (lambda () (switch-opacity))) - (defcustom shadows-crop-xinerama nil "Crop shadows in xinerama setups (not supported by all compton versions)." + (defcustom shadows-crop-xinerama nil "Crop shadows in xinerama setups (not supported by all compton versions and +if your versions not supported this, compton crash and you must restart sawfish)." :depends opacity-enable :group (appearance window-effects) :type boolean @@ -252,7 +254,7 @@ (define (zero) (if zero-mask '-z '-e1)) (define (dad) (if shadows-disable-dad '-G '-e1)) (define (smenu) (if shadows-disable-menu (concat "window_type *= 'menu'") (concat "window_type *= 'nil'"))) - (define (sxinerama) (if shadows-crop-xinerama "--xinerama-shadow-crop" '-e1 )) + (define (sxinerama) (if shadows-crop-xinerama '--xinerama-shadow-crop '-e1 )) (define (trans) (/ (+ 0.00 translucency) 100)) (define (fade-i) (/ (+ 0.00 fade-in) 1000)) @@ -276,7 +278,7 @@ (c-red (red)) (c-green (green)) (c-blue (blue)) - (c-sxinerama (sxinerama))) + (c-sxinerama (sxinerama))) "Start compton. If a compton process already exists, it's beeing killed." (when (program-exists-p "compton") (stop-compton) @@ -398,13 +400,13 @@ (dim-window w (get-opacity opacity-by-resize))) (define (tab-release w) - (if (eq w 'tab-release-window) - (map-windows (lambda (win) - (if opacity-enable - (window-opacity win) - (dim-window win (get-opacity '100))))))) + (and car + (not (cdr w)) + (if opacity-enable + (window-opacity (car w)) + (dim-window (car w) (get-opacity '100))))) - (add-hook 'post-command-hook (lambda (w) (if opacity-enable (tab-release w)))) + (add-hook 'tab-group-windows-hook (lambda (w) (if opacity-enable (tab-release w)))) (add-hook 'after-add-window-hook (lambda (w) (if opacity-enable (window-opacity w)))) (add-hook 'shade-window-hook (lambda (w) (if opacity-enable (window-opacity w)))) (add-hook 'focus-in-hook (lambda (w) (if opacity-enable (window-opacity w)))) diff -urNad sawfish.orig/lisp/sawfish/wm/tabs/tabgroup.jl sawfish/lisp/sawfish/wm/tabs/tabgroup.jl --- sawfish.orig/lisp/sawfish/wm/tabs/tabgroup.jl +++ sawfish/lisp/sawfish/wm/tabs/tabgroup.jl @@ -62,6 +62,10 @@ (define in-tab-group-name nil) (define tab-theme-name) + (defvar tab-group-windows-hook '() + "Tab-group-windows-hook called by change or created a tabgroup. +Containing all windows current in the tabgroup") + (define (set-tab-theme-name #!key frame-style-supported-tabs) (setq tab-theme-name frame-style-supported-tabs)) @@ -155,10 +159,12 @@ (remove-from-tab-group w)) (setq release-window t) (when (window-tabbed-p w) - (tab-delete-window-from-group w (tab-window-group-index w)) - (window-put w 'fixed-position nil) - (tab-refresh-group oldgroup 'frame) - (reframe-window w))) + (let ((wins (list (remove w (tab-group-window-index w))))) + (tab-delete-window-from-group w (tab-window-group-index w)) + (window-put w 'fixed-position nil) + (tab-refresh-group oldgroup 'frame) + (call-hook 'tab-group-windows-hook wins) + (reframe-window w)))) (define (tab-put-window-in-group win index) "Put window in group at given index." @@ -353,6 +359,7 @@ (setq tab-refresh-lock t) (tab-refresh-group w 'frame) (set-input-focus w) + (call-hook 'tab-group-windows-hook (list (tab-group-window-index w))) (if (not (window-tabbed-p win)) (window-put win 'tabbed t)) (window-put w 'tabbed t))))) @@ -441,6 +448,7 @@ (window-put w 'never-iconify-opaque nil) (window-put w 'never-iconify t)) (window-put w 'tabbed t)) wins) + (call-hook 'tab-group-windows-hook (list (tab-group-window-index win))) (raise-window win) (setq all-wins nil)) (setq tab-refresh-lock t)
Attachment:
signature.asc
Description: PGP signature
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |