~edwargix/emacs.d

da5b2ae51988f7c8ab0be768b5e8e07eaf116f82 — David Florness 6 years ago ded2755
New frames are transparent by default
1 files changed, 19 insertions(+), 9 deletions(-)

M lisp/setup-appearance.el
M lisp/setup-appearance.el => lisp/setup-appearance.el +19 -9
@@ 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 (<active> <inactive>) form.
                    ((numberp (cadr alpha)) (cadr alpha)))
              100)
     frame 'alpha
     (if (memq (cond ((numberp alpha) alpha)
                     ((numberp (cdr alpha)) (cdr alpha))
                     ;; Also handle undocumented (<active> <inactive>) 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))))