Требуется ли для этого Python-скрипта с автоключем параллелизм?
Я недавно перешел на Ubuntu, и мне не хватает autohotkey. Я использую autokey для воссоздания моей горячей клавиши. Я переназначил CapsLock
в F13
используя Xmodmap.
Что мне нужно сделать: когда F13
прослушивается, возврат <Esc>
, когда F13
используется с ключом, триггером горячей клавиши. когда F13
удерживается более 1 секунды и отпускается без горячей клавиши, ничего не возвращает.
Autokey использует среду Python. Вот мой план:
F13 is pressed
Start a timer
Start a thread listening for <CapsLock up> and if true,
if timer is less than 1 second && no hotkey was pressed
exit script after returning <Esc>
exit script
Start a thread that loops forever
Listen for hotkey
Play hotkey's function
Сценарий заканчивается, когда CapsLock
выпущен.
Пример: я нажимаю CapsLock
затем j
и вывод Down arrow
,
Мой вопрос, прежде чем я начну кодировать это, мне действительно нужно использовать несколько потоков (параллелизм) для этого? Это лучший способ сделать это? Я чувствую, что есть намного более простой способ, и я также никогда не кодировал параллелизм.
Редактировать: я открыт для любого метода, чтобы осуществить это, даже если это не с Autokey или Python.
1 ответ
Вам определенно не нужно использовать темы в этом случае. Вы можете просто сделать что-то вроде этого:
F13 is pressed
Start timer
While True:
Listen for hotkey and capslock up
if capslock up:
if timer < 1:
return <Esc> and exit
else: just exit
elif hotkey:
Execute hotkey function and exit
Мы можем выйти только из двух способов, если будет снят capslock или нажата горячая клавиша, и только один из этих двух будет тем событием, о котором нам нужно беспокоиться, поэтому мы можем просто прослушивать оба в одном потоке.