В настоящее время я использую AutoHotKey для имитации раскладки клавиш Happy Hacking Keyboard Pro 2 на Topre Realforce 89s.
Скрипт, который я создал, доступен на github.
Я использовал японский ключ "muhenkan" (SC07B) для имитации клавиши Fn и добавил все сопоставления комбинаций клавиш Fn, как в двух примерах ниже:
SC07B & SC002::send,{Blind}{F1} ; Fn + 1 -> F1
SC07B & SC01A::send,{Blind}{Up} ; Fn + [ -> Up
Находясь слева и справа от клавиши пробела, я также хочу использовать "muhenkan" и "henkan" (SC079) в качестве Enter и Backspace.
Преобразование "хенкан" в Backspace легко сделать с помощью:
SC079::send,{BS}
+SC079::send,{BS}
^SC079::send,^{BS}
Что касается "muhenkan", который используется в качестве клавиши переключения Fn , я сопоставил его с клавишей Enter следующей строкой:
SC07B::send,{Enter}
Кажется, нет никакого конфликта с использованием его как Fn и Enter:
- в сочетании с другим ключом не выводит Enter
- когда никакая другая клавиша не комбинируется, она выдает Enter после отпускания
Бывают случаи, когда я могу сначала нажать эту клавишу Fn с намерением объединить ее с другой клавишей и в конце концов отказаться от этого намерения, отпустив клавишу Fn .
Проблема в том, что, отпуская ключ, он выдает Enter, что не идеально.
Я хотел бы улучшить это, настроив этот ключ Fn так, чтобы при отпускании он выводил только Enter, если выполняются два следующих условия:
- никакая другая клавиша не была нажата между продолжительностью нажатия и отпускания клавиши Fn
- продолжительность между нажатием / выпуском (ВНИЗ / ВВЕРХ) была меньше заданного значения (например: 500 мс)
Есть ли простой способ изменить мою конфигурацию AutoHotKey, чтобы продолжить использование SC07B в качестве клавиши переключения (Fn), а также сопоставить ее с Enter для более ранних условий?
Тот факт, что я определяю комбинации клавиш, по-видимому, заставляет сопоставление « Ввод» работать при отпускании ключа, чего я и хочу, но это также означает, что я не могу использовать KeyWait и проверять время ожидания, так как считаю, что команды будут запускаться только после отпускания ключа (что не имеет смысла тогда).
A_TimeSincePriorHotkey также не может использоваться, поскольку он не отражает время, проведенное между нажатием и отпусканием текущей горячей клавиши.