Como posso mostrar o menu Emacs em quadros GUI emacs, mas não em tty frames ao usar o modo daemon emacs

0

Eu inicio um daemon do emacs ao qual eu me conecto a partir de quadros GUI emacs de longa duração e quadros tty emacs de curta duração. Eu atualmente uso o seguinte no meu .emacs.d / init.el:

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

Infelizmente, essa é uma configuração global, portanto, aplica-se a todos os quadros. Eu preferiria ter o menu apenas nos quadros da minha GUI; o menu ocupa muito espaço em quadros tty.

Existe uma maneira de tornar essa configuração específica para quadros?

Obrigado.

    
por Mike Crowe 19.07.2010 / 17:24

1 resposta

2

A configuração é específica do quadro: cada quadro tem um parâmetro menu-bar-lines . Na verdade, menu-bar-mode faz um loop em todos os quadros para definir esse parâmetro. Para definir o parâmetro para o quadro atual:

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

O próximo passo é definir o parâmetro toda vez que um quadro é criado:

(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)
    
por 19.07.2010 / 20:48

Tags