aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Griffin <a@ajgrf.com>2019-10-12 13:55:49 -0500
committerAlex Griffin <a@ajgrf.com>2019-10-29 21:15:08 -0500
commit51add2a97b54d6666f14a6e1286e22a559f0d0b1 (patch)
tree8f439ad9b49f68932dca5dd141826ab809083fa3
parentd392f8039a943b070369ecde44cfed8435ac12ad (diff)
downloadguix-51add2a97b54d6666f14a6e1286e22a559f0d0b1.tar
guix-51add2a97b54d6666f14a6e1286e22a559f0d0b1.tar.gz
gnu: Add kmonad.
* gnu/packages/haskell-apps.scm (kmonad): New variable.
-rw-r--r--gnu/packages/haskell-apps.scm59
1 files changed, 59 insertions, 0 deletions
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index beecb0392d..0fab912f4f 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -12,6 +12,7 @@
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -498,6 +499,64 @@ with CSS and mouseover annotations, XHTML 1.0 with inline CSS styling, LaTeX,
and mIRC chat codes.")
(license license:bsd-3)))
+(define-public kmonad
+ (package
+ (name "kmonad")
+ (version "0.2.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/david-janssen/kmonad.git")
+ (commit "06d7b8c709efa695be35df9bde91275cbb2ba099")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1rjr4h5yq63x3kad6yn4p8v26389sd9dgr5n2w73s1chafapzwwd"))))
+ (build-system haskell-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'haddock) ; Haddock fails to generate docs
+ (add-after 'install 'install-udev-rules
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (rules (string-append out "/lib/udev/rules.d")))
+ (mkdir-p rules)
+ (call-with-output-file (string-append rules "/70-kmonad.rules")
+ (lambda (port)
+ (display
+ (string-append
+ "KERNEL==\"uinput\", MODE=\"0660\", "
+ "GROUP=\"input\", OPTIONS+=\"static_node=uinput\"\n")
+ port)))
+ #t)))
+ (add-after 'install-udev-rules 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (doc (string-append out "/share/doc/kmonad-" ,version)))
+ (install-file "README.md" doc)
+ (copy-recursively "doc" doc)
+ (copy-recursively "example" (string-append doc "/example"))
+ #t))))))
+ (inputs
+ `(("ghc-cereal" ,ghc-cereal)
+ ("ghc-exceptions" ,ghc-exceptions)
+ ("ghc-hashable" ,ghc-hashable)
+ ("ghc-lens" ,ghc-lens)
+ ("ghc-megaparsec" ,ghc-megaparsec-7)
+ ("ghc-optparse-applicative" ,ghc-optparse-applicative)
+ ("ghc-unagi-chan" ,ghc-unagi-chan)
+ ("ghc-unliftio" ,ghc-unliftio)
+ ("ghc-unordered-containers" ,ghc-unordered-containers)))
+ (home-page "https://github.com/david-janssen/kmonad")
+ (synopsis "Advanced keyboard manager")
+ (description "KMonad is a keyboard remapping utility that supports
+advanced functionality, such as custom keymap layers and modifiers, macros,
+and conditional mappings that send a different keycode when tapped or held.
+By operating at a lower level than most similar tools, it supports X11,
+Wayland, and Linux console environments alike.")
+ (license license:expat)))
+
(define-public raincat
(package
(name "raincat")