#keyd — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #keyd, aggregated by home.social.
-
#freesoftwareadvent day 16
#keyd is a gem I discovered recently, and couldn't believe exists.
Do you like programmable keyboards? But sometimes, you don't have one, or you're using your laptop's keyboard?
Keyd turns your non-programmable keyboard into a programmable one, through software, but at a level low enough that it just works everywhere.
Now you can use Caps-Lock as control, or long-press tab for Alt, or double-press it to escape, or press compose to hold ctrl+alt+shift+meta. Etc.
-
Disabling the fn key in Wayland?
-
Have been wanting to figure out how to get the 'copilot' key on my #thinkpad doing something useful in Linux (primarily #Debian) for a little while and finally sat down to investigate it properly.
The issue is that rather than just defining a new keycode or whatever, using an unused code, Microsoft have decided that this key will actually send a combination of multiple keys: specifically, Shift+Win+F23.
As far as I can tell, this seems to be done at the hardware level (I'm not a hardware expert by any means, so open to correction). i.e., it's impossible to distinguish this key being pressed from the literal combination of those keys being pressed (except that there isn't a physical F23 key of course).
So all of the builtin mechanisms for rebinding, as far as I know, will only rebind a single physical key (scancode or keycode, I think), and this key actually sends literally multiple scancodes, the lowest-level interface. And also because several of the codes it sends are identical to real keys, I can't just rebind all of the codes. (e.g., if I could throw away the shift and win, I'd just bind the F23, but that doesn't seem possible.)
Anyway the solution I found was using #keyd https://github.com/rvaiya/keyd which can correct this with quite a simple config:
```
# /etc/keyd/default.conf
[ids]
*[main]
leftmeta+leftshift+f23 = rightmeta # or whatever key you'd like to use
``` -
#keyd (https://github.com/rvaiya/keyd) was basically one of the biggest missing pieces for me last time I tried Linux. With it, I can map all my keys and replace application shortcuts with better defaults. Like this:
[google-chrome]
meta.[ = C-S-tab
meta.] = macro(C-tab)[firefox-esr]
meta.] = macro(C-tab)
meta.[ = C-S-tabThat shortcut is way nicer for my hands, and I unified it everywhere. Luckily, #Ghostty has a config for this.
-
I kind of wanted to try keyd at some point, but now that I use Emacs I'm unsure I'll actually need it :blobcatcoffee:
-
Showcasing #keyd [1], very easy daemon to remap things on different keyboards.
-
Got angry at #xmodmap which broke during a recent #opensuse upgrade. Replaced it with #keyd, which has been much more stable.
https://github.com/rvaiya/keyd
Considered #kmonad, which has an attractive s-exp based config language, but the toolchain wouldn't compile properly.
-
I discovered #warpd [1] yesterday and have been playing with it since then. It can't replace the mouse completely, but it's quite handy not to have to reach for the mouse so often.
Btw, its author is rvaiya, the same who wrote #keyd [2], a marvellous
key remapping tool for all of us lacking a programmable #keyboard, which has become a basic program for me (at least until I buy the Moonlander keyboard).[1] https://github.com/rvaiya/warpd
[2] https://github.com/rvaiya/keyd -
Lately I've been playing with #keyd [1], a marvelous key remapping tool. It is really powerful, and doesn't look as complex as kmonad.
Incidentally, and while I decide if I deserve a Moonlander keyboard for my birthday, I've just received the TypeMatrix 2300; my first orthogonal keyboard. First impressions are quite good, it's not mechanical though.