_keys.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. """
  2. rescriptoon
  3. Copyright (C) 2018-2019 Fabian Peter Hammerle <fabian@hammerle.me>
  4. This program is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation, either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <https://www.gnu.org/licenses/>.
  14. """
  15. import typing
  16. from Xlib import XK
  17. _KEYSYM_LABELS = {
  18. # pylint: disable=no-member; false positive
  19. XK.XK_Control_L: "left ctrl",
  20. XK.XK_Control_R: "right ctrl",
  21. XK.XK_Delete: "delete",
  22. XK.XK_Down: "↓",
  23. XK.XK_Left: "→",
  24. XK.XK_Right: "←",
  25. XK.XK_Up: "↑",
  26. XK.XK_space: "␣",
  27. }
  28. def keysym_to_label(keysym: int) -> typing.Optional[str]:
  29. return _KEYSYM_LABELS.get(keysym, XK.keysym_to_string(keysym))