리눅스에서 한/영 전환키 사용하기

리눅스에서 한/영 전환키 사용하기

문제점

  • 영문 키보드 구입
  • 오른쪽 Alt 키 (Alt_R)을 한글 키로 사용 하고 싶음.
  • IBus 등에서 한/영 변환을 Alt_R 키로 등록
    • 다른 프로그램에서는 잘 동작.
    • Alt_R 키를 단축키로 사용하는 프로그램(Chrome)등에서는 동작이 안됨
  • Ctrl_R은 Hanja 키로 매핑 시키고 싶지 않음.

Gnome Tweak Tool 사용

Gnome Tweaks Tool을 실행한다.

Gnome Tweaks Tool

우측 메뉴에서 Keyboard & Mouse를 선택한 후 우측 설정 화면에서 Additional Layout Options 버튼을 클릭한다. Gnome Tweaks Tool

Additional Layout Options 설정 화면에서 Korean Hangul/Hanja Keys 메뉴를 클릭하여 확장한 후 Make right Alt a Hangul Key를 선택한다. Gnome Tweaks Tool

Gnome Tweak Tool 시용 시 문제점

잘 동작한다. 하지만 Ctrl_R 키 까지 한자키로 매핑되어 VirtualBox 사용시 Host Key를 변경 해주어 야 한다. 한/영 전환키와 한자 전환키의 설정이 분리 되었다.

이 방법을 사용하자.

Xmodmap 사용

Hangul key

xmodmap -e 'remove mod1 = Alt_R' # Alt_R의 기본 키 매핑 제거
xmodmap -e 'keycode 108 = Hangul' # Alt_R을 Hangul 키로 매핑

Hanja Key

xmodmap -e 'remove control = Control_R'
xmodmap -e 'keycode 105 = Hangul_Hanja'

Save permanently

xmodmap -pke > ~/.Xmodmap

Xmodmap 사용 시 문제점

ubuntu 18.04이후 부터 XKB가 기본 키보드 매핑 패키지로 바뀌면서 위의 xmodmap 설정이 자동으로 적용되지 않는다.

자동적용을 위해서는 아래의 XKB 사용 항목을 참고한다.

XKB 사용

Edit /usr/share/X11/xkb/symbols/altwin

// Meta is mapped to second level of Alt.
partial modifier_keys
xkb_symbols "meta_alt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Alt_R, Meta_R ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
//  modifier_map Mod4 {};
};
// Meta is mapped to second level of Alt.
partial modifier_keys
xkb_symbols "meta_alt" {
    key <LALT> { [ Alt_L, Meta_L ] };
    key <RALT> { type[Group1] = "TWO_LEVEL",
                 symbols[Group1] = [ Hangul ] };
    modifier_map Mod1 { Alt_L, Alt_R, Meta_L, Meta_R };
//  modifier_map Mod4 {};
};

References