Как установить привязку клавиш, чтобы сделать Emacs таким прозрачным / непрозрачным, как я хочу? - PullRequest
4 голосов
/ 29 мая 2010

Я хочу, чтобы в Emacs была команда, чтобы сделать ее настолько непрозрачной / прозрачной, насколько я хочу (см. Невероятный вопрос , который указал, что прозрачность возможна в Emacs, и EmacsWiki ссылка на страницу с кодом, который я использую ниже).

Код EmacsWiki устанавливает «Cc t» для включения и выключения ранее установленной прозрачности:

;;(set-frame-parameter (selected-frame) 'alpha '(<active> [<inactive>]))  
(set-frame-parameter (selected-frame) 'alpha '(85 50))  
(add-to-list 'default-frame-alist '(alpha 85 50))

enter code here(eval-when-compile (require 'cl))  
(defun toggle-transparency ()  
(interactive)  
(if (/= 
    (cadr (find 'alpha (frame-parameters nil) :key #'car)) 
    100)  
   (set-frame-parameter nil 'alpha '(100 100))
 (set-frame-parameter nil 'alpha '(85 60))))  
 (global-set-key (kbd "C-c t") 'toggle-transparency)

Что яЯ бы хотел выбрать% прозрачности, когда я нахожусь в Emacs.

Если возможно, мне нужна команда, в которой я набираю, например, «Cc t N» (где N -% непрозрачности) для активного кадра, а затем «Mc t N» для неактивного окна.

Если это не может быть сделано таким образом, то, возможно, команда, где, если я наберу "Cc t", он запрашивает у меня номер, который дает непрозрачность активного окна (и то же самое для неактивного окна).используя "Mc t").

Заранее спасибо за ваше время:)

Ниже приведены лишь некоторые комментарии, которые не важны для ответа на вопрос, если вы не заинтересованы:

Я действительно хочу этого, потому что, когда я сказал своему руководителю, что я изучаю Emacs, он сказал, что TexShop намного лучше и что я использую программное обеспечение 80-х годов.Я рассказал ему о чудесах Emacs, и он сказал, что в TexShop есть все и даже больше.Я сопоставил все, что он мне показал, за исключением прозрачности (хотя он не мог сопоставить предварительный просмотр внутри Emacs из preview-latex).Я случайно обнаружил прозрачность, и теперь я хочу показать ему правила Emacs!

Я полагаю, что для некоторых из вас это будет просто пирогом, и хотя я мог бы сделать это, если бы потратил достаточновремя, когда я пытаюсь научиться шутить или читать, я не программист, и я использую Emacs и Mac только неделю.Я уже потерян как есть!Так что заранее спасибо за ваше время и помощь - в конечном итоге я выучу lisp!

Редактировать: Мой руководитель использует TextMate, а не TeXShop.Теперь это имеет больше смысла?

1 Ответ

6 голосов
/ 29 мая 2010
(defun set-frame-alpha (arg &optional active)
  (interactive "nEnter alpha value (1-100): \np")
  (let* ((elt (assoc 'alpha default-frame-alist))
         (old (frame-parameter nil 'alpha))
         (new (cond ((atom old)     `(,arg ,arg))
                    ((eql 1 active) `(,arg ,(cadr old)))
                    (t              `(,(car old) ,arg)))))
    (if elt (setcdr elt new) (push `(alpha ,@new) default-frame-alist))
    (set-frame-parameter nil 'alpha new)))
(global-set-key (kbd "C-c t") 'set-frame-alpha)

Используйте C-c t для активного кадра и C-u C-c t для неактивного кадра.

Edit:

Одним из способов сохранения эффекта в сеансах является включение desktop-save-mode и добавление default-frame-alist к desktop-globals-to-save через интерфейс настройки: Рабочий стол RET группы M-x .

...