Show HN: Keydogger – Minimal keyboard macro for Linux (Wayland)(github.com)
github.com
Show HN: Keydogger – Minimal keyboard macro for Linux (Wayland)
https://github.com/jarusll/keydogger
Works using uinput & wl-clipboard
45 comments
The readme hardly explains what it does.
Is it a keyboard macro service? E.g. for a given keyboard shortcut I get a predefined sequence of keys pressed?
Is it a keyboard macro service? E.g. for a given keyboard shortcut I get a predefined sequence of keys pressed?
I think the GIF is supposed to give the breakdown. As I understand, type "@mymacro" and it can expand it to whatever you define.
Wouldn't hurt to have a description in text though...
Wouldn't hurt to have a description in text though...
It's mysterious to me as well, but yeah after looking through the code briefly I think you define macros in the keydoggerrc file, and then keydogger watches the clipboard for triggers and responds accordingly. I love the idea, still a bit too much in the dark on the implementation to have an opinion though. Given the highly sensitive nature of the clipboard, I appreciate how small the app is because it's auditable.
OP: Cool project, thanks for sharing!
OP: Cool project, thanks for sharing!
You get it perfectly. Being auditable was one of the priority which is exactly why it's small.
Regarding the clipboard, it's a third party dependency. I looked into implementing Wayland clipboard myself but it is too deep Wayland. The only reason clipboard exists is because I cannot send non-printable characters using uinput.
Regarding the clipboard, it's a third party dependency. I looked into implementing Wayland clipboard myself but it is too deep Wayland. The only reason clipboard exists is because I cannot send non-printable characters using uinput.
I do realise it now that it's missing it's usage. It's a simple keyboard macro which supports all printable characters for triggers and everything for expansions. It sends native key presses if all the expansion are printable characters. If not, it uses clipboard and sends `Ctrl+V`
I'm used to user-facing macros (as opposed to say a Lisp macro) being scripts triggered by a keyboard shortcut, so the terminology was confusing to me. Calling this "text expansion" or "text substitution" would have made immediate sense.
I do agree the README was terrible. I've fixed it.
I hate to be that guy, but the name is neither helpful to explain what it does nor will it facilitate adoption. Show me the IT department that won't freak out when it sees a process called "keylogger".
Apart from that I will certainly try it because I have a use for a lightweight one job - one tool kind of typing helper. I guess others will too.
Apart from that I will certainly try it because I have a use for a lightweight one job - one tool kind of typing helper. I guess others will too.
I have a feeling any IT place that's fuzzy matching process names to raise alarms on "keydogger" is not the kind of place that's going to let users install 3rd party programs with access to /dev/uinput to customize their Wayland on Linux install in the first place. Nor should every open source app be worried about businesses or user growth rate.
I'm not sure what the origin of "keydogger" is but at least there aren't 10 apps with the name and it's pronounceable.
I'm not sure what the origin of "keydogger" is but at least there aren't 10 apps with the name and it's pronounceable.
My workstation was lockdown for downloading ProcessHacker
The name is teetering on the edge of hilarity for British users.
Triggering at both a security and a sexual deviancy level.
So it's text expansion. Maybe you should just call it that? Also I 100% thought it was a keylogger with some relation to a sex act in the UK, which is why I clicked in the first place. Maybe not a great name for something as innocuous and not entirely erotic like text expansion.
There is Expanso for xorg
https://espanso.org/
https://espanso.org/
It works on Wayland as well AFAIK. I looked up espanso for expanding emojis and it seems they too use `wl-clipboard`
It does, but it has some annoying issues open, depending on environment, as Wayland support was added later
But someone using Wayland and Expanso can probably comment their experience
I would use them conditionally
But someone using Wayland and Expanso can probably comment their experience
I would use them conditionally
This is one of the first things I install on new linux machines - such a great tool.
[deleted]
And for Wayland, and macOS, and windows!
Edit: also, "Espanso"
Edit: also, "Espanso"
Look into Espanso as well. Works great, and is cross-platform.
How does it compare to kanata and kmonad?
Found especially kanata a delight to use, while being both minimal, if needed, and maximally feature-filled if desired.
Found especially kanata a delight to use, while being both minimal, if needed, and maximally feature-filled if desired.
It is not meant to compete with feature rich programs.
Keydogger does one thing and it does it well. If you think it's misbehaving in any way, it's so small you can read and confirm that behaviour.
Keydogger does one thing and it does it well. If you think it's misbehaving in any way, it's so small you can read and confirm that behaviour.
I see. Thanks for the clear explanation, it looks quite interesting for super quick setups.
Cheers!
Cheers!
There is AutoKey for Linux and X11.
That's one tradeoff in Wayland versus the X Windowing System: if you want a process with the ability to send keystrokes X supports it while under Wayland you'll have to use compositor-specific facilities for every compositor you're willing to support (GNOME, KDE, wlroots, Weston,...).
Yeah. Although X11 is stable and mature and already have every tools we need, apparently Wayland is the new cool thing and we now need to reinvent every wheels (and sometimes for each WMs separately).
AutoKey definitely has more features than this, but I think this looks easier to automate with pipes after a cursory look at the repo.
And it can wonderfully be programmed in Python. I miss it in wayland. It works sometimes, and sometimes not, which kinda defeat the purpose.
Looks like a cross between an IME and autocomplete. Although in my case, I think I would prefer a proper IME, or maybe something like dmenu with fuzzy search, to invoke on an "as needed" basis.
Dmenu like fuzzy search does make sense when you have alot of expansions. I'll add it as I find the need for it myself.
I've been using Ydotool[1] for this, and it works really well.
1. https://github.com/ReimuNotMoe/ydotool
1. https://github.com/ReimuNotMoe/ydotool
This is exactly what I wanted (a macro for my email address). Thanks!
you know what I really want?
A macro for copy and paste, so I can re-map it to whatever key combination I want across all apps in linux.
A macro for copy and paste, so I can re-map it to whatever key combination I want across all apps in linux.
k33st(4)