summaryrefslogtreecommitdiff
path: root/modules/host-environment.el
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
commita2c3de709f823d8efb1e2c36c94b26d91d93f6ad (patch)
tree140a766d6c1dd9d2b22f018199e5e24c1467f2d3 /modules/host-environment.el
parentd9c706407df7ad8464072a5a2f6f7a4b7d26ca8c (diff)
downloaddotemacs-a2c3de709f823d8efb1e2c36c94b26d91d93f6ad.tar.gz
dotemacs-a2c3de709f823d8efb1e2c36c94b26d91d93f6ad.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.
Diffstat (limited to 'modules/host-environment.el')
-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)))