Emacs работает с несколькими системами окон, в первую очередь с X Window System. И Emacs, и X используют термин «окно», но используют его по-разному. Фрейм Emacs — это одно окно с точки зрения X; отдельные окна Emacs не известны X вовсе.
Эта терминальная переменная сообщает программам Lisp, какую систему окон Emacs использует для отображения фрейма. Возможные значения:
x ¶Emacs отображает фрейм с помощью X.
w32Emacs отображает фрейм с помощью нативного GUI MS-Windows.
nsEmacs отображает фрейм с помощью интерфейса Nextstep (используется в GNUstep и macOS).
pcEmacs отображает фрейм с помощью прямых записей экрана MS-DOS.
haikuEmacs отображает фрейм с помощью Application Kit на Haiku.
pgtkEmacs отображает фрейм с помощью чистых возможностей GTK.
androidEmacs отображает фрейм на Android.
nilEmacs отображает фрейм в терминале, основанном на символах.
Эта переменная хранит значение window-system, используемое для первого фрейма, созданного Emacs при запуске. (Когда Emacs вызывается как демон, он не создает никаких начальных фреймов, поэтому initial-window-system равен nil, за исключением MS-Windows, где он по-прежнему w32. См. daemon в Руководство GNU Emacs.)
Эта функция возвращает символ, имя которого указывает, какая система окон используется для отображения frame (по умолчанию — текущий выбранный фрейм). Список возможных возвращаемых символов совпадает с тем, что описано для переменной window-system выше.
Не используйте window-system и initial-window-system в качестве предикатов или булевых флагов, если вы хотите написать код, который по-разному работает в текстовых терминалах и графических дисплеях. Это связано с тем, что window-system не является хорошим индикатором возможностей Emacs для данного типа дисплея. Вместо этого используйте display-graphic-p или любой другой предикат display-*-p, описанный в Тестирование функций дисплея.