Emacs 창의 투명 설정

3650 단어 emacs
어제 친구가 나에게 윈도우즈의emacs 창을 X나 애플처럼 반투명하게 할 수 있는 코드를 보냈다.코드는 복잡하지 않습니다.
(set-frame-parameter (selected-frame) 'alpha (list 85 50))
(add-to-list 'default-frame-alist (cons 'alpha (list 85 50)))

그리고 노력을 통해 저는 전환 기능을 썼습니다. f7을 누르면 투명해지고 f8을 누르면 투명 상태가 종료됩니다.
(defun transform-window (a ab)
(set-frame-parameter (selected-frame) 'alpha (list a ab))
(add-to-list 'default-frame-alist (cons 'alpha (list a ab)))
)

(global-set-key [(f7)] (lambda()
(interactive)
(transform-window 85 55)))

(global-set-key [(f8)] (lambda()
(interactive)
(transform-window 100 100)))


그러나 이런 물건은 두 키 전환이 분명히 우호적이지 않아서 나는 그것을 한 키 전환으로 바꾸었다.
(setq is-alpha nil)

(defun transform-window (a ab)
(set-frame-parameter (selected-frame) 'alpha (list a ab))
(add-to-list 'default-frame-alist (cons 'alpha (list a ab)))
)


(global-set-key [(f8)] (lambda()
(interactive)
(if is-alpha
(transform-window 100 100)
(transform-window 85 50))
(setq is-alpha (not is-alpha))))


나중에 코드를 다시 읽어보니 아직 개선할 여지가 있다고 느꼈다.우선 투명도 전환일 뿐 두 개의 단축키를 차지할 필요가 없다. Emacs로 N종을 쓰는 나에게 단축키는 상당히 귀중한 자원이다.다시 한 번, 현재의 디자인은 두 가지 투명도만 지원할 수 있고 전체적인 변수를 하나 더 사용했다.
Feather Bromans의 조언에 저는 emacs lisp를 깜짝 공격하여 이런 버전을 썼습니다.
;; transform window
;; Anchor: March Liu ( ) <[email protected] >
;;
;; This is a script to set emacs window's alpha value.
;; It work well on windows xp and vista with EmacsWin32
;; useage: add below line in your .emacs
;;
;; (load-file "path/alpha-window.el" )
;;
;; you can define your alpha-list to set the transform combine
;; bind key with below code:
;;
;; (global-set-key [(f11)] 'loop-alpha)

(setq alpha-list '((100 100) (95 65) (85 55) (75 45) (65 35)))

(defun loop-alpha ()
(interactive)
(let ((h (car alpha-list))) ;; head value will set to
((lambda (a ab)
(set-frame-parameter (selected-frame) 'alpha (list a ab))
(add-to-list 'default-frame-alist (cons 'alpha (list a ab)))
) (car h) (car (cdr h)))
(setq alpha-list (cdr (append alpha-list (list h))))
)
)


이 스크립트의 특징은 다음과 같습니다.
  • 단일 명령 회전 여러 상태
  • (global-set-key[(f11)]'loop-alpha)로loop-alpha를 단축키에 연결할 수 있음
  • 네 개의 투명도 조합을 설정했습니다. 당신은 자신의 투명도를 사용할 수 있습니다.emacs에서 알파-list를 다시 정의하고 투명도 방안을 설정합니다
  • 현재 나는 윈도우즈에서만 시험해 보았는데, X 창 아래에서 투명한 효과가 없으면 안 될 것이다.물론 X 자체의 반투명은 매우 쓰기 쉽다. 나는 X에서 이런 기능이 필요하다고 생각해 본 적이 없다.
    그래픽 인터페이스: P에만 사용할 수 있습니다.

    좋은 웹페이지 즐겨찾기