Я отказался от showkey
и переключился на xev
.
xev -id $(xdotool search -name "Stardew Valley") -event keyboard >> /home/reedbear/user_scripts/output.txt
Это дает мне журналы, которые выглядят как:
KeyRelease event, serial 18, synthetic NO, window 0x260000a,
root 0x1b0, subw 0x0, time 18101865, (893,683), root:(893,683),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyPress event, serial 18, synthetic NO, window 0x260000a,
root 0x1b0, subw 0x0, time 18101865, (893,683), root:(893,683),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
KeyRelease event, serial 21, synthetic NO, window 0x260000a,
root 0x1b0, subw 0x0, time 18102365, (893,683), root:(893,683),
state 0x10, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False
Затем я использую php, потому что у меня есть опыт работы с php, чтобы получить метку времени, нажатие клавиши и KeyRelease
или KeyPress
.
Затем я использую xdotool
для отправки нажатий клавиш, но это отдельная вещь.
Наверное, я могу обойтись и без xdotool
, но... не стал.
Одно слово :восьмеричное.
od
печатает от 000000
до 177777
, где цифры 0..7
. Эти строки представляют собой просто два -байтовых значения, закодированных по-разному. Различная кодировка не меняет того факта, что существует 65536 возможностей. Из достаточно большого случайного набора данных вы получите их все.
Даже если считать "по цифре", всё влезет; вам просто нужно сделать это правильно, в восьмеричном формате. Ваша попытка:
Amount of possible numbers: 100000 (because 00000-99999)
предполагает десятичное число. Правильный метод такой:
0
или 1
, (2 варианта ). 0..7
, (8 возможностей для каждого символа ). 2 x 8 5 = 2 16