summary refs log tree commit diff
diff options
context:
space:
mode:
authorSiniša Biđin <sinisa@bidin.eu>2015-09-11 03:11:51 -0500
committerEric Bavier <bavier@member.fsf.org>2015-09-11 03:18:32 -0500
commit6e38c4be4fc1de24c03cd556df98374babaf9666 (patch)
tree8e035969520983abe40da91cf606ad246278245a
parent574d9db2cefd225f3977ea051db7a286b792a9f6 (diff)
downloadguix-6e38c4be4fc1de24c03cd556df98374babaf9666.tar.gz
gnu: Add xmonad.
* gnu/packages/wm.scm (xmonad): New variable.

Co-authored-by: Eric Bavier <bavier@member.fsf.org>
-rw-r--r--gnu/packages/wm.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 6f05b88bbb..f85bca491a 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -1,5 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
+;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
+;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,6 +23,8 @@
   #:use-module (guix packages)
   #:use-module (gnu packages linux)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system haskell)
+  #:use-module (gnu packages haskell)
   #:use-module (gnu packages base)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages perl)
@@ -143,3 +147,50 @@ commands would.")
 from scratch.  i3 is primarily targeted at advanced users and
 developers.")
     (license bsd-3)))
+
+(define-public xmonad
+  (package
+    (name "xmonad")
+    (version "0.11.1")
+    (synopsis "Tiling window manager")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://hackage.haskell.org/package/xmonad/"
+                                  "xmonad-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1pfjssamiwpwjp1qqkm9m9p9s35pv381m0cwg6jxg0ppglibzq1r"))))
+    (build-system haskell-build-system)
+    (inputs
+     `(("ghc-mtl" ,ghc-mtl)
+       ("ghc-utf8-string" ,ghc-utf8-string)
+       ("ghc-extensible-exceptions" ,ghc-extensible-exceptions)
+       ("ghc-x11" ,ghc-x11)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after
+          'install 'install-xsession
+          (lambda _
+            (let* ((xsessions (string-append %output "/share/xsessions")))
+              (mkdir-p xsessions)
+              (call-with-output-file
+                  (string-append xsessions "/xmonad.desktop")
+                (lambda (port)
+                  (format port "~
+                    [Desktop Entry]~@
+                    Name=~a~@
+                    Comment=~a~@
+                    Exec=~a/bin/xmonad~@
+                    Type=Application~%" ,name ,synopsis %output)))))))))
+    (home-page "http://xmonad.org")
+    (description
+     "Xmonad is a tiling window manager for X.  Windows are arranged
+automatically to tile the screen without gaps or overlap, maximising screen
+use.  All features of the window manager are accessible from the keyboard: a
+mouse is strictly optional.  Xmonad is written and extensible in Haskell.
+Custom layout algorithms, and other extensions, may be written by the user in
+config files.  Layouts are applied dynamically, and different layouts may be
+used on each workspace.  Xinerama is fully supported, allowing windows to be
+tiled on several screens.")
+    (license bsd-3)))