images: wsl2: Create XDG_RUNTIME_DIR on first login.
* gnu/system/images/wsl2.scm (wsl-boot-program): Create XDG_RUNTIME_DIR on first login and set it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>master
parent
9369c1ccf4
commit
c50cd1bbec
|
@ -1,6 +1,7 @@
|
||||||
;;; GNU Guix --- Functional package management for GNU
|
;;; GNU Guix --- Functional package management for GNU
|
||||||
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2022 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
|
;;; Copyright © 2022 Mathieu Othacehe <othacehe@gnu.org>
|
||||||
|
;;; Copyright © 2022 dan <i@dan.games>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -75,7 +76,11 @@ USER."
|
||||||
(let* ((pw (getpw #$user))
|
(let* ((pw (getpw #$user))
|
||||||
(shell (passwd:shell pw))
|
(shell (passwd:shell pw))
|
||||||
(sudo #+(file-append sudo "/bin/sudo"))
|
(sudo #+(file-append sudo "/bin/sudo"))
|
||||||
(args (cdr (command-line))))
|
(args (cdr (command-line)))
|
||||||
|
(uid (passwd:uid pw))
|
||||||
|
(gid (passwd:gid pw))
|
||||||
|
(runtime-dir (string-append "/run/user/"
|
||||||
|
(number->string uid))))
|
||||||
;; Save the value of $PATH set by WSL. Useful for finding
|
;; Save the value of $PATH set by WSL. Useful for finding
|
||||||
;; Windows binaries to run with WSL's binfmt interop.
|
;; Windows binaries to run with WSL's binfmt interop.
|
||||||
(setenv "WSLPATH" (getenv "PATH"))
|
(setenv "WSLPATH" (getenv "PATH"))
|
||||||
|
@ -88,9 +93,15 @@ USER."
|
||||||
MS_REMOUNT
|
MS_REMOUNT
|
||||||
#:update-mtab? #f)
|
#:update-mtab? #f)
|
||||||
|
|
||||||
|
;; Create XDG_RUNTIME_DIR for the login user.
|
||||||
|
(unless (file-exists? runtime-dir)
|
||||||
|
(mkdir runtime-dir)
|
||||||
|
(chown runtime-dir uid gid))
|
||||||
|
(setenv "XDG_RUNTIME_DIR" runtime-dir)
|
||||||
|
|
||||||
;; Start login shell as user.
|
;; Start login shell as user.
|
||||||
(apply execl sudo "sudo"
|
(apply execl sudo "sudo"
|
||||||
"--preserve-env=WSLPATH"
|
"--preserve-env=WSLPATH,XDG_RUNTIME_DIR"
|
||||||
"-u" #$user
|
"-u" #$user
|
||||||
"--"
|
"--"
|
||||||
shell "-l" args))))))
|
shell "-l" args))))))
|
||||||
|
|
Reference in New Issue