aboutsummaryrefslogtreecommitdiff
path: root/gnu/services
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/services')
-rw-r--r--gnu/services/desktop.scm22
1 files changed, 22 insertions, 0 deletions
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 8972529179..517d5d3efe 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -94,6 +94,8 @@
xfce-desktop-service
xfce-desktop-service-type
+ x11-socket-directory-service
+
%desktop-services))
;;; Commentary:
@@ -882,6 +884,24 @@ with the administrator's password."
;;;
+;;; X11 socket directory service
+;;;
+
+(define x11-socket-directory-service
+ ;; Return a service that creates /tmp/.X11-unix. When using X11, libxcb
+ ;; takes care of creating that directory. However, when using XWayland, we
+ ;; need to create beforehand. Thus, create it unconditionally here.
+ (simple-service 'x11-socket-directory
+ activation-service-type
+ (with-imported-modules '((guix build utils))
+ #~(begin
+ (use-modules (guix build utils))
+ (let ((directory "/tmp/.X11-unix"))
+ (mkdir-p directory)
+ (chmod directory #o777))))))
+
+
+;;;
;;; The default set of desktop services.
;;;
@@ -912,6 +932,8 @@ with the administrator's password."
(ntp-service)
+ x11-socket-directory-service
+
%base-services))
;;; desktop.scm ends here