Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No option to use keyboard modifiers #82

Open
jdfa opened this issue Mar 28, 2021 · 3 comments
Open

No option to use keyboard modifiers #82

jdfa opened this issue Mar 28, 2021 · 3 comments

Comments

@jdfa
Copy link
Contributor

jdfa commented Mar 28, 2021

Usually keyboard events are handled with keyboard modifiers (Ctrl, Alt, Shilt, their combinations, system specific modifiers).
Current keyboard event system doesn't support that, only limited amount of events with Shift modifier can be distinguished.

AFAIK there is no platform independent solution for this, but there are some platform specific ones (GetKeyState for Windows).

P.S. I can provide specialization for Windows platform if there will be specialization for any other platform.

@ArthurSonzogni
Copy link
Owner

I don't know. I would love to stay behind the xterm specification and do not introduce platform specific features.
I am wondering how softwares like him implement this.

@jdfa
Copy link
Contributor Author

jdfa commented Apr 2, 2021

I know that in Qt they are having separate enum for keyboard modifiers which is stored as a field in keyboard event. It is being filled by special platform specific handlers. For Linux they are using xkbcommon.

@ArthurSonzogni
Copy link
Owner

I would love to maintain "No dependencies" properties on this project, outside of a few libraries guaranteed to be installed on the target OS:

  • <Window.h> on windows
  • <sys/ioctl.h> & <unistd.h> on POSIX systems
  • <emscripten.h> on WebAssembly.

This is a feature quite hard to bring, with several drawback and I don't believe there are too many people interested in. So I don't think I would be happy to develop it.

(Please add a star if you think this feature deserve to be implemented)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants