Subject: [PATCH v2] gnu: Add xinitrc-xsession.

From: John Kehayias <[email-masked]>
Date: Mon, 27 Dec 2021 05:13:17 +0000

I forgot to note in the description that ~/.xinitrc needs to be executable for this xsession to run. Attached is the revised patch.

Thanks!
John

From 5a974cce288973199d891223b3d9b84b2c683bb0 Mon Sep 17 00:00:00 2001
From: John Kehayias <[email-masked]>
Date: Sun, 26 Dec 2021 11:43:26 -0500
Subject: [PATCH] gnu: Add xinitrc-xsession.

* gnu/packages/wm.scm (xinitrc-xsession): New variable.
---
 gnu/packages/wm.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index c6881154fe..39c447c07d 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -48,6 +48,7 @@
 ;;; Copyright © 2021 Petr Hodina <[email-masked]>
 ;;; Copyright © 2021 jgart <[email-masked]>
 ;;; Copyright © 2021 Disseminate Dissent <[email-masked]>
+;;; Copyright © 2021 John Kehayias <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -71,6 +72,7 @@ (define-module (gnu packages wm)
   #:use-module (guix git-download)
   #:use-module (guix build-system asdf)
   #:use-module (guix build-system cmake)
+  #:use-module (guix build-system copy)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system haskell)
   #:use-module (guix build-system meson)
@@ -2317,6 +2319,43 @@ (define-public xclickroot
 button is pressed on the root window.")
     (license license:public-domain)))
 
+(define-public xinitrc-xsession
+  (let ((commit "cbfc77a1ccaf07b7d8a35f4d8007c7102f365374"))
+    (package
+      (name "xinitrc-xsession")
+      (version "1-3")
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://aur.archlinux.org/xinit-xsession.git")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "12nv3qyjhy2l9mcb547f414d8bj79mhdhsra0g8x7x71b1xxl15b"))))
+      (build-system copy-build-system)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'patch-xsession-file
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (xinitrc-helper (string-append out "/bin/xinitrcsession-helper")))
+                 (substitute* (string-append out "/share/xsessions/xinitrc.desktop")
+                   (("Exec=xinitrcsession-helper")
+                    (string-append "Exec=" xinitrc-helper)))))))
+         #:install-plan
+         '(("xinitrcsession-helper" "bin/")
+           ("xinitrc.desktop" "share/xsessions/"))))
+      (home-page "https://aur.archlinux.org/packages/xinit-xsession/")
+      (synopsis "Use ~/.xinitrc as an xsession from your display manager")
+      (description
+       "Allows @code{~/.xinitrc} to be run as a session from your display manager.
+Make @code{~/.xinitrc} executable and use this package in your system
+configuration to use this xsession.")
+      (license license:gpl3))))
+
 (define-public xmenu
   (package
     (name "xmenu")
-- 
2.34.1