키패드 키를 수정자에 다시 매핑

키패드 키를 수정자에 다시 매핑

몇 가지 조사를 했지만 작동하는 해결책을 찾을 수 없습니다. 키보드 버튼을 어떻게 만들 수 있습니까? , KP_1, KP_2, 및 와 정확히 동일합니까 KP_3?Shift_LAlt_LControl_L

저는 리눅스 민트 17 시나몬을 사용합니다.

새로운 키가 Dota 2에서 작동하기를 바랍니다(그러나 전 세계적으로 작동하더라도 상관없습니다). 다른 방법을 시도했지만 그 중 어느 것도 예상대로 작동하지 않습니다.

xmodmap

터미널에서 실행합니다.

xmodmap -e "keycode 87 = Shift_L"
xmodmap -e "keycode 88 = Alt_L"
xmodmap -e "keycode 89 = Control_L"

결과:

  • 운영 체제: KP_1KP_2작동해야 하는 방식(예: ShiftAlt)이 작동하지만 어떻게든 kp_3작동하지 않습니다.Ctrl
  • Dota 2: , kp_1, 작동 kp_2하지 않습니다 // ( 왜?)kp_3ShiftAltCtrl

remap.inc문서

다음 줄을 추가했습니다./etc/console-setup/remap.inc

keycode  79 = Shift
keycode  80 = Alt
keycode  81 = Control

그런 다음 실행

sudo dpkg-reconfigure console-setup -phigh

결과: 아무데도 작동하지 않습니다. 이 키코드가 "xev"가 반환하는 것과 왜 다른지 모르겠지만 덤프 키를 사용하여 찾은 것은 다음과 같습니다.

sudo dumpkeys | egrep "^keycode.*KP_[123]"
keycode  79 = KP_1            
keycode  80 = KP_2            
keycode  81 = KP_3 

xbindkeys+xte

다음 줄을 추가했습니다 ~/.xbindkeysrc.

"xte 'key Shift_L'"
    Mod2 + KP_End

터미널에서 "xbindkeys"를 실행하세요.
결과: 아무데도 작동하지 않습니다(아마도 한 번만 누르면 되기 때문일 것입니다 . 일반 버튼처럼 Shift_L계속 누르고 있으면 계속 누르고 있기를 원합니다 ).KP_1Shift

답변1

새 키를 수정자 키(예: Shift, Ctrl, Alt)에 매핑하려면 keycodewith를 사용하는 것만으로는 xmodmap충분하지 않습니다. 다음과 같은 작업을 수행해야 합니다.

keycode 87 = Shift_L
clear shift
add shift = Shift_L

keycode 88 = Alt_L
clear mod1
add mod1 = Alt_L

keycode 89 = Control_L
clear control
add control = Control_L

매뉴얼 페이지에 몇 가지 예가 있습니다 xmodmap(1). 여러 번 호출하는 대신 이러한 명령을 xmodmaprc파일에 넣고 실행할 수 있습니다.xmodmap xmodmaprcxmodmap -e

관련 정보