Package Details: keyd-git 2.4.3.r46.5832c75-1

Git Clone URL: https://aur.archlinux.org/keyd-git.git (read-only, click to copy)
Package Base: keyd-git
Description: A key remapping daemon for linux
Upstream URL: https://github.com/rvaiya/keyd
Keywords: key-remapping keyd remapping
Licenses: MIT
Conflicts: keyd
Provides: keyd
Submitter: eNV25
Maintainer: eNV25
Last Packager: eNV25
Votes: 14
Popularity: 0.199707
First Submitted: 2021-07-30 05:12 (UTC)
Last Updated: 2024-03-03 12:22 (UTC)

Dependencies (2)

Required by (0)

Sources (2)

Pinned Comments

Latest Comments

« First ‹ Previous 1 2

eNV25 commented on 2022-02-12 13:25 (UTC)

I submitted a PR to fix Makefile, that should work

https://github.com/rvaiya/keyd/pull/134/commits/16d7f2aa974d0c765b364f1063c9c1ea7aeffd32

Until it's fixed upstream try manually editing the Makefile to match PR.

christian-s commented on 2022-02-12 09:40 (UTC) (edited on 2022-02-12 14:22 (UTC) by christian-s)

The latest commit has broken the install: https://github.com/rvaiya/keyd/commit/4426cbc1e4b033780721dd030a48f616f0b97c81#diff-76ed074a9305c04054cdebb9e9aad2d818052b07091de1f20cad0bbac34ffb52R47-R51

install: cannot create regular file '/home/<redacted>/.cache/paru/clone/keyd-git/pkg/keyd-git/usr/share/libinput/30-keyd.quirks': No such file or directory
make: *** [Makefile:40: install] Error 1

There may be a better way, but I fixed it locally by editing PKGBUILD, adding the following to the build() function just before the make command:

chmod -R a=rwx,go=rx ../../pkg
mkdir -p ../../pkg/keyd-git/usr/share/libinput/

m040601 commented on 2022-01-08 15:58 (UTC) (edited on 2022-01-08 20:04 (UTC) by m040601)

I think it's better if upstream does in Makefile.

Yeah, it's always the best. Thankfully upstream seems responsive, and interested in maintaining and documenting this thing properly for end users.

I now see that upstream changed the Makefile, to include the docs:

commit edd897b7a28f6d22c531a730744663cb4470b743
Author: Raheman Vaiya <r.vaiya@gmail.com>
Date:   Sat Jan 8 03:29:26 2022 -0500

    v2.2.0-beta


...

        mkdir -p $(DESTDIR)$(PREFIX)/lib/systemd/system
        mkdir -p $(DESTDIR)$(PREFIX)/bin
        mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
+       mkdir -p $(DESTDIR)$(PREFIX)/share/doc/keyd
+       mkdir -p $(DESTDIR)$(PREFIX)/share/doc/keyd/examples


So great, now we have the docs and examples in Arch, at least in "keyd-git":

pacman -Ql keyd-git

....
keyd-git /usr/lib/systemd/system/keyd.service
....
keyd-git /usr/share/doc/keyd/CHANGELOG.md
keyd-git /usr/share/doc/keyd/README.md
keyd-git /usr/share/doc/keyd/examples/
keyd-git /usr/share/doc/keyd/examples/capslock-esc-basic.conf
keyd-git /usr/share/doc/keyd/examples/capslock-escape-with-vim-mode.conf
keyd-git /usr/share/doc/keyd/examples/international-glyphs.conf
keyd-git /usr/share/doc/keyd/examples/macos.conf

I also see that you recreated the "stable" "keyd" AUR version. And that you were the one which opened the issue on github.

Thanks again for you effort making this a great AUR package for Archlinux end users.

Wish I had found this tool sooner. Hope we can get it (and similar tools) long term available and properly documented for end users in the Archwiki also.

PS: Other similar tools

If you have some more or could point me to other tutorials or usefull pages catering to an Archlinux user mindset, please let me know. The Archwiki is missing an overview page for this specific kind of things.

The end goal is to understand and "tame" your keyboard (and other input devices, keypads, buttons, infrared remote, leds, etc) . Do this at a "low level" , without the need to use of higher level tools available in ready made desktops KDE/GNOME etc).

  • Remap all you want
  • Use as many devices as you want single or simultaneously
  • Assign "actions" to keys (macros, start players etc)
  • Do all this with or without beeing logged in, maybe as a system wide daemon/service
  • etc

Some abandoned, some broken on Arch. Some in AUR, some in official packages.

aur/kmonad-bin 0.4.1-3 (+0 0.00) (Installed)
    An advanced keyboard manager - static binary version
aur/kmonad-git 0.4.1.r253.ga7c3dc6-1 (+1 0.01) 
    An advanced keyboard manager

Wow, very advanced. Seems maintained. Written in haskell, with a precompiled "bin" in AUR. Havent tested yet. EDIT: Sat Jan 8 08:02:23 PM WET 2022, just found out about this one today, via keyd.

aur/triggerhappy-git r170-1 (+0 0.00)
    A lightweight hotkey daemon
aur/triggerhappy 0.5.0-1 (+4 0.00)
    A lightweight hotkey daemon

Very old and interesting also for uses in Openwrt. Abandoned upstream ?

aur/hkd-git r109.dfa7976-2 (+1 0.00) (Installed: r113.29bc56f-1)
    hkd allows to define system-wide hotkeys independent from the graphical session

Cant get this to work properly on Arch. Lacks systemd integration. Abandoned upstream ?

community/interception-caps2esc 0.3.2-1
    Interception plugin that transforms the most useless key ever in the most useful
    one
community/interception-dual-function-keys 1.4.0-2 [installed]
    Interception plugin for dual-function keys: Tap for one key, hold for another
community/interception-tools 0.6.8-1 [installed]
    A minimal composable infrastructure on top of libudev and libevdev

Seems very powerfull and interesting, and is an official arch package. Loaded with lotz of technical jargon, and concepts.

But horribly documented for end users. Lacks a simple conceptual overview, comparison to other tools and many more real world end user examples.

Name: inputexec
Version: 0.2.5
Summary: Simple Python program to execute commands on keypress on headless systems
Home-page: https://github.com/rbarrois/inputexec


rbarrois/inputexec: Simple program to execute commands on keypress on headless Linux

This program aims to handle button/command binding for headless hosts. It captures
all events from an input device (keyboard, mouse, etc.) and runs commands
appropriately.

inputexec was born from the need to pass key presses from a remote control to a
Music Player Daemon.

This one i am testing. Installed with "pipx"

I'm an end user, not a developer. I'm also heavly CLI oriented not GUI oriented. Even to the point of prefering using the console instead of booting X11. I have some understanding of scancodes/keycodes, the general Linux input system, udev, differences console/X11 etc.

But this is from an end user, not from a developer/hacker point of view.

I've been doing a lot of research and testing for these kind of tools, and what is available "without too much hacking" to use on Archlinux.

Some stuff available on the Wiki:

https://wiki.archlinux.org/title/Linux_console/Keyboard_configuration https://wiki.archlinux.org/title/Map_scancodes_to_keycodes https://wiki.archlinux.org/title/Keyboard_shortcuts https://wiki.archlinux.org/title/Keyboard_input

But I still miss a proper Archwiki page with an overview of how all this plays together and overlaps.

eNV25 commented on 2022-01-08 05:46 (UTC)

m040601, Actually I think it's better if upstream does in Makefile.

eNV25 commented on 2022-01-05 14:56 (UTC)

m040601, Sure I will add config examples and README to /usr/share/doc/keyd.

I will also add fix for https://github.com/rvaiya/keyd/issues/66#issuecomment-985983524 .

I was leaning away from pushing an update because upstream version is v2.0.0-beta in Makefile but there is no git tag/release for it. It did not want to also push a dirty hack for pkgver() where the version is pulled from the Makefile instead of the git tag.

m040601 commented on 2022-01-05 12:43 (UTC)

Thanks for providing and maintaining this PKGBUILD. Very interesting and usefull tool.

$ yay -Si keyd-git

:: Querying AUR...
...
Conflicts With  : keyd
Maintainer      : eNV25
First Submitted : Fri 30 Jul 2021 06:12:04 AM WEST
Last Modified   : Fri 24 Dec 2021 04:30:23 PM WET
....

There is no "keyd" in AUR. There is only "keyd-git", so that "Conflicts with" seems obsolete.

$ pacman -Ql keyd-git

keyd-git /etc/
keyd-git /etc/keyd/
keyd-git /usr/
keyd-git /usr/bin/
keyd-git /usr/bin/keyd
keyd-git /usr/lib/
keyd-git /usr/lib/systemd/
keyd-git /usr/lib/systemd/system/
keyd-git /usr/lib/systemd/system/keyd.service
keyd-git /usr/share/
keyd-git /usr/share/licenses/
keyd-git /usr/share/licenses/keyd/
keyd-git /usr/share/licenses/keyd/LICENSE
keyd-git /usr/share/man/
keyd-git /usr/share/man/man1/
keyd-git /usr/share/man/man1/keyd.1.gz

git clone https://github.com/rvaiya/keyd

$ ls keyd/

CHANGELOG.md     examples   keyd.service  Makefile  README.md  t
CONTRIBUTING.md  keyd.1.gz  LICENSE       man.md    src        TODO

$ tree keyd/examples/

keyd/examples/
├── capslock-escape-with-vim-mode.conf
├── capslock-esc-basic.conf
└── macos.conf

These are example ".conf" files to use in /etc/keyd. By default /etc/keyd/ , is shipped empty.

Please include the "examples" folder in the PKGBUILD. It should end up in something like /usr/share/doc/keyd/examples. It is super annoying to install a package and have to go back to the internet to search for examples how to use it.

Please do the same for the README (and CHANGELOG etc). It's not fluff, and it includes usefull information and context, not included in the man page. It should end up in something like /usr/share/doc/keyd/README

Thanks in advance.