From da5b2ae51988f7c8ab0be768b5e8e07eaf116f82 Mon Sep 17 00:00:00 2001 From: David Florness Date: Sat, 27 Jul 2019 11:47:03 -0600 Subject: [PATCH] New frames are transparent by default --- lisp/setup-appearance.el | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/lisp/setup-appearance.el b/lisp/setup-appearance.el index 57a5e4b..64f65ee 100644 --- a/lisp/setup-appearance.el +++ b/lisp/setup-appearance.el @@ -38,17 +38,27 @@ (progn (enable-theme 'badger))) +;;; Transparency control -(defun toggle-transparency () - "Toggle the current frame's transparency." +(defvar new-frames-are-transparent t + "Whether new frames should be transparent") + +(defun toggle-transparency (&optional frame) + "Toggle FRAME's transparency." (interactive) - (let ((alpha (frame-parameter nil 'alpha))) + (let ((alpha (frame-parameter frame 'alpha))) (set-frame-parameter - nil 'alpha - (if (eql (cond ((numberp alpha) alpha) - ((numberp (cdr alpha)) (cdr alpha)) - ;; Also handle undocumented ( ) form. - ((numberp (cadr alpha)) (cadr alpha))) - 100) + frame 'alpha + (if (memq (cond ((numberp alpha) alpha) + ((numberp (cdr alpha)) (cdr alpha)) + ;; Also handle undocumented ( ) form. + ((numberp (cadr alpha)) (cadr alpha))) + '(nil 100)) 80 100)))) + (global-set-key (kbd "C-c t") 'toggle-transparency) + +(add-to-list 'after-make-frame-functions + (lambda (frame) + (if new-frames-are-transparent + (set-frame-parameter frame 'alpha 80)))) -- 2.38.4