-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Wayland support with keyboard emulation and capture using uinput #1679
base: main
Are you sure you want to change the base?
Conversation
and added comments about remaining things that have to be done
added suppressing keys and pass through non-suppressed keys
that function is not supported on wayland, and gave this warning: Qt: Wayland does not support QWindow::requestActivate()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
1782a7d
to
21170bd
Compare
@LilleAila after merging the latest
Do you have time to have a look? |
This looks like is because the added python dependency I'm not sure how system dependencies like that should be managed. |
Summary of changes
This adds support for keyboard emulation and capture using uinput. As opposed to #1461, this implements a uinput-based output backend. Uinput is present in most linux distributions, and works at a lower level. This means that it does not rely on a specific protocol, and will work in Wayland, X11 and even the TTY console, as it essentially emulates a keyboard. The drawback to this is that it varies by the software layout, and there is not a way to directly input characters not in the keyboard layout, so it relies on an IME such as iBus or fcitx5. The latter should work fine in window managers like Hyprland or sway from my testing. It assumes the key binding to type unicode is set to the default, which is
ctrl+shift+u
.It adds the following new dependencies:
This should close #1655 and close #1050
Remaining stuff to do
test/test_keyboard.py
should work with this, and the tests pass when runningtox r -e test
us
, and it will still work fine for most people using a non-us keyboard, as long as the alphanumeric keys are in the same positions.KERNEL=="uinput", GROUP="input", MODE="0660", OPTIONS+="static_node=uinput"
)Qt: Wayland does not support QWindow::requestActivate()
Pull Request Checklist