Re: Add compton module to sawfish

fuchur <[email protected]>
Newsgroups gmane.comp.window-managers.sawfish
Organization W.W
Message-ID <[email protected]>
Hi,

On Fri, 13 Sep 2013 21:47:31 +0200
wrote fuchur <[email protected]>:

>Hi,
>
>On Thu, 12 Sep 2013 15:59:27 +0200
>wrote fuchur <[email protected]>:
>
>>Hi,
>>
>>I have build a patch to add support for transparency in sawfish.
>>It use compton and you can use sawfish to set the most settings.
>>
>
>With this patch i have add some settings for shadows. Changes:
>
>Disable shadows by windows with tabs, but you can force shadows for
>windows with tabs.
>Improve shadows for windows with tabs.
>
>Selectable:
>Don’t draw shadows on menus.
>Don’t draw shadows on drag-and-drop windows.
>Don’t draw shadows on shaped windows.
>Only draw shadows on normal windows and dialogs.
>
>Add window match whether a window never become shadows.
>Better xinerama support (remove shadows by fullscreen on a head)
>Add "--detect-rounded-corners".
>
>
>Should now complete, if you missing something important please
>send a mail.
>

With this patch we set all inactiv/background tabs shade. Tabbed
windows now also looks like normal windows. Also improve translucency
for shadows settings.

-- 
Regards,
Fuchur

GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53  C116 E5BC 70D5 B8D7 B2B0
02_tab-shade.patch (text/x-patch, 5.4 KB)
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
@@ -110,11 +110,11 @@
       :options (25 20 15 10 5 0 -05 -10 -15 -20 -25 -30 -35 -40 -45 -50)
       :after-set (lambda () (switch-opacity)))
 
-    (defcustom translucency 75 "The translucency for shadows. (Default 75)"
+    (defcustom translucency 80 "The translucency for shadows. (Default 80)"
       :depends opacity-enable
       :group (appearance window-effects)
       :type symbol
-      :options (05 15 30 45 60 75 90 105 120 135 150)
+      :options (10 20 30 40 50 60 70 80 90 100)
       :after-set (lambda () (switch-opacity)))
 
     (defcustom blur-radius 12 "The blur radius for shadows. (Default 12)"
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
@@ -160,6 +160,9 @@
     (setq release-window t)
     (when (window-tabbed-p w)
       (let ((wins (list (remove w (tab-group-window-index w)))))
+        (if (not (window-get w 'shaded))
+            (mapcar (lambda (w)
+                      (unshade-window 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)
@@ -185,7 +188,13 @@
           (let* ((index (tab-window-group-index win))
                  (wins (tab-group-window-list (nth index tab-groups)))
                  (focus (tab-group-offset win 0))
-                 (unfocus (remove focus wins)))
+                 (unfocus (remove focus wins))
+                 not-shaded)
+            (mapcar (lambda (w)
+                      (if (not (window-get w 'shaded)) (setq not-shaded 't))) wins)
+            (if not-shaded
+                (mapcar (lambda (w)
+                          (unshade-window w)) wins))
             (cond
              ((eq prop 'raise)
               (raise-windows focus wins))
@@ -266,13 +275,11 @@
                           (if (not (eq viewport-sticky tab-viewport-sticky))
                               (if viewport-sticky
                                   (make-window-sticky/viewport w)
-                                (make-window-unsticky/viewport w)))) unfocus)))
-             ((eq prop 'shade)
-              (mapcar (lambda (w)
-                        (shade-window w)) unfocus))
-             ((eq prop 'unshade)
+                                (make-window-unsticky/viewport w)))) unfocus))))
+            (when (cdr (tab-group-window-index win))
+              (if not-shaded (unshade-window win))
               (mapcar (lambda (w)
-                        (unshade-window w)) unfocus))))
+                        (shade-window w)) (remove win (tab-group-window-index win)))))
         (setq tab-refresh-lock t))))
 
   ;; Entry points
@@ -413,8 +420,8 @@
     "Releas win from the tabgroup and iconify the rest from the group."
     (let* ((default-window-animator 'none)
            (index (tab-window-group-index win))
-           (wins (tab-group-window-list (nth index tab-groups)))
-           (tabs (remove win (tab-group-window-list (nth index tab-groups)))))
+           (wins (tab-group-window-index win))
+           (tabs (remove win (tab-group-window-index win))))
       (tab-delete-window-from-group win index)
       (reframe-window win)
       (setq tab-refresh-lock nil)
@@ -511,13 +518,10 @@
       (add-hook 'before-resize-hook (lambda (win) (if (window-tabbed-p win) (before-move-resize win)))))
     (add-hook 'after-resize-hook  (lambda (win) (after-move-resize win)))
     (add-hook 'focus-in-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'raise))))
-    (add-hook 'shade-window-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'shade))))
-    (add-hook 'unshade-window-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'unshade))))
     (add-hook 'iconify-window-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'iconify))))
     (add-hook 'uniconify-window-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'uniconify))))
     (add-hook 'window-maximized-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'maximized))))
     (add-hook 'window-unmaximized-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'maximized))))
-    (add-hook 'add-to-workspace-hook (lambda (win) (if (window-tabbed-p win) (tab-refresh-group win 'frame))))
     (add-hook 'destroy-notify-hook tab-delete-window-from-tab-groups))
 
   (gaol-add set-tab-theme-name tab-refresh-group tab-group-window-index))
diff -urNad sawfish.orig/themes/StyleTab/theme.jl sawfish/themes/StyleTab/theme.jl
--- sawfish.orig/themes/StyleTab/theme.jl
+++ sawfish/themes/StyleTab/theme.jl
@@ -516,11 +516,11 @@
 
       (mapcar (lambda (w)
                 (window-put w 'title-position dest)) wins)
-      (call-window-hook 'window-state-change-hook w (list '(title-position)))
-      (mapcar (lambda (w)
-                (reframe-window w)
-                (move-window-to w pos-x pos-y)
-                (resize-window-to w dim-x dim-y)) wins))))
+
+      (reframe-window w)
+      (move-window-to w pos-x pos-y)
+      (resize-window-to w dim-x dim-y)
+      (tab-refresh-group w 'move))))
 
 (define (tabbartotop)
   "Move tab-bar to top."
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)

iEYEARECAAYFAlI88lEACgkQ5bxw1bjXsrCOfACglVjBDTpx4VGxESYAftv9oBRT
D/MAoIDhgDRW8U/Hfnz6Hf/VOjZQvoD4
=48ga
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.