Draft
Conversation
Author
|
I just realised I forgot to add something to terminate the thread properly when closing the program even though I told to myself 50 times not to forget about it lol, will do soon! |
Avasam
reviewed
Feb 25, 2026
Comment on lines
29
to
39
| <!-- Keep in sync with scripts/install.ps1 and src/error_messages.py --> | ||
| ```shell | ||
| sudo usermod -a -G tty,input $USER | ||
| sudo touch /dev/uinput | ||
| sudo chmod +0666 /dev/uinput | ||
| echo 'KERNEL=="uinput", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/50-uinput.rules | ||
| echo 'SUBSYSTEM=="input", MODE="0666" GROUP="plugdev"' | sudo tee /etc/udev/rules.d/12-input.rules | ||
| echo 'SUBSYSTEM=="misc", MODE="0666" GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/12-input.rules | ||
| echo 'SUBSYSTEM=="tty", MODE="0666" GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/12-input.rules | ||
| loginctl terminate-user $USER | ||
| ``` |
Collaborator
There was a problem hiding this comment.
All of these are part of the keyboard group workaround and can be deleted if not needed with pynput anymore.
As the comment alludes to, same with scripts/install.ps1 and src/error_messages.py
Avasam
reviewed
Feb 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR makes the necessary changes to transition from
keyboardtopynput, the reason for that is recent Linux updates completely brokedumpkeys, whichkeyboardis using under the hood, so basically this became unusable for me unfortunatelySummary of the changes:
QKeySequenceEditinstead of aQLineEditeventFilteroverride in__SettingsWidgetto filter out escape and enter keys (to keep a consistent behavior with how it works withkeyboard), this can also allow one to filter more keys easily so I think it's a nice additionQThreadspecifically for handling hotkeys, this is the place that usepynput, this allowed me to do cool clean-up stuffhotkeys.py:send_commandnow simply relies onHotKeyThreadto figure out which action to performset_hotkeywas simplified a lot thanks to the dedicated thread, which handles everything keyboard-related basicallypyautoguias I realised the only reason why it was used was to work around issues withkeyboardI chose to keep the current format when reading/saving settings, I didn't want to break anything for end-users but the drawback I have currently is I had to create a dictionnary of the keys as strings to convert them to the
pynputtypesThings left to test/make sure of (among the things that I thought of at least):
5vsnumpad 5for instance)Side note: the
pynputdocs says this should be Wayland-ready but thepyproject.toml/uv.lockstuff didn't add anything aboutpython-uinput(which the Wayland compat stuff relies on), ironically this library usesdumpkeystoo lol (but afaik Wayland isn't officially supported so 🤷 ), oh also still according to the docsXwaylandcan only receive keys but not send them, that can be an issue but I think it can be worked around with the auto-controlled modeI'm wide open to suggestions on this of course, I'm far from being a
pynputexpert and even a python one 🙏 (also this is a draft PR only because it's not ready to merge yet because of what I mentioned above about the things to test/make sure of)I'm gonna read the contributing guidelines and address any necessary change soon