Я хочу, чтобы клавиша «Меню» на клавиатуре (код клавиши 135) выполняла ту же функцию, что и правая кнопка мыши.
https://superuser.com/questions/336674/эмуляция-щелчка-мышью-с-клавиатуройделает это, но это жертвует областью цифровой панели на моей клавиатуре, так что эти клавиши больше не выполняют свою обычную функцию. Поскольку я использую свою клавиатуру, я не заинтересован в том, чтобы жертвовать этим.
Поэтому я ищу решение, котороетольконажимает кнопку Меню (код клавиши 135).
решение1
[Примечание: очевидно и намеренно, это не"менять"клавиша клавиатуры с кнопкой мыши; она просто позволяет клавише клавиатуры действовать как кнопка мыши; но кнопка мыши НЕ начнет действовать как клавиша клавиатуры в свою очередь]
xkbset m
xkbset exp =m # keep the state unchanged after the AccessX timeout
xkbcomp "$DISPLAY" - |
sed -e 's/ Menu / Pointer_Button3 /' -e '/interpret KP_/,/};/d' |
xkbcomp - "$DISPLAY"
Вы также можете назначить другую комбинацию клавиш для переключения MouseKeys
элементов управления. Например, с помощью Shift-Menu
:
xkbcomp "$DISPLAY" - |
sed -e 's/ Menu \| Pointer_Button3 / Pointer_Button3, MouseKeys_Enable /' -e '/interpret KP_/,/};/d' |
xkbcomp - "$DISPLAY"
Это предполагает, что Menu
клавиша еще не была переназначена на что-то другое.
Вместо xbkset
и xkbcomp
вы можете легко написать небольшую программу, которая будет делать то же самое (все операции, которые они выполняют, могут быть выполнены любым обычным клиентом X11).
Как интегрировать это с капризными «окружениями рабочего стола» (которые сами изменяют настройки xkb на основе своих собственных правил) — оставим в качестве упражнения читателю.