summaryrefslogtreecommitdiff
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
commitb6cae76bb57ea622c81df353f64dac5c81f9fc8d (patch)
tree120309d82e34cdd8836953c33c63190cb87e04a0
parentcccc3bf9a6dab273671d0d814118b3fe29291be8 (diff)
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 3cec5df1..af9248c2 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)))