4 ms·
Note that `window-system' is deprecated in favor of `(display-graphic-p)'.
by daptaq 5y ago
Note that `window-system' is deprecated in favor of `(display-graphic-p)'.
- eddieh 5y agoI guess I didn't get the memo. I don't see what was wrong with `window-system' as it allowed stuff like `(eq window-system 'mac)' and `(memq window-system '(mac ns x))' which is nice if you're using different OSs/environments and need tailor your config.
- natrys 5y agoUse of this variable as a boolean is deprecated. Not sure why, but what you are doing is perfectly fine.
- profsnuggles 5y agoIf you are trying to check what OS you are running wouldn't system-type be better? (eq system-type 'darwin) You could be running X on multiple different systems. Although I checked the output on netbsd and openbsd, both return berkeley-unix as the system-type... which isn't quite as helpful. At least I know if I'm on gnu/linux vs a BSD I guess. The docstring helpfully lets me know that a value of gnu means I'm running on Hurd. It also recognizes gnu/kfreebsd apparently because you can't throw a rock without hitting one of those.
- eddieh 5y agoBut I sometimes run X on Mac and I find it helpful to change a few things for Emacs compiled for X vs Emacs.app
- dasyatidprime 5y agoFor the boolean case, yes. But note also that an Emacs instance can open frames on multiple displays. This is not necessarily that hard to get if, for instance, you start with some X frames and then invoke emacsclient in a terminal in a way that causes it to open a character-cell frame there. window-system is documented as a terminal-local variable for this reason, and similarly the display-foo-p functions take an optional selector argument. Which means that if you care about that, querying any of those once from your init file will not necessarily do what you want, and you should consider attaching to something like after-make-frame-functions. The global menu-bar-mode explicitly states that it applies to all current and future frames, too; toggle-menu-bar-mode-from-frame seems to be the per-frame version. But if it's just cosmetic and you don't care about some variance in that case, then whatever. :-)