summary refs log tree commit diff
path: root/gnu/packages/ratpoison.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/ratpoison.scm')
-rw-r--r--gnu/packages/ratpoison.scm67
1 files changed, 38 insertions, 29 deletions
diff --git a/gnu/packages/ratpoison.scm b/gnu/packages/ratpoison.scm
index 0c0687032d..14933da5a8 100644
--- a/gnu/packages/ratpoison.scm
+++ b/gnu/packages/ratpoison.scm
@@ -2,6 +2,7 @@
 ;;; Copyright © 2013, 2014, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -19,8 +20,9 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages ratpoison)
-  #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
+  #:use-module (guix packages)
   #:use-module (guix build-system gnu)
   #:use-module ((guix licenses) #:select (gpl2+))
   #:use-module (gnu packages)
@@ -44,42 +46,49 @@
              (patches (search-patches "ratpoison-shell.patch"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:modules ((ice-9 format)
+     (list
+      #:modules `((ice-9 format)
                   ,@%gnu-build-system-modules)
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'install 'install-xsession
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Add a .desktop file to xsessions.
-             (let* ((output    (assoc-ref outputs "out"))
-                    (xsessions (string-append output "/share/xsessions")))
-               (mkdir-p xsessions)
-               (call-with-output-file (string-append xsessions
-                                                     "/ratpoison.desktop")
-                 (lambda (port)
-                   (format port
-                           "[Desktop Entry]~@
+      ;; Specify the absolute location of xterm, as the user experience sucks
+      ;; when no terminal is available (can't consult help with 'C-t ?', for
+      ;; example).
+      #:configure-flags
+      #~(list (string-append "--with-xterm="
+                             (search-input-file %build-inputs "bin/xterm")))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'install-xsession
+            (lambda _
+              ;; Add a .desktop file to xsessions.
+              (let ((xsessions (string-append #$output "/share/xsessions")))
+                (mkdir-p xsessions)
+                (call-with-output-file (string-append xsessions
+                                                      "/ratpoison.desktop")
+                  (lambda (port)
+                    (format port
+                            "[Desktop Entry]~@
                             Name=ratpoison~@
                             Comment=Tiling window manager: say goodbye to the rodent!~@
                             Exec=~a/bin/ratpoison~@
                             TryExec=~@*~a/bin/ratpoison~@
                             Type=Application~%"
-                           output)))
-               #t))))))
+                            #$output)))))))))
     (inputs
-     `(("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("libXft" ,libxft)
-       ("libXi" ,libxi)
-       ("libxrandr" ,libxrandr)
-       ("libXpm" ,libxpm)
-       ("libXt" ,libxt)
-       ("libXtst" ,libxtst)
-       ("libX11" ,libx11)
-       ("readline" ,readline)
-       ("xorgproto" ,xorgproto)))
+     (list fontconfig
+           freetype
+           libxft
+           libxi
+           libxrandr
+           libxpm
+           libxt
+           libxtst
+           libx11
+           readline
+           xorgproto
+           xterm))
     (native-inputs
-     (list perl pkg-config))
+     (list perl
+           pkg-config))
     (home-page "https://www.nongnu.org/ratpoison/")
     (synopsis "Simple mouse-free tiling window manager")
     (description