Como verificar se o Emacs está no modo GUI (e executar 'tool-bar-mode' somente então)?

16

Eu tenho esta linha no meu arquivo .emacs :

(tool-bar-mode 0)

porque eu odeio as barras de ferramentas no meu GUI emacs ( /Applications/Emacs.app/Contents/MacOS/Emacs ).

Mas quando eu inicio meus outros emacs baseados em texto no terminal ( /opt/local/bin/emacs ) ele reclama do comando:

Symbol's function definition is void: tool-bar-mode

Como posso adicionar uma condição if para que ele execute o comando tool-bar-mode apenas quando eu estiver no emacs da GUI?

Obrigado!

    
por user9474 13.04.2010 / 20:19

4 respostas

22

Ok, eu mesmo encontrei. Basta adicionar

;; turn off toolbar
(if window-system
    (tool-bar-mode 0))
    
por 13.04.2010 / 21:05
2

outra maneira de fazer isso seria:

 (if (functionp 'tool-bar-mode) (tool-bar-mode 0))

assim, a função é chamada apenas se existir

    
por 14.04.2010 / 02:13
0

Funciona para mim sem reclamar no Linux. Você pode tentar nil ou -1 em vez de 0 :

(tool-bar-mode nil)

O que acontece se você usar emacs -nw ?

    
por 13.04.2010 / 21:10
0

O uso da variável window-system como booleano é reprovado . Em vez de, use display-graphic-p ou qualquer outro display-*-p predicados que informam recursos relacionados à interface do usuário específicos do frame.

Caso você queira que seu código seja retrocompatível com as versões anteriores do Emacs, então o seguinte wrapper de compatibilidade é o caminho a seguir:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
    
por 11.03.2017 / 00:46

Tags