aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-02-01 02:00:38 -0600
committerCraig Jennings <c@cjennings.net>2026-02-01 02:00:38 -0600
commitde541b71c62932ac9f3594765aafd93ae3ae7efe (patch)
treea7f26994682360655acc393d5c399dd12cd3dc62
parent582963234931d48586df3597e572553c0526b539 (diff)
downloaddotemacs-de541b71c62932ac9f3594765aafd93ae3ae7efe.tar.gz
dotemacs-de541b71c62932ac9f3594765aafd93ae3ae7efe.zip
feat(env): add X11 and Wayland detection functions
env-x11-p returns t when on X11 (not Wayland). env-wayland-p checks WAYLAND_DISPLAY env var, works with XWayland.
-rw-r--r--modules/host-environment.el11
1 files changed, 11 insertions, 0 deletions
diff --git a/modules/host-environment.el b/modules/host-environment.el
index 3cec5df1c..af9248c2a 100644
--- a/modules/host-environment.el
+++ b/modules/host-environment.el
@@ -44,6 +44,17 @@
"Return t if host system is running the X Window System."
(string= (window-system) "x"))
+(defun env-x11-p ()
+ "Return t if running under X11 (not Wayland)."
+ (and (eq (window-system) 'x)
+ (not (getenv "WAYLAND_DISPLAY"))))
+
+(defun env-wayland-p ()
+ "Return t if running under Wayland.
+Checks WAYLAND_DISPLAY env var, which is set by Wayland compositors.
+This returns t even if Emacs is running through XWayland."
+ (and (getenv "WAYLAND_DISPLAY") t))
+
(defun env-terminal-p ()
"Return t if running in a terminal."
(not (display-graphic-p)))