xmodmap을 사용하지 않고 컨트롤 수정자 키의 Right_Control을 mod3에 재할당합니다.

xmodmap을 사용하지 않고 컨트롤 수정자 키의 Right_Control을 mod3에 재할당합니다.

xmodmap어쩌구 저쩌구 같은 다른 명령과 setxkbmap결합 할 수 없어서 예상보다 오래 걸리는 작업을 실행하고 있습니다 . 내 목표는 Right_Control키를 "할당"에서 " 기간별" 로 control변경하는 것입니다.mod3xmodmap

이 기사 덕분에 키에 할당할 수 있었습니다.setxkbmap을 사용하여 왼쪽 Shift와 왼쪽 Control 교체

문제는 이제 여전히 Right_Control을 "control"에 할당하고 이 할당을 제거해야 한다는 것입니다.

내가 수행한 단계를 요약하면 다음과 같습니다.

(이전에 fa를 사용자 정의 레이아웃으로 사용하고 있었고 이미 /usr/shareX11/xkb/symbols/fa 등에 파일이 있었습니다...)

mkdir -p ~/.xkb/symbols/keymap
mkdir -p ~/.xkb/symbols/
sudo vi ~/.xkb/symbols/assigningmod3

포함하다

partial modifier_keys
xkb_symbols "assign_rctl_to_mod3" {
    modifier_map Mod3 { <RCTL> };
};

그 다음에

setxkbmap -print > ~/.xkb/keymap/fa
sudo vi ~/.xkb/keymap/fa

그리고 밑줄 친 부분을 추가했습니다.

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+fa+inet(evdev)+assigningmod3(assign_rctl_to_mod3)"  };
    xkb_geometry  { include "pc(pc105)" };     ----------------------------------
};

그런 다음 내 .xinitrc에 이 줄을 포함시킵니다.

xkbcomp -I$HOME/.xkb ~/.xkb/keymap/fa $DISPLAY 2> /dev/null

xmodmap이제 X11Server를 다시 시작하면 할당을 확인할 때 문제가 발생합니다.

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),  Control_R (0x69)
                               ----------------
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Control_R (0x69)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

보시다시피 제거해야 하는 할당을 강조 표시했지만 다른 한편으로는 mod3올바르게 할당되었습니다. 수정해야 할 위치를 추적하면 /usr/share/X11/xkb/symbols/level392행의 원래 키 할당 에 해당됩니다.

xkb_symbols "switch" {
  key <RCTL> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level3_Shift ]
  };
  include "level3(modifier_mapping)"
};

그러나 나는 거기에서 무엇이든 조정할 자신이 없습니다. 배포하는 방법을 알고 있나요?

답변1

xmodmap전체 템플릿 파일을 로드하기 위해 호출할 때 몇 가지 문제가 발생할 수 있습니다. on을 사용하여 xmodmap이 키 할당을 제거해도 괜찮습니다 . 아래 호출에 다음 줄을 추가하기 .xinitrc만 하면 됩니다.xkbcomp

/usr/bin/xmodmap -e 'remove control = Control_R'

관련 정보