gnu: libdvdcss: Update to 1.4.3.
[jackhill/guix/guix.git] / gnu / packages / ratpoison.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2013, 2014, 2019 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
4 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
5 ;;;
6 ;;; This file is part of GNU Guix.
7 ;;;
8 ;;; GNU Guix is free software; you can redistribute it and/or modify it
9 ;;; under the terms of the GNU General Public License as published by
10 ;;; the Free Software Foundation; either version 3 of the License, or (at
11 ;;; your option) any later version.
12 ;;;
13 ;;; GNU Guix is distributed in the hope that it will be useful, but
14 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 ;;; GNU General Public License for more details.
17 ;;;
18 ;;; You should have received a copy of the GNU General Public License
19 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21 (define-module (gnu packages ratpoison)
22 #:use-module (guix packages)
23 #:use-module (guix download)
24 #:use-module (guix build-system gnu)
25 #:use-module ((guix licenses) #:select (gpl2+))
26 #:use-module (gnu packages)
27 #:use-module (gnu packages xorg)
28 #:use-module (gnu packages perl)
29 #:use-module (gnu packages readline)
30 #:use-module (gnu packages pkg-config)
31 #:use-module (gnu packages fontutils))
32
33 (define-public ratpoison
34 (package
35 (name "ratpoison")
36 (version "1.4.9")
37 (source
38 (origin (method url-fetch)
39 (uri (string-append "mirror://savannah/ratpoison/ratpoison-"
40 version ".tar.xz"))
41 (sha256
42 (base32
43 "1wfir1gvh5h7izgvx2kd1pr2k7wlncd33zq7qi9s9k2y0aza93yr"))
44 (patches (search-patches "ratpoison-shell.patch"))))
45 (build-system gnu-build-system)
46 (arguments
47 `(#:modules ((ice-9 format)
48 ,@%gnu-build-system-modules)
49 #:phases
50 (modify-phases %standard-phases
51 (add-after 'install 'install-xsession
52 (lambda* (#:key outputs #:allow-other-keys)
53 ;; Add a .desktop file to xsessions.
54 (let* ((output (assoc-ref outputs "out"))
55 (xsessions (string-append output "/share/xsessions")))
56 (mkdir-p xsessions)
57 (call-with-output-file (string-append xsessions
58 "/ratpoison.desktop")
59 (lambda (port)
60 (format port
61 "[Desktop Entry]~@
62 Name=ratpoison~@
63 Comment=Tiling window manager: say goodbye to the rodent!~@
64 Exec=~a/bin/ratpoison~@
65 TryExec=~@*~a/bin/ratpoison~@
66 Type=Application~%"
67 output)))
68 #t))))))
69 (inputs
70 `(("fontconfig" ,fontconfig)
71 ("freetype" ,freetype)
72 ("libXft" ,libxft)
73 ("libXi" ,libxi)
74 ("libxrandr" ,libxrandr)
75 ("libXpm" ,libxpm)
76 ("libXt" ,libxt)
77 ("libXtst" ,libxtst)
78 ("libX11" ,libx11)
79 ("readline" ,readline)
80 ("xorgproto" ,xorgproto)))
81 (native-inputs
82 `(("perl" ,perl)
83 ("pkg-config" ,pkg-config)))
84 (home-page "https://www.nongnu.org/ratpoison/")
85 (synopsis "Simple mouse-free tiling window manager")
86 (description
87 "Ratpoison is a simple window manager with no fat library
88 dependencies, no fancy graphics, no window decorations, and no
89 rodent dependence. It is largely modelled after GNU Screen which
90 has done wonders in the virtual terminal market.
91
92 The screen can be split into non-overlapping frames. All windows
93 are kept maximized inside their frames to take full advantage of
94 your precious screen real estate.
95
96 All interaction with the window manager is done through keystrokes.
97 Ratpoison has a prefix map to minimize the key clobbering that
98 cripples Emacs and other quality pieces of software.")
99 (license gpl2+)))