2009-05-28 8 views

Respuesta

15

Su respuesta anterior es correcta, aunque si se quiere diferenciar entre otros sistemas de ventanas y sólo desea ejecutar el código si está utilizando realmente X, que tendría que ir

(if (eq window-system 'X) (foo)) 
+0

Aunque no necesito ese tipo de especificidad, esa es una mejor respuesta que la mía. ¡Gracias! – JasonFruit

+2

Cuando estaba tratando de descubrir cómo deshabilitar el tema en modo solo ventana, terminé respondiendo a JasonFruit, pero realmente están entendiendo lo mismo. '(if (eq window-system 'X) (foo))' o '(si window-system (foo))' o '(when window-system (foo))' no hace la diferencia. Para aquellos interesados ​​en los detalles, solo déjenme decirles "C-h a" es tu amigo. Al usarlo, busqué "variable" y encontré "describir-variable" y al usar esa tabulación más "plus" encontré la variable del sistema de ventana. Luego escribí 'window-system' en el búfer de scratch y luego lo probé –

+3

Funcionarán igual si todo lo que te importa es si el sistema de ventanas es X o no, pero el valor de window-system puede ser un valor distinto de ' X. –

14

Creo que he encontrado mi propia respuesta:

(when window-system 
    (foo)) 

sólo se foo cuando estoy corriendo en X.

+0

Deje de votar mi propia respuesta a mi pregunta --- la que acepté anteriormente es esencialmente la misma, ¡pero más completa! – JasonFruit

+0

Todo bien --- ¿quién hizo eso?!?! – JasonFruit

+0

Solo necesitamos un voto alternativo más ... –

3

Tenga en cuenta que la pregunta está mal concebida: Emacs puede ejecutarse con marcos tty y GUI al mismo tiempo.

La variable window-system es "terminal-local", lo que significa que su valor dependerá de si el marco actualmente seleccionado es un marco tty o marco GUI.

+0

Ni siquiera me había dado cuenta de que se podía hacer. ¡Fascinante! – JasonFruit

Cuestiones relacionadas