¿Cómo verificar si Emacs está en modo GUI (y ejecutar `tool-bar-mode` solo entonces)?


16

Tengo esta línea en mi .emacsarchivo:

(tool-bar-mode 0)

porque odio las barras de herramientas en mi GUI emacs ( /Applications/Emacs.app/Contents/MacOS/Emacs).

Pero cuando inicio mis otros emacs basados ​​en texto en el terminal ( /opt/local/bin/emacs) se queja de ese comando:

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

¿Cómo puedo agregar una ifcondición para que ejecute el tool-bar-modecomando solo cuando estoy en la GUI emacs?

¡Gracias!

Respuestas:


22

Bien, lo encontré yo mismo. Solo agrega

;; turn off toolbar
(if window-system
    (tool-bar-mode 0))

3

otra forma de hacerlo sería:

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

así, la función se llama solo si existe


0

Funciona para mí sin quejas en Linux. Puede probar nilo en -1lugar de 0:

(tool-bar-mode nil)

¿Qué pasa si lo haces emacs -nw?


0

El uso de la window-systemvariable como booleano es desuso . En su lugar, use display-graphic-po cualquiera de los otros display-*-p predicados que informan las capacidades específicas de la IU relacionadas con el marco.

En caso de que desee que su código sea compatible con versiones anteriores de Emacs, entonces el siguiente contenedor de compatibilidad es el camino a seguir:

(if (< emacs-major-version 23)
    (or window-system (getenv "DISPLAY"))
  (display-graphic-p))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.