키보드 설정을 시도하고 있는데 편의를 위해 Windows 키를 탭으로 다시 매핑하고 싶습니다. 그래서 시도해 보았습니다(133은 키보드의 왼쪽 수퍼 키입니다).
xmodmap -e "keycode 133 = Tab Super_L"
그러나 Windows 키를 누르면 여전히 "창" 메뉴가 나타나고 탭이 삽입되지 않기 때문에 이 방법은 작동하지 않습니다. Shift+super에서 탭을 발생시키는 것과 같은 동일한 테마의 일부 다른 변형도 작동하지 않습니다.
저는 lightdm과 함께 cinnamon(우분투 16.04의 ppa에서 설치됨)을 사용하고 있는데 창/슈퍼 키가 더 낮은 수준에서 가로채고 xmodmap이 이를 처리할 수 없다고 상상합니다... 내가 원하는 것을 달성할 수 있는 방법이 있습니까? xmodmap과 관련되지 않은 답변을 환영합니다!
(저는 전문가와는 거리가 멀기 때문에 아주 간단한 해결책이 있을지도 모르겠습니다...)
답변1
무슨 일이 일어나고 있는지 이해하려고 노력 중
인수 없이 입력 하면 xmodmap
(수정자 목록을 얻기 위해) 다음과 같은 결과를 얻습니다.
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3 ISO_Level5_Shift (0x69)
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
중요한 부분은 mod4
...그곳이 바로 그 곳이기 때문입니다 Super_L
.
이제 다음을 실행 xmodmap -e "keycode 133 = Tab Super_L" && xmodmap | grep mod4
하고 다음을 얻습니다.
mod4 Tab (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
라인 mod4
이 변경 및 추가되었습니다 Tab
. 이것이 바로 키가 133
여전히 창 메뉴를 여는 이유입니다.
그런데 지금 시도해보는 중이 I3WM
라 결과가 조금 다를 수도 있어요.
예를 들어 터미널이나 텍스트 편집기에서 키를 누르면 133
탭 문자가 쓰여지고 수정자가 됩니다.
Shift
또한 키 유형이 이기 때문에 다른 동작이 발생하지 않는다는 점도 확인했습니다 ONE_LEVEL
.
xev | grep key
실행하여 특정 키 조합에 어떤 일이 발생하는지 확인할 수도 있습니다 .
해결책
그러나 xmodmap
또한 수정자당 4개 이상의 키를 가질 수 없다는 점을 알려주므로 해결책(지금까지 나에게 효과가 있었던 유일한 방법)은 사용하지 않거나 가지고 있지 않은 키를 희생하여 Super_L
.
를 사용하는 경우 QWERTY
다음 위치에 있는 레이아웃을 수정하고 /usr/share/X11/xkb/symbols/us
(다른 레이아웃을 사용하는 경우 일반적으로 동일한 폴더에 있는 다른 파일임) 다음과 같이 작성할 수 있습니다.
key.type[Group1] = "TWO_LEVEL";
key <MENU>{[Super_L]}; // ONE or TWO level, assuming MENU key isn't used
key <LWIN>{[ Tab, Super_L]}; // should be TWO_LEVEL
key.type[Group1] = "ONE_LEVEL";
대신 (아마도 파일의 14번째 줄)
key <LWIN>{[Super_L]};
그런 다음 를 사용하여 키보드 레이아웃을 업데이트합니다 setxkbmap us && xmodmap | grep mod4
.
다음과 같은 결과를 얻게 됩니다:
mod4 Super_R (0x86), Super_L (0x87), Super_L (0xce), Hyper_L (0xcf)
그래도 얻을 수 있다면 Tab
아마도 다른 키를 희생해야 할 것입니다. 0x85
16진수 값 Yes는 해당 키가 직접 키가 아니지만 133
을 누르면 mod4
여전히 창 키처럼 동작할 수 있음을 의미 합니다 .Shift