Emacs Multi-TTY

15.05.2008 19:38 | 2 comments | 0 pingbacks |

Разобрался с недавно затащенным в emacs23 Emacs Multi-TTY. Теперь можно подключаться к запущенному Emacs’у и создавать новые фреймы: как X11, так и VT.

Делается всё очень просто: при загрузке Emacs

   (server-start)
   

И создание новых фреймов:

   $ emacsclient -t  # TTY
   $ emacsclient -c # X11
   

Правда, после этих манипуляций оказывается, что у Emacs имеются per-frame (окошко операционной системы) и даже per-terminal (под terminal подразумевается как VT, так и X display) переменные, которые бы неплохо инициализировать при открытии нового фрейма на новом терминале, а не глобально при старте (как это все делают).

Per-frame — это, например, шрифт фрейма. Его можно задать в переменной default-frame-alist:

   (setq default-frame-alist
     '(...
      (font . "7x13")))
   

Per-terminal — это таблица глобального ремапа клавиш. К сожалению, пока что хука на создание нового терминала нет, поэтому приходится использовать хук на создание нового фрейма.

   (add-hook
     'after-make-frame-functions
     '(lambda (frame)
       (setq old-selected-frame (seleted-frame))
       (unwind-protect
         (progn
           (select-frame frame)
           ...
           (keyboard-translate ?C-q ?C-x))
         (select-frame-set-input-focus old-selected-frame))))
   

Comments

Leschinsky Oleg 15.05.2008 20:53 reply permalink

например, шрифт фрейма.

Вот оно — решение проблемы вывода calendar, который не имеет отдельного face и выводится default-ным.

dottedmag 15.05.2008 22:32 reply permalink

А, так это всегда можно было. C-x 5 2 и M-x frame-set-font

Добавить комментарий

Comment form for «Emacs Multi-TTY»

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image