Emacs23 не может быть прозрачным в Ubuntu (Gnome 3) - PullRequest
1 голос
/ 16 марта 2012

Я ищу, как прозрачно мое окно Emacs.Но это не работает.Что-то вроде этого не удалось:

 (global-set-key [(f8)] 'loop-alpha)

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

(defun loop-alpha ()
(interactive)
(let ((h (car alpha-list)))               
((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))))
)
)

1 Ответ

0 голосов
/ 16 марта 2012

Вот рабочая реализация того, что, я думаю, вы пытались сделать:

(global-set-key [(f8)] 'loop-alpha)

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

(defun next-alpha ()
  (let ((current-alpha
         (or (frame-parameter (selected-frame) 'alpha)
             (first alpha-list)))
        (lst alpha-list))
    (or (second
         (catch 'alpha
           (while lst
             (when (equal (first lst) current-alpha)
               (throw 'alpha lst))
             (setf lst (cdr lst)))))
        (first alpha-list))))

(defun loop-alpha ()
  (interactive)
  (let ((new-alpha (next-alpha))
        (current-default (assoc 'alpha default-frame-alist)))
    (set-frame-parameter (selected-frame) 'alpha new-alpha)
    (if current-default
        (setcdr current-default new-alpha)
      (add-to-list 'default-frame-alist (cons 'alpha new-alpha)))))

Обратите внимание, что любая написанная вами версия, переопределяющая alpha-list, будет вести себя очень странно с несколькими кадрами.Я бы объяснил, что не так с вашим кодом, но я, честно говоря, не мог понять, что он должен был делать.Обратите внимание, что это было бы несколько проще написать, если бы я сначала позволил себе (require 'cl), но я думаю, что этот код должен работать - он работает здесь в любом случае!

...