Xubuntu 14.04를 실행하는 Asus X551M에서 다음 키보드 구성을 설정하고 싶습니다.
스페이스바 바로 옆에 있는 수정자 키 쌍은 컨트롤에 매핑됩니다. 다음으로 가장 가까운 쌍이 에 매핑됩니다 Alt.
즉, 내 키보드의 맨 아래 행은 다음과 같습니다.
[ctrl] [fn] [win] [alt] [ space ] [alt] [menu] [ctrl]
그리고 나는 그 논리가 다음과 같이 동작하길 원합니다:
[ctrl] [fn] [alt] [ctrl] [ space ] [ctrl] [alt] [ctrl]
(저는 가장 바깥쪽 Ctrl키 쌍을 사용하지 않으므로 매핑이 임의적입니다.)
과거에 xmodmap
파일을 수동으로 편집하여 이 작업을 수행했지만 첫 번째 시도에서는 작동하지 않았습니다. 또한 xmodmap
로드 시 구성 파일이 잠기는 현상이 알려진 문제입니다. 이 주제에 대해 내가 읽은 모든 내용에는 xmodmap
더 이상 사용되지 않으며 사용해야 한다고 나와 있습니다 setxbdmap
.
그래서 먼저 다음을 시도합니다.
setxbdmap -option altwin:ctrl_alt_win
이것은 거의 완벽하게 작동합니다. 이제 내 키보드 논리는 다음과 같습니다.
[ctrl] [fn] [alt] [ctrl] [ space ] [ctrl] [menu] [ctrl]
Menu즉, 키를 에 매핑 하면 됩니다 Alt. 을 사용하여 이를 수행할 수 있는 방법이 있습니까 setxbdmap
?
/usr/share/X11/xbd/rules/evdev.lst
다음으로 다음 줄을 찾을 때까지 살펴봅니다 .
altwin:menu Add the standard behavior to Menu key
그리고 시도해 보았으나 아무런 차이가 없는 것 같습니다. 옵션이 있습니다:
ctrl:menu_rctrl Menu as Right Ctrl
물론 이것이 대신 매핑되는 것을 제외하고는 이것이 제가 원하는 것입니다 Menu. Ctrl그러면 Alt이를 수행할 수 있는 방법이 있습니까 setxbdmap
?
답변1
다음 내용으로 파일을 생성할 수 있습니다 ~/.xkb/symbols/local
.
xkb_symbols "local" {
key <LWIN> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
key <MENU> {
type= "ONE_LEVEL",
symbols[Group1]= [ ISO_Level3_Shift ]
};
key <LALT> { [ Control_L ] };
key <RALT> { [ Control_R ] };
};
또는
xkb_symbols "local" {
key <LWIN> {
type= "ONE_LEVEL",
symbols[Group1]= [ Alt_L ]
};
key <MENU> {
type= "ONE_LEVEL",
symbols[Group1]= [ Alt_R ]
};
key <LALT> { [ Control_L ] };
key <RALT> { [ Control_R ] };
};
(또는 그 사이의 것), 원하는 Alt 종류에 따라 다릅니다. X를 시작할 때마다 다음을 수행하십시오(예를 들어 파일이 ~/.xsession
있는 경우 파일에서).
mkdir -p .xkb/keymap
setxkbmap -print | sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' > $HOME/.xkb/keymap/custom
xkbcomp -w0 -I$HOME/.xkb -R$HOME/.xkb keymap/custom $DISPLAY
두 번째 줄은 when (세 번째 줄)이 이 옵션과 함께 사용되는 ~/.xkb/keymap
경우를 xkb_symbols { include "...+local" };
포함하는 파일을 생성합니다 . 이 파일을 실행하기 전에 확인할 수 있습니다 .~/.xkb/symbols/local
xkbcomp
-I$HOME/.xkb
xkbcomp
아직 완전히 시도하지는 않았지만 이것은 내가 하고 있는 일을 기반으로 합니다.https://www.vinc17.net/unix/xkb.html( types
목차 없음).