master
bel 2022-04-12 19:39:09 -06:00
parent 896040391d
commit b91c73c5bb
1 changed files with 21 additions and 1 deletions

View File

@ -18,6 +18,7 @@ def up(keycode):
_display.sync() _display.sync()
def __init_keys__(): def __init_keys__():
return [i for i in range(10, 20)] #1..0
import subprocess import subprocess
_p = subprocess.run( _p = subprocess.run(
"xmodmap -pke".split(), "xmodmap -pke".split(),
@ -26,12 +27,31 @@ def __init_keys__():
assert(_p.returncode == 0) assert(_p.returncode == 0)
stdout = _p.stdout stdout = _p.stdout
result = [] result = []
for line in stdout.split("\n".encode()): allowed = ["F"+str(i) for i in range(13, 25)]
unassigned = []
# already assigned
for line in stdout.split("\n".encode())[1:]:
if line: if line:
words = line.split() words = line.split()
key = int(words[1]) key = int(words[1])
if len(words) < 4: if len(words) < 4:
unassigned.append(key)
elif words[3].decode() in allowed:
allowed.remove(words[3].decode())
result.append(key) result.append(key)
# not assigned
for key in unassigned:
if not allowed:
break
word = allowed.pop()
if word:
assert(subprocess.run([
"xmodmap", "-e", f"keycode {key} = {word}",
]).returncode == 0)
result.append(key)
print("unassigned", unassigned)
print("allowed", allowed)
print("result", result)
return result return result
keys = __init_keys__() keys = __init_keys__()