keysymdef: Rename key symbols
Name the key symbol mapping different than the module itself.
This commit is contained in:
parent
32fef49ff8
commit
b681aafaff
|
|
@ -1,12 +1,12 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
"""Extract key symbol encodings from X11 header files."""
|
||||||
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
from re import findall
|
from re import findall
|
||||||
from subprocess import run
|
from subprocess import run
|
||||||
from tempfile import TemporaryDirectory
|
from tempfile import TemporaryDirectory
|
||||||
|
|
||||||
repo = "https://github.com/freedesktop/xorg-proto-x11proto.git"
|
|
||||||
xx = "https://gitlab.freedesktop.org/xorg/proto/xorgproto/-/tree/master/include/X11/"
|
|
||||||
repo = "https://gitlab.freedesktop.org/xorg/proto/xorgproto.git"
|
repo = "https://gitlab.freedesktop.org/xorg/proto/xorgproto.git"
|
||||||
pattern = r"#define XK_(\w+)\s+0x(\w+)(?:\s+/\*\s+U\+(\w+))?"
|
pattern = r"#define XK_(\w+)\s+0x(\w+)(?:\s+/\*\s+U\+(\w+))?"
|
||||||
xf86pattern = r"#define XF86XK_(\w+)\s+0x(\w+)(?:\s+/\*\s+U\+(\w+))?"
|
xf86pattern = r"#define XF86XK_(\w+)\s+0x(\w+)(?:\s+/\*\s+U\+(\w+))?"
|
||||||
|
|
@ -14,28 +14,24 @@ xf86pattern = r"#define XF86XK_(\w+)\s+0x(\w+)(?:\s+/\*\s+U\+(\w+))?"
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
keysymdef = {}
|
keysymdef = {}
|
||||||
|
keysym_files = [
|
||||||
|
("include/X11/keysymdef.h", pattern, ""),
|
||||||
|
("include/X11/XF86keysym.h", xf86pattern, "XF86_"),
|
||||||
|
]
|
||||||
|
|
||||||
with TemporaryDirectory() as temp:
|
with TemporaryDirectory() as temp:
|
||||||
run(["git", "clone", repo, "."], cwd=temp)
|
run(["git", "clone", repo, "."], cwd=temp)
|
||||||
# text = Path(temp, 'keysymdef.h').read_text()
|
|
||||||
text = Path(temp, "include/X11/keysymdef.h").read_text()
|
for filename, extraction_pattern, prefix in keysym_files:
|
||||||
for name, sym, uni in findall(pattern, text):
|
text = Path(temp, filename).read_text()
|
||||||
sym = int(sym, 16)
|
for name, sym, _ in findall(extraction_pattern, text):
|
||||||
uni = int(uni, 16) if uni else None
|
sym = int(sym, 16)
|
||||||
if keysymdef.get(name, None):
|
if keysymdef.get(f"{prefix}{name}", None):
|
||||||
print("KEY DUP", name)
|
print(f"KEY DUP {prefix}{name}")
|
||||||
keysymdef[name] = sym
|
keysymdef[f"{prefix}{name}"] = sym
|
||||||
# text = Path(temp, 'keysymdef.h').read_text()
|
|
||||||
text = Path(temp, "include/X11/XF86keysym.h").read_text()
|
|
||||||
for name, sym, uni in findall(xf86pattern, text):
|
|
||||||
sym = int(sym, 16)
|
|
||||||
uni = int(uni, 16) if uni else None
|
|
||||||
if keysymdef.get("XF86_" + name, None):
|
|
||||||
print("KEY DUP", "XF86_" + name)
|
|
||||||
keysymdef["XF86_" + name] = sym
|
|
||||||
|
|
||||||
with open("keysymdef.py", "w") as f:
|
with open("keysymdef.py", "w") as f:
|
||||||
f.write("# flake8: noqa\nkeysymdef = \\\n")
|
f.write("# flake8: noqa\nkey_symbols = \\\n")
|
||||||
pprint(keysymdef, f)
|
pprint(keysymdef, f)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
# flake8: noqa
|
# flake8: noqa
|
||||||
keysymdef = {
|
key_symbols = {
|
||||||
"0": 48,
|
"0": 48,
|
||||||
"1": 49,
|
"1": 49,
|
||||||
"2": 50,
|
"2": 50,
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,7 @@ logger = logging.getLogger(__name__)
|
||||||
# Xtest extension to X11 - provides input simulation, partly works under Wayland
|
# Xtest extension to X11 - provides input simulation, partly works under Wayland
|
||||||
# Wayland - provides input simulation
|
# Wayland - provides input simulation
|
||||||
|
|
||||||
XK_KEYS: Dict[str, int] = keysymdef.keysymdef
|
XK_KEYS: Dict[str, int] = keysymdef.key_symbols
|
||||||
|
|
||||||
# Event codes - can't use Xlib.X codes because Xlib might not be available
|
# Event codes - can't use Xlib.X codes because Xlib might not be available
|
||||||
_KEY_RELEASE = 0
|
_KEY_RELEASE = 0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue