如何獲得切換透明度的函數? 用於切換的可能的候選人可能是0%,85%,100%或者只是那些2 ...在emacs中創建切換功能
(defun transparency-toggle()
"Toggle transparency."
(interactive)
(add-to-list 'default-frame-alist '(alpha 85 50))
)
缺少什麼?
如何獲得切換透明度的函數? 用於切換的可能的候選人可能是0%,85%,100%或者只是那些2 ...在emacs中創建切換功能
(defun transparency-toggle()
"Toggle transparency."
(interactive)
(add-to-list 'default-frame-alist '(alpha 85 50))
)
缺少什麼?
這裏是一個環形的版本,可以讓你通過各種阿爾法循環,並用前綴參數直接跳轉到最後一個或第一個字母:
(defun ring-transparency (arg)
(interactive "P")
(let* ((ring '(100 50 25 0))
(current (frame-parameter nil 'alpha))
(last (car (last ring)))
(next (if arg
(if (equal current (car ring)) last (car ring))
(or (cadr (member current ring)) (car ring)))))
(set-frame-parameter nil 'alpha next)))
下面的代碼是從Emacs wiki
(eval-when-compile (require 'cl))
(set-frame-parameter nil 'alpha '(100 100))
(defun toggle-transparency (unused)
(interactive "P")
(if (/=
(cadr (frame-parameter nil 'alpha))
100)
(set-frame-parameter nil 'alpha '(100 100))
(set-frame-parameter nil 'alpha '(85 50))))
(global-set-key (kbd "C-c t") 'toggle-transparency)
編輯拍攝:在回答你的問題。如果你沒有初始化一個幀參數alpha
它將是無效的。所以,如果你不想讓代碼:
(set-frame-parameter nil 'alpha '(100 100))
您可以檢查它在功能切換透明度
(defun toggle-transparency (unused)
(interactive "P")
(let ((curr-alpha (frame-parameter nil 'alpha)))
(if (or (null curr-alpha) (/= (cadr curr-alpha) 100))
(set-frame-parameter nil 'alpha '(100 100))
(set-frame-parameter nil 'alpha '(50 50)))))
不知何故,它沒有與「設置幀參數無」工作。我必須做的是使用下面我的答案中的代碼。 – PascalVKooten
最佳版本。謝謝(我也調整它爲背景顏色)。 – PascalVKooten