summaryrefslogtreecommitdiff
path: root/gnu/packages/xdisorg.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-01-30 11:33:18 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-01-30 12:39:40 +0200
commit4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch)
tree9fd64956ee60304c15387eb394cd649e49f01467 /gnu/packages/xdisorg.scm
parentedb8c09addd186d9538d43b12af74d6c7aeea082 (diff)
parent595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
Diffstat (limited to 'gnu/packages/xdisorg.scm')
-rw-r--r--gnu/packages/xdisorg.scm340
1 files changed, 266 insertions, 74 deletions
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 9b45d51637..8364a72955 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -56,6 +56,7 @@
;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
;;; Copyright © 2022 Derek Chuank <derekchuank@outlook.com>
;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com>
+;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -96,6 +97,7 @@
#:use-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages datastructures)
#:use-module (gnu packages documentation)
#:use-module (gnu packages flex)
#:use-module (gnu packages fontutils)
@@ -111,6 +113,8 @@
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages icu4c)
#:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages kde-frameworks)
#:use-module (gnu packages libbsd)
#:use-module (gnu packages libevent)
#:use-module (gnu packages linux)
@@ -208,14 +212,14 @@ command line, without displaying a keyboard at all.")
(define-public arandr
(package
(name "arandr")
- (version "0.1.10")
+ (version "0.1.11")
(source (origin
(method url-fetch)
(uri (string-append "https://christian.amsuess.com/tools/arandr"
"/files/arandr-" version ".tar.gz"))
(sha256
(base32
- "135q0llvm077jil2fr92ssw3p095m4r8jfj0lc5rr3m71n4srj6v"))
+ "00mfhaqjxx4m3y0ml44infpbp500prs031vhawwjp0dvk0vbxjz4"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -223,8 +227,7 @@ command line, without displaying a keyboard at all.")
;; pages (this is equivalent to 'gzip --no-name'.)
(substitute* "setup.py"
(("gzip\\.open\\(gzfile, 'w', 9\\)")
- "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))
- #t))))
+ "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)"))))))
(build-system python-build-system)
(arguments
`(#:phases
@@ -233,22 +236,16 @@ command line, without displaying a keyboard at all.")
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "screenlayout/xrandr.py"
(("\"xrandr\"") (string-append "\"" (assoc-ref inputs "xrandr")
- "/bin/xrandr\"")))
- #t))
+ "/bin/xrandr\"")))))
(add-after 'install 'wrap-gi-typelib
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(gi-typelib-path (getenv "GI_TYPELIB_PATH")))
(wrap-program (string-append out "/bin/arandr")
- `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))
- #t)))
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))))
#:tests? #f)) ;no tests
- (inputs `(("gtk+" ,gtk+)
- ("pycairo" ,python-pycairo)
- ("pygobject" ,python-pygobject)
- ("xrandr" ,xrandr)))
- (native-inputs `(("gettext" ,gettext-minimal)
- ("python-docutils" ,python-docutils)))
+ (inputs (list gtk+ python-pycairo python-pygobject xrandr))
+ (native-inputs (list gettext-minimal python-docutils))
(home-page "https://christian.amsuess.com/tools/arandr/")
(synopsis "Another RandR graphical user interface")
;; TRANSLATORS: "X11 resize-and-rotate" should not be translated.
@@ -313,7 +310,7 @@ used to further tweak the behaviour of the different profiles.")
(define-public bemenu
(package
(name "bemenu")
- (version "0.6.4")
+ (version "0.6.13")
(source
(origin
(method git-fetch)
@@ -322,27 +319,28 @@ used to further tweak the behaviour of the different profiles.")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "18vplvnymgc6576sdh84lm5rlwyb9d038plqpjs638hzskf4q577"))))
+ (base32 "0pjlm3gl85k7yhj594pmvfg6xfr1r3rmb68bb7212r4mxhj80rk0"))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f
- #:make-flags (list ,(string-append "CC=" (cc-for-target))
- "CFLAGS=-O2 -fPIC"
- (string-append "LDFLAGS=-Wl,-rpath="
- (assoc-ref %outputs "out") "/lib")
- (string-append "PREFIX=" (assoc-ref %outputs "out")))
- #:phases
- (modify-phases %standard-phases
- (delete 'configure)))) ; no configure script
+ (list
+ #:tests? #f
+ #:make-flags
+ #~(list (string-append "CC=" #$(cc-for-target))
+ "CFLAGS=-O2 -fPIC"
+ (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib")
+ (string-append "PREFIX=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)))) ; no configure script
(inputs
- `(("cairo" ,cairo)
- ("libx11" ,libx11)
- ("libxkbcomon" ,libxkbcommon)
- ("libxinerama" ,libxinerama)
- ("ncurses" ,ncurses)
- ("pango" ,pango)
- ("wayland" ,wayland)
- ("wayland-protocols" ,wayland-protocols)))
+ (list cairo
+ libx11
+ libxkbcommon
+ libxinerama
+ ncurses
+ pango
+ wayland
+ wayland-protocols))
(native-inputs
(list doxygen pkg-config))
(home-page "https://github.com/Cloudef/bemenu")
@@ -357,7 +355,7 @@ with X11 or Wayland, or in a text terminal with ncurses.")
(define-public copyq
(package
(name "copyq")
- (version "3.9.3")
+ (version "6.3.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -366,13 +364,23 @@ with X11 or Wayland, or in a text terminal with ncurses.")
(file-name (git-file-name name version))
(sha256
(base32
- "0wlwq9xg8rzsbj0b29z358k4mbrqy04iraa8x0p26pa95yskgcma"))))
+ "0qdf7lr6bdmsnz1k5nnzmbv4h0xj8jqg92x6089qdaz5s87x7vqr"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release")
- #:tests? #f)) ; Test suite is a rather manual process.
+ (list
+ #:configure-flags #~(list "-DCMAKE_BUILD_TYPE=Release")
+ #:tests? #f)) ; Test suite is a rather manual process.
(inputs
- (list qtbase-5 qtscript qtsvg-5 qtx11extras))
+ (list qtbase-5
+ qtscript
+ qtsvg-5
+ qtx11extras
+ qtdeclarative-5
+ qtwayland-5
+ wayland
+ knotifications))
+ (native-inputs
+ (list extra-cmake-modules qttools-5))
(synopsis "Clipboard manager with advanced features")
(description "CopyQ is clipboard manager with editing and scripting
features. CopyQ monitors system clipboard and saves its content in customized
@@ -503,7 +511,12 @@ avoiding password prompts when X11 forwarding has already been setup.")
wayland-protocols
xkeyboard-config))
(native-inputs
- (list bison doxygen pkg-config python))
+ (append (list bison doxygen pkg-config python)
+ (if (%current-target-system)
+ ;; wayland-scanner is required at build time.
+ ;; TODO: Remove this conditional on core-updates.
+ (list pkg-config-for-build wayland)
+ '())))
(arguments
(list #:configure-flags
#~(list (string-append "-Dxkb-config-root="
@@ -1127,19 +1140,19 @@ transparent text on your screen.")
(define-public wob
(package
(name "wob")
- (version "0.13")
+ (version "0.14.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/francma/wob/releases/download/"
version "/wob-" version ".tar.gz"))
(sha256
- (base32 "0i8y6kq37qcgdq85ll4rapisjl7zw6aa11yx2f2xw2d3j93kdxh8"))))
+ (base32 "12s9pc0dhqgawq6jiqhamj1zq9753kgpswny1rcsdx1lkpzrgaq1"))))
(build-system meson-build-system)
(native-inputs
(list pkg-config scdoc))
(inputs
- (list libseccomp wayland wayland-protocols))
+ (list libinih libseccomp wayland wayland-protocols))
(home-page "https://github.com/francma/wob")
(synopsis "Lightweight overlay bar for Wayland")
(description
@@ -1809,7 +1822,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
(define-public rofi
(package
(name "rofi")
- (version "1.7.3")
+ (version "1.7.5")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/davatorium/rofi/"
@@ -1817,7 +1830,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
version "/rofi-" version ".tar.xz"))
(sha256
(base32
- "0yxn9pmn9zp0k5ygnjqbj1pmp73g53wa47r145a8qcwqzxl8p1i5"))))
+ "138c4bl60p7namsb2pk8q5cdlxbdkli7zny192vk5jv5s5kczzya"))))
(build-system gnu-build-system)
(native-inputs
(list bison
@@ -1852,7 +1865,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.")
(substitute* '("test/helper-expand.c")
(("~root") "/root")
(("~") "")
- (("g_get_home_dir \\(\\)") "\"/\"")))))))
+ (("g_get_home_dir\\(\\)") "\"/\"")))))))
(home-page "https://github.com/davatorium/rofi")
(synopsis "Application launcher")
(description "Rofi is a minimalist application launcher. It memorizes which
@@ -1860,6 +1873,30 @@ applications you regularly use and also allows you to search for an application
by name.")
(license license:expat)))
+(define-public rofi-wayland
+ (let ((base rofi))
+ (package
+ (inherit rofi)
+ (name "rofi-wayland")
+ (version "1.7.5+wayland1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/lbonn/rofi"
+ "/releases/download/" version
+ "/rofi-" version ".tar.xz"))
+ (sha256
+ (base32
+ "09n71wv3nxpzpjmvqmxlxk0zfln3x2l8admfq571781p9hw0w6wp"))))
+ (build-system meson-build-system)
+ (inputs
+ (modify-inputs (package-inputs base)
+ (append wayland wayland-protocols)))
+ (description
+ (string-append
+ (package-description base)
+ " This package, @code{rofi-wayland}, provides additional wayland
+support.")))))
+
(define-public rofi-calc
(package
(name "rofi-calc")
@@ -1914,6 +1951,7 @@ natural language input and provide results.")
(uri (git-reference
(url (string-append "https://gitlab.com/o9000/" name "/"))
(commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
"123apmgs6x2zfv1q57dyl4mwqf0vsw5ndh5jsg6p3fvhr66l1aja"))))
@@ -2434,10 +2472,52 @@ binary to setuid-binaries:
@end example")
(license license:asl2.0)))
+(define-public wl-color-picker
+ (package
+ (name "wl-color-picker")
+ (version "1.3")
+ (home-page "https://github.com/jgmdev/wl-color-picker")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0h5b8qfwri7a1invk8dran3436ac37x6r8fic3l5cxqj5rgnky4n"))))
+ (build-system copy-build-system)
+ (arguments
+ `(#:install-plan '(("wl-color-picker.sh" "bin/wl-color-picker")
+ ("wl-color-picker.png" "share/pixmaps/")
+ ("wl-color-picker.svg"
+ "share/icons/hicolor/scalable/apps/")
+ ("wl-color-picker.desktop" "share/applications/"))
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'wrap-script
+ (lambda* (#:key outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/wl-color-picker")
+ `("PATH" =
+ (,(getenv "PATH")))))))))
+ (inputs (list coreutils-minimal
+ bash-minimal
+ grim
+ hicolor-icon-theme
+ imagemagick
+ slurp
+ wl-clipboard
+ zenity))
+ (synopsis "Wayland color picker")
+ (description
+ "@command{wl-color-picker} is a script that provides color picker for
+Wayland and @code{wlroots} by leveraging @command{grim} and @command{slurp}.")
+ (license license:expat)))
+
(define-public wl-clipboard
(package
(name "wl-clipboard")
- (version "2.0.0")
+ (version "2.1.0")
(source
(origin
(method git-fetch)
@@ -2446,20 +2526,25 @@ binary to setuid-binaries:
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d"))))
+ (base32 "1g6hcsn4klapvz3bw0k8syixwyyi4cl1c7vbc6f1a2hjpcf4pawn"))))
(build-system meson-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-file-names
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* (find-files "src" "\\.c$")
- (("\"(cat|rm)\"" _ command)
- (string-append "\"" (assoc-ref inputs "coreutils")
- "/bin/" command "\""))
- (("\"xdg-mime\"")
- (string-append "\"" (assoc-ref inputs "xdg-utils")
- "/bin/xdg-mime\""))))))))
+ (list #:configure-flags
+ #~(list (string-append "-Dzshcompletiondir=" #$output
+ "/share/zsh/site-functions")
+ (string-append "-Dfishcompletiondir=" #$output
+ "/share/fish/completions"))
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-file-names
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* (find-files "src" "\\.c$")
+ (("\"(cat|rm)\"" _ command)
+ (string-append "\"" (assoc-ref inputs "coreutils")
+ "/bin/" command "\""))
+ (("\"xdg-mime\"")
+ (string-append "\"" (assoc-ref inputs "xdg-utils")
+ "/bin/xdg-mime\""))))))))
(native-inputs
(list pkg-config))
(inputs
@@ -2540,7 +2625,7 @@ The cutbuffer and clipboard selection are always synchronized.")
(define-public jgmenu
(package
(name "jgmenu")
- (version "4.4.0")
+ (version "4.4.1")
(source
(origin
(method git-fetch)
@@ -2549,7 +2634,7 @@ The cutbuffer and clipboard selection are always synchronized.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "08dyygclayyipa0p2qsxqa3fsfyflkrkhpi25dkc3ybkicvynk24"))))
+ (base32 "1a9irlrpa3mi3101cn9hi1ch5k1v4p0h83ni5j63qmlc5g7pcbsh"))))
(build-system gnu-build-system)
(native-inputs
(list cppcheck perl pkg-config))
@@ -2569,8 +2654,7 @@ The cutbuffer and clipboard selection are always synchronized.")
(lambda* (#:key outputs #:allow-other-keys)
(setenv "CC" ,(cc-for-target))
(invoke "./configure"
- (string-append "--prefix=" (assoc-ref outputs "out")))
- #t)))))
+ (string-append "--prefix=" (assoc-ref outputs "out"))))))))
(synopsis "Simple X11 menu")
(description
"This is a simple menu for X11 designed for scripting and tweaking. It
@@ -2914,10 +2998,46 @@ using @command{dmenu}.")
(home-page "https://github.com/enkore/j4-dmenu-desktop")
(license license:gpl3+)))
+(define-public fuzzel
+ (package
+ (name "fuzzel")
+ (version "1.8.2")
+ (home-page "https://codeberg.org/dnkl/fuzzel")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference (url home-page) (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1d6xy4q5s8p5ckvd9wy3zzj9gh7nh9v1qhn3938b1wfhfzjdzrg6"))))
+ (build-system meson-build-system)
+ (arguments
+ (list #:build-type "release"
+ #:configure-flags #~(list "-Denable-cairo=enabled"
+ "-Dpng-backend=libpng"
+ "-Dsvg-backend=librsvg")))
+ (native-inputs (list pkg-config scdoc tllist))
+ (inputs (list cairo
+ fcft
+ fontconfig
+ libpng
+ libxkbcommon
+ librsvg ;if librsvg is not used, bundled nanosvg is used
+ pixman
+ wayland
+ wayland-protocols))
+ (synopsis "Wayland-native application launcher")
+ (description
+ "@command{fuzzel} is a Wayland-native application launcher, similar to
+rofi's drun mode. It has Emacs key bindings and remembers frequently launched
+applications. The font and colors can be configured.")
+ (license (list license:expat ;fuzzel
+ license:zlib)))) ;; bundled nanosvg
+
(define-public wofi
(package
(name "wofi")
- (version "1.2.4")
+ (version "1.3")
(source (origin
(method hg-fetch)
(uri (hg-reference
@@ -2926,15 +3046,14 @@ using @command{dmenu}.")
(file-name (git-file-name name version))
(sha256
(base32
- "1bnf078fg1kwslzwm1mjxwcqqq3bhk1dzymwfw9gk3brqbxrl75c"))))
+ "1k6b46n0vwdqrr6rfps0n8hghcgivnc42gc7z61phhjgf08j64qv"))))
(build-system meson-build-system)
(arguments
- `(#:glib-or-gtk? #t))
+ (list #:glib-or-gtk? #t))
(native-inputs
(list pkg-config))
(inputs
- `(("gtk3" ,gtk+)
- ("wayland" ,wayland)))
+ (list gtk+ wayland))
(synopsis "Launcher/menu program for wayland")
(description
"Wofi is a launcher/menu program for wlroots based wayland compositors
@@ -3087,14 +3206,16 @@ if there's more than one.")
(define-public xkbset
(package
(name "xkbset")
- (version "0.6")
+ (version "0.8")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://faculty.missouri.edu/~stephen/software/"
- name "/" name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/stephenmontgomerysmith/xkbset")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
- (base32 "199mlm127zk1lr8nrq22n68l2l8cjwc4cgwd67rg1i6497n2y0xc"))))
+ (base32 "1xa6sgvnwynl2qrjnsppvb2vg4p5v1pisrfhrmnlymw1fzhh6s9p"))))
(build-system gnu-build-system)
(inputs
(list libx11 perl perl-tk))
@@ -3127,7 +3248,7 @@ if there's more than one.")
(string-append (assoc-ref outputs "out")
"/share/doc/" ,name "-" ,version))
#t)))))
- (home-page "https://faculty.missouri.edu/~stephen/software/")
+ (home-page "https://stephenmontgomerysmith.github.io/software/#xkbset")
(synopsis "User-preference utility for XKB extensions for X")
(description
"This is a program to help manage many of the XKB features of the X Window
@@ -3158,8 +3279,79 @@ MouseKeys-acceleration management.")
(synopsis "Day/night gamma adjustments for Wayland compositors")
(home-page "https://sr.ht/~kennylevinsen/wlsunset/")
(description
- "wlunset adjusts gamma based on day-night cycles on Wayland compositors
+ "Wlsunset adjusts gamma based on day-night cycles on Wayland compositors
that support @samp{wlr-gamma-control-unstable-v1}. It is also known as a blue
light filter or night light.")
(license license:expat)))
+(define-public ydotool
+ (package
+ (name "ydotool")
+ (version "1.0.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ReimuNotMoe/ydotool")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1h19dh7kai0iikssr7sq0wfkh0sb18dylyfg7c3dkwc158cdg9cr"))))
+ (build-system cmake-build-system)
+ (arguments '(#:tests? #f)) ; no tests
+ (native-inputs (list scdoc))
+ (home-page "https://github.com/ReimuNotMoe/ydotool")
+ (synopsis "Generic Linux command-line automation tool (no X!)")
+ (description "@code{ydotool} is a Linux command-line tool that simulates
+keyboard input, mouse actions, etc. programmatically or manually.")
+ (license license:agpl3+)))
+
+(define-public wvkbd
+ (package
+ (name "wvkbd")
+ (version "0.12")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://git.sr.ht/~proycon/wvkbd")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "05zl6jhw7pj7w2cd02m3i0zzn1z99kzwh2mlg9h96j5aw1x1lvp6"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no tests
+ #:make-flags #~(list (string-append "CC="
+ #$(cc-for-target))
+ (string-append "PREFIX="
+ #$output))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'fix-cross-compile
+ (lambda _
+ (substitute* "Makefile"
+ (("pkg-config")
+ #$(pkg-config-for-target)))))
+ (delete 'configure))))
+ (native-inputs (list wayland ;for wayland-scanner
+ pkg-config))
+ (inputs (list libxkbcommon cairo pango harfbuzz wayland))
+ (home-page "https://git.sr.ht/~proycon/wvkbd")
+ (synopsis "On-screen keyboard for wlroots compositors")
+ (description
+ "This package provides on-screen keyboard for wlroots compositors with
+the following features:
+
+@itemize
+@item Typing, modifier locking, layout switching
+@item Positive visual feedback on key presses
+@item On-the-fly layout and keymap switching
+@item Custom color schemes
+@item International layouts (cyrillic, arabic)
+@item Emoji support
+@item Compose key for character variants (e.g. diacritics)
+@item Show/hide keyboard on signals (SIGUSR1 = hide, SIGUSR2 = show, SIGRTMIN = toggle)
+@item Automatic portrait/landscape detection and subsequent layout switching
+@end itemize")
+ (license (list license:expat ;3 files under Expat license (see 'LICENSE')
+ license:gpl3+)))) ;the rest is GPLv3+