aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Andrews <kyle.c.andrews@gmail.com>2019-09-14 15:43:53 -0400
committerLudovic Courtès <ludo@gnu.org>2019-09-16 10:57:58 +0200
commit1d25447e8b1003a4c53d656fab13a62604a755b3 (patch)
treeffd73f0f86bdf650c2f23b0fc91105ce65c3d5c7
parenta1a4a4071528104fe192cccbe59d64bf2ca485c3 (diff)
downloadpatches-1d25447e8b1003a4c53d656fab13a62604a755b3.tar
patches-1d25447e8b1003a4c53d656fab13a62604a755b3.tar.gz
gnu: Add herbstluftwm.
* gnu/packages/wm.scm (herbstluftwm): New variable. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r--gnu/packages/wm.scm81
1 files changed, 81 insertions, 0 deletions
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index c4b15cc755..e19c6c1438 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -21,6 +21,7 @@
;;; Copyright © 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2019 Timothy Sample <samplet@ngyro.com>
;;; Copyright © 2019 Gábor Boskovits <boskovits@gmail.com>
+;;; Copyright © 2019 Kyle Andrews <kyle.c.andrews@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -128,6 +129,86 @@
the leaves of a full binary tree.")
(license license:bsd-2)))
+(define-public herbstluftwm
+ (package
+ (name "herbstluftwm")
+ (version "0.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://herbstluftwm.org/tarballs/herbstluftwm-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1kc18aj9j3nfz6fj4qxg9s3gg4jvn6kzi3ii24hfm0vqdpy17xnz"))
+ (file-name (string-append "herbstluftwm-" version ".tar.gz"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("dzen" ,dzen)
+ ("dmenu" ,dmenu)
+ ("glib" ,glib)
+ ("glibmm" ,glibmm)
+ ("xterm" ,xterm)
+ ("xsetroot" ,xsetroot)
+ ("libx11" ,libx11)
+ ("libxext" ,libxext)
+ ("libxinerama" ,libxinerama)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'check)
+ (add-after 'install 'install-xsession
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (xsessions (string-append out "/share/xsessions")))
+ (mkdir-p xsessions)
+ (call-with-output-file
+ (string-append xsessions "/herbstluftwm.desktop")
+ (lambda (port)
+ (format port "~
+ [Desktop Entry]~@
+ Name=herbstluftwm~@
+ Comment=Manual tiling window manager~@
+ Exec=~a/bin/herbstluftwm~@
+ Type=XSession~%" out)))
+ #t))))
+ #:tests? #f
+ #:make-flags
+ (let ((out (assoc-ref %outputs "out")))
+ (list "CC=gcc"
+ (string-append "PREFIX=''")
+ (string-append "DESTDIR=" out)
+ (string-append "BASHCOMPLETIONDIR=" out
+ "/etc/bash_completion.d")))))
+ (synopsis "Tiling window manager for X11")
+ (description "herbstluftwm is a manual tiling window manager for X11 using
+Xlib and GLib. Its main features are:
+
+@itemize
+@item
+The layout is based on splitting frames into subframes which can be split
+again or can be filled with windows (similar to i3 or musca).
+
+@item
+Tags (or workspaces or virtual desktops or …) can be added/removed at runtime.
+Each tag contains an own layout.
+
+@item
+Exactly one tag is viewed on each monitor. The tags are monitor independent
+(similar to Xmonad).
+
+@item
+It is configured at runtime via IPC calls from @command{herbstclient}. So the
+configuration file is just a script which is run on startup (similar to wmii
+or musca).
+
+@end itemize")
+ (home-page "https://herbstluftwm.org")
+ (license license:bsd-2)))
+
(define-public i3status
(package
(name "i3status")