diff options
author | Oleg Pykhalov <go.wigust@gmail.com> | 2018-07-02 07:23:32 +0300 |
---|---|---|
committer | Oleg Pykhalov <go.wigust@gmail.com> | 2018-07-03 07:29:30 +0300 |
commit | a6a2ef27a389f5ff88b752ba56a7f34d94cb087b (patch) | |
tree | ff233548e64ad3c55941194c3fceb405bad5c4cf | |
parent | ae6fa00af02399e2ffadccc81bd7718cc7c26f10 (diff) | |
download | guix-a6a2ef27a389f5ff88b752ba56a7f34d94cb087b.tar.gz |
gnu: Add keynav.
* gnu/packages/xorg.scm (keynav): New variable.
-rw-r--r-- | gnu/packages/xorg.scm | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 7ce543790f..4bad8f23fe 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> +;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -6119,3 +6120,67 @@ and embedded platforms.") (append configure-flags (list "--with-qt4-immodule" "--with-qt4"))))) (synopsis "Multilingual input method framework (Qt support)"))) + +(define-public keynav + (package + (name "keynav") + (version "0.20110708.0") + (source + (origin + (method url-fetch) + (uri (string-append + "http://http.debian.net/debian/pool/main/k/keynav/keynav_" + version ".orig.tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1gizjhji3yspxxxvb90js3z1bv18rbf5phxg8rciixpj3cccff8z")))) + (build-system gnu-build-system) + (inputs + `(("cairo" ,cairo) + ("glib" ,glib) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxinerama" ,libxinerama) + ("libxtst" ,libxtst) + ("xdotool" ,xdotool))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments + `(#:tests? #f ;No tests. + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'setenv + (lambda _ + (setenv "CC" (which "gcc")) + #t)) + (add-after 'unpack 'patch-keynav + (lambda _ + (substitute* "keynav.c" + (("xdo_symbol_map") "xdo_get_symbol_map") + (("xdo_window_setclass") "xdo_set_window_class") + (("xdo_window_get_active") "xdo_get_window_at_mouse") + (("xdo_click") "xdo_click_window") + (("xdo_mouseup") "xdo_mouse_up") + (("xdo_mousedown") "xdo_mouse_down") + (("xdo_mousemove") "xdo_move_mouse") + (("xdo_mousemove_relative") "xdo_move_mouse_relative") + (("xdo_mouselocation") "xdo_get_mouse_location") + (("xdo_mouse_wait_for_move_to") "xdo_wait_for_mouse_move_to") + (("xdo_keysequence_up") "xdo_send_keysequence_window_up") + (("xdo_keysequence_down") "xdo_send_keysequence_window_down")) + #t)) + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (install-file "keynav" (string-append out "/bin")) + (install-file "keynavrc" (string-append out "/etc"))) + #t))))) + (home-page "https://www.semicomplete.com/projects/keynav/") + (synopsis "Keyboard-driven mouse cursor mover") + (description + "Keynav makes your keyboard a fast mouse cursor mover. You can move the +cursor to any point on the screen with a few key strokes. It also simulates +mouse click. You can do everything mouse can do with a keyboard.") + (license license:bsd-3))) |