Я хочу, чтобы клавиша CapsLock на моей клавиатуре действовала как левая кнопка мыши. Я хочу иметь возможность выполнять щелчки, двойные щелчки, отправлять события мыши и вверх и т.д.

Теперь я использую AutoHotkey и следующий скрипт

Capslock::LButton
Return

Скрипт работает, но не в каждом приложении и не каждый раз. Например, он не работает в диспетчере задач, он обычно не работает в пользовательском интерфейсе установщика и некоторых других местах.

Скрипт / AutoHotkey также не работает в окнах приложений при некоторой нагрузке. Например, если приложение выполняет тяжелый ввод-вывод, сценарий может работать или не работать.

Это раздражает иметь периодические проблемы с подходом.

Поэтому, пожалуйста, дайте несколько советов о том, как улучшить скрипт или, возможно, порекомендуйте несколько лучших альтернатив, чем AutoHotkey.

4 ответа4

1

Вопрос не определяет оконную / операционную систему (хотя можно было бы догадаться ...), поэтому для полноты это ответ в (современном) X11:

1) найти код ключа, соответствующий CapsLock - например, при запуске xev и поиске кода ключа в выводе при нажатии CapsLock:

$ xev | grep keycode
state 0x10, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
state 0x12, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,

Если вы используете "обычную" (т.е. ПК) клавиатуру, она должна быть 66

2) включить мышь:

$ xkbset m

3) сопоставьте нужные вам ключи:

xmodmap  -e 'keycode 66 = Pointer_Button1'

или, если вы хотите быть модным, сохраните Caps_Lock с некоторым модификатором:

xmodmap  -e 'keycode 66 = Pointer_Button1 Caps_Lock'

сохранит функциональность CapsLock, если нажать Shift+CapsLock

0

Для более простого решения я предлагаю настроить клавиши мыши: Control Panel\All Control Panel Items\Ease of Access Center\Set up Mouse Keys простоты доступа \ Настройка клавиш мыши

Это позволит использовать клавиатуру в качестве мыши, используя цифровую область.
Как пользоваться руководством.


Если Вы хотите настроить его, изменив ключи, то я предлагаю использовать NeatMouse.

NeatMouse имеет перевод на английский, французский, немецкий, греческий, итальянский, польский и украинский языки. Доступны как обычные, так и портативные версии. Это маленький, удобный, эффективный и совершенно бесплатно!

0

Хорошо, оказывается, есть взлом, который позволяет AutoHotkey работать в диспетчере задач и т.д.

Включить взаимодействие с административными программами

Попробовал это. Это сработало. Все идет нормально.

0

В духе ответа Радована Гарабика (для тех из нас, кто использует ОС на базе X11, например, Kubuntu. Если вы используете Windows, это не для вас, придерживайтесь решений AutoHotKey.) Я получил это, чтобы работать без отключения моей цифровой клавиатуры. Для этого требуются пакеты xbindkeys и xdotool установленные в вашей системе.

Я искал CapsLock = левый клик, который должен быть похожим. После долгих экспериментов я понял, что получаю лучшие результаты с xdotool вместо xte .

В моем ~/.bashrc (или любом другом скрипте запуска, подходящем для вашей системы) я добавил эту строку:

/usr/bin/xmodmap -e "keycode 66 ="

Это устраняет «блокировку» поведения Caps Lock и присваивает этот ключ (ключ 66) пустоте. Я возился с этим в других местах, таких как .xinitrc , но они никогда не работали. Это довольно безопасно в .bashrc даже если он перезапускается с каждым открытым сеансом терминала (в зависимости от того, как настроен ваш .bashrc в целом).

Для xbindkeys я создал файл ~/.xbindkeysrc со следующими строками:

"xdotool mousedown 1"
  c:66

"xdotool mouseup 1"
  release + c:66

Перезагрузка или запуск source ~/.bashrc должны заставить работать часть xmodmap . Чтобы перезагрузить xbindkeys , попробуйте это:

killall xbindkeys
xbindkeys -f ~/.xbindkeysrc

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .