summary refs log tree commit diff
path: root/gnu/services
diff options
context:
space:
mode:
authorThorsten Wilms <self@thorstenwilms.com>2018-03-31 14:34:50 +0200
committerLudovic Courtès <ludo@gnu.org>2018-04-04 14:39:39 +0200
commitcd730719846538bf04061f85adc1651f8c2a509d (patch)
tree107c25ba446df3bab7277002e0a28f1e3ecc55da /gnu/services
parent02e7e3f97378e4a220ca644ea6af47c662a9e7fe (diff)
downloadguix-cd730719846538bf04061f85adc1651f8c2a509d.tar.gz
gnu: Add x11-socket-directory-service.
* gnu/services/desktop.scm (x11-socket-directory-service): New
variable.
(%desktop-services): Add it.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
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