| [Sawfish] Patches for styletab and compton |
[ Thread Index | Date Index | More lists.tuxfamily.org/sawfish Archives ]
Hi, Two patches for sawfish. Changes: 01-styletab.patch Lock recolor in styletab with timer until theme is loaded sawfish now start 70% - 80% faster if you use the styletab theme. 02-compton.patch Compton now starts with a delay from 3 seconds if you start or restart sawfish, this fix the "flashing". Stop compton bevor you close sawfish. -- Regards, Fuchur GPG Fingerprint: CA3B 8204 5B3E 6D48 6D53 C116 E5BC 70D5 B8D7 B2B0
diff -urNad sawfish.orgi/themes/StyleTab/theme.jl sawfish/themes/StyleTab/theme.jl
--- sawfish.orgi/themes/StyleTab/theme.jl
+++ sawfish/themes/StyleTab/theme.jl
@@ -2598,7 +2598,7 @@
(define frame nil)
(define button-alist nil)
(define current-title styletab-c:titlebar-place)
-(define recolor-lock t)
+(define recolor-lock nil)
(define current-type nil)
;; botton list table
@@ -2877,39 +2877,33 @@
;; reframe-with-style, resize bottons
;; reset icon cache
(define (clear-icon-cache-reframe)
- (when recolor-lock
- (setq recolor-lock nil)
+ (when (not recolor-lock)
(recolor-all-buttons)
(setq styletab-c-icon-cache (make-weak-table eq-hash eq))
(make-buttons)
- (reframe-with-style)
- (setq recolor-lock t)))
+ (reframe-with-style)))
+
(define (color-changed)
- (when recolor-lock
- (setq recolor-lock nil)
+ (when (not recolor-lock)
(recolor-all)
- (reframe-with-style)
- (setq recolor-lock t)))
+ (reframe-with-style)))
(define (bright-changed)
- (when recolor-lock
- (setq recolor-lock nil)
+ (when (not recolor-lock)
(recolor-tab)
(recolor-all-buttons)
- (reframe-with-style)
- (setq recolor-lock t)))
+ (reframe-with-style)))
(define (botton-color-changed botton)
- (when recolor-lock
- (setq recolor-lock nil)
+ (when (not recolor-lock)
(botton)
- (reframe-with-style)
- (setq recolor-lock t)))
+ (reframe-with-style)))
(define (reload-frame-style-reframe)
- (reload-frame-style theme-name)
- (reframe-with-style))
+ (when (not recolor-lock)
+ (reload-frame-style theme-name)
+ (reframe-with-style)))
(define (frame-style-name w)
(when (eq (window-get w 'current-frame-style) theme-name)
@@ -2942,9 +2936,21 @@
((shaped-transient)
(make-frame w 'shaped-transient-frame current-title)))))
-;; initialize theme
-(color-changed)
-(make-buttons)
+(define (timer-theme-load)
+ (color-changed)
+ (make-buttons)
+ ;; Lock recolor untill all defcustom loaded.
+ ;; Then recolor the theme with images from
+ ;; the hashtables and reframe the theme
+ (require 'rep.io.timers)
+ (setq recolor-lock
+ (make-timer (lambda ()
+ (setq recolor-lock nil)
+ (color-changed))
+ (quotient 1000 1000) (mod 1000 1000))))
+
+;; initialize theme
+(timer-theme-load)
(add-frame-style theme-name get-frame)
--- sawfish.orgi/lisp/sawfish/wm/prg/compton.jl
+++ sawfish/lisp/sawfish/wm/prg/compton.jl
@@ -39,6 +39,7 @@
(define switch-opacity nil)
(define update-opacity nil)
(define stop-compton nil)
+ (define timer-load-compton nil)
(defgroup window-effects "Window Effects"
:group appearance)
@@ -386,13 +387,14 @@
(window-opacity w))))))
(define (switch-opacity)
- (if opacity-enable
- (start-compton)
- (stop-compton))
- (map-windows (lambda (w)
- (if opacity-enable
- (window-opacity w)
- (dim-window w (get-opacity '100))))))
+ (when (not timer-load-compton)
+ (if opacity-enable
+ (start-compton)
+ (stop-compton))
+ (map-windows (lambda (w)
+ (if opacity-enable
+ (window-opacity w)
+ (dim-window w (get-opacity '100)))))))
(define (max-window w)
(if shadows-crop-maximized
@@ -403,13 +405,22 @@
(define (before-resize w)
(dim-window w (get-opacity opacity-by-resize)))
-
+
(define (tab-release w)
(if (and (car w)
(not (cdr w)))
- (if opacity-enable
- (window-opacity (car w))
- (dim-window (car w) (get-opacity '100)))))
+ (if opacity-enable
+ (window-opacity (car w))
+ (dim-window (car w) (get-opacity '100)))))
+
+ (define (timer-compton-load)
+ (setq timer-load-compton
+ (make-timer (lambda ()
+ (setq timer-load-compton nil)
+ (switch-opacity))
+ (quotient 3000 1000) (mod 3000 1000))))
+
+ (timer-compton-load)
(add-hook 'window-maximized-hook (lambda (w) (if opacity-enable (max-window w))))
(add-hook 'window-unmaximized-hook (lambda (w) (if opacity-enable (max-window w))))
@@ -422,4 +433,5 @@
(add-hook 'after-move-hook (lambda (w) (if opacity-enable (window-opacity w))))
(add-hook 'before-resize-hook (lambda (w) (if opacity-enable (before-resize w))))
(add-hook 'after-resize-hook (lambda (w) (if opacity-enable (window-opacity w))))
- (add-hook 'after-initialization-hook switch-opacity)))
+ (add-hook 'after-initialization-hook switch-opacity)
+ (add-hook 'before-exit-hook stop-compton)))
Attachment:
signature.asc
Description: PGP signature
| Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |