Я запускаю демон emacs, к которому подключаюсь как из долгоживущих фреймов emacs с графическим интерфейсом, так и из недолговечных фреймов tty emacs. В настоящее время я использую следующее в моем .emacs.d/init.el:

(if (not window-system) (menu-bar-mode 0))

К сожалению, это глобальная настройка, поэтому она применяется ко всем кадрам. Я бы предпочел, чтобы меню было только в моих графических фреймах; меню занимает слишком много места на tty кадрах.

Есть ли способ сделать эту настройку специфичной для кадра?

Благодарю.

1 ответ1

2

Настройка зависит от фрейма: каждый фрейм имеет menu-bar-lines . Фактически menu-bar-mode перебирает все кадры, чтобы установить этот параметр. Чтобы установить параметр для текущего кадра:

(set-frame-parameter (selected-frame) 'menu-bar-lines 1) ; or 0 for off

Следующим шагом является установка параметра при каждом создании кадра:

(defun set-frame-menu-bar-lines (frame)
  (let ((want-menu (memq (framep frame) '(x w32 ns))))
    (set-frame-parameter frame 'menu-bar-lines (if want-menu 1 0))))
(add-hook 'after-make-frame-functions 'set-frame-menu-bar-lines)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .