Package Details: hkd-git r109.dfa7976-2

Git Clone URL: https://aur.archlinux.org/hkd-git.git (read-only, click to copy)
Package Base: hkd-git
Description: hkd allows to define system-wide hotkeys independent from the graphical session
Upstream URL: https://git.alemauri.eu/alema/hkd
Licenses: MIT
Conflicts: hkd
Provides: hkd
Submitter: BrainDamage
Maintainer: BrainDamage
Last Packager: BrainDamage
Votes: 1
Popularity: 0.000000
First Submitted: 2020-09-21 20:56 (UTC)
Last Updated: 2021-01-15 14:56 (UTC)

Dependencies (1)

Required by (0)

Sources (1)

Latest Comments

m040601 commented on 2022-06-13 07:18 (UTC) (edited on 2022-06-13 08:58 (UTC) by m040601)

Since this hkd (alemauri.eu) doesnt do what I expected (see previous comments), I kept searching.

Triggerhappy, https://github.com/wertarbyte/triggerhappy, was nice, but is unmaintained, https://github.com/wertarbyte/triggerhappy/issues/32. And and semi broken, https://aur.archlinux.org/packages/triggerhappy.

Kmonad is overkill for this use case, and haskell rocket science to me. Some others, "Hawck-git", pull too many dependencies for my taste (ruby etc.).

"Interception Tools" will probably do what I am expecting. But has a horrible, extensive, detailed, but not thinking about the end user oriented documentation.

Keyd-git is very nice and "fits my head". But doesnt map "custom commands".

But luckly I found this, https://github.com/aaronamk/hkd

aaronamk/hkd: Hotkey Daemon, 


    Map a key plus any number of modifiers to a command
    Map a modifier release to a command
    Configure which keys to use as modifiers
    Works in Xorg, Wayland, and the TTY (using libevdev)
    Usable on its own or as a plugin for Interception Tools.

It's also confusingly called "hkd" but it's from another person. And guess what ? It seems to be from an Archlinux user. I've asked him if he could maintain a "hkd-aaronamk" PKGBUILD, https://github.com/aaronamk/hkd/issues/10

  • does "catch" the key preventing it to be sent to the terminal
  • follows the suckless philosophy, dwm style "config.h" customization
  • Clean, simple, coded in C; will most probably work in Arm (Raspberry Pi Archlinux etc)
  • make compiles in 5 seconds

I immediatelly tested it and works perfectly.

m040601 commented on 2022-06-13 07:16 (UTC) (edited on 2022-06-13 08:51 (UTC) by m040601)

hkd ... doesn't prevent other programs to get it as well, ....
... so the terminal catches it and prints as it's supposed to be...

Thanks for the explanation. If that is so than this hkd (alemauri.eu) is completely useless to me. I really dont see the point of such a tool, if it doesnt grab the input.

I'm staring at the console, with a shell prompt or a program opened (vim editor for ex) opened before my eyes. I press the key/keycombo "X" assigned for muting the sound with some command.I definetly dont want that same "X" to be sent to vim.

The whole big selling point to me of these kind of "map actions to keys" tools in the console, is for using "unused" rare physical keys. Or attaching a usb infrared sensor and using a cheap remote to send "usb" keys to trigger some action. Just like I do in the Raspberry Pi with GPIOS and evtest.

For example with a cheap usb keyboard with numeric keypad, make those work like the "media keys" in expensive keyboards. Or with Zoom actions etc. And, without too much deep "hacking" with udev/hwdb, https://wiki.archlinux.org/title/Linux_console/Keyboard_configuration.

I'm also experienced hacking and customizing a "/usr/share/kbd/..XYZ.gz" my.keyboard.gz to bend and fit to my needs, with macros etc, https://wiki.archlinux.org/title/Linux_console/Keyboard_configuration. Or Tmux "switch-client" -T mycustomtable (very, very powerfull). Big, big fan of "sxhkd", but that is only for X11. All of these, are not enough for the presently discussed use case.

BrainDamage commented on 2022-06-12 15:08 (UTC) (edited on 2022-06-12 15:08 (UTC) by BrainDamage)

When I press the assigned key, for example "KP6" it does execute the assigned action "mpc play" But, it strangely also "prints" to the console that same key. That is, in this case, it prints the numeric "6". Which of course ruins the whole thing.

it's not the program printing the key, it's your terminal

hkd catches the key event but it doesn't prevent other programs to get it as well, so the terminal catches it and prints as it's supposed to be

m040601 commented on 2022-06-12 09:29 (UTC) (edited on 2022-06-12 09:50 (UTC) by m040601)

Wonder if anyone can give personal feedback on using this programm ?

This is one of the few available programs to execute "actions" or run "commands" or "shell commands" assigned to a key that is supposed to work on the linux console (apart from X11). That is without need to start X11 or having any graphical sessino running,

Hotkey
        Keys: KP6 
        Command: mpc play

Or

Hotkey
        Keys: KP5 
        Command: playerctl play-pause

, for starting stoping a music player with the numeric keypad key "6" or "5"

I've tested it both under X11 and the linux console.

On X11 it seems to run fine without any problem.

However using it on the Linux Console (with or without tmux), I have an weird issue. I cant understand if that's how it's supposed to be or if I am missing something.

When I press the assigned key, for example "KP6" it does execute the assigned action "mpc play" But, it strangely also "prints" to the console that same key. That is, in this case, it prints the numeric "6". Which of course ruins the whole thing.

sandsmark commented on 2021-01-20 17:47 (UTC)

In case someone has a way to report issues (I couldn't get the openid login on his site to work): it seems like after a suspend/resume it stops being able to execute commands.

According to strace it still manages to read the pressed keys, but not exec* calls.

m040601 commented on 2021-01-14 23:20 (UTC)

another needed file that should be installed to /usr/share/doc/hkd

is the file "keys.h" in the source repo.

Please add it to this PKGBUILD

Otherwise once has a hard time figuring the name of the keys to use.

As the developer says in the man page:

   ... for the full list of available keys either refer to the linux header
   file input.h or keys.h in this project. ...

m040601 commented on 2020-12-13 14:15 (UTC) (edited on 2020-12-13 19:59 (UTC) by m040601)

Could you please add the additional files the developer ships to this PKGBUILD ?

For example the "config.template" file, https://git.alemauri.eu/alema/hkd.

 ... and the config file is documented trough an example....

This file, the README and similar should end up in:

/usr/share/doc/hkd/