일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 에어팟
- AirPods
- sierra
- high sierra
- mojave
- 버그
- asahi linux
- 맥
- iOS 13
- beta
- 컨트롤러
- macos
- Mac
- catalina
- 애플
- IOS
- 3D프린터
- 터치바
- Linux
- Tarantula
- 아이폰
- 시에라
- 업데이트
- 맥북프로
- 모하비
- 정식버전
- 3D 프린터
- Fedora
- tevo
- 터미널
- Today
- Total
elsa in mac
Ghostty 터미널에서 fcitx5를 사용할 때, 단일키로 한/영 전환이 되지 않는 문제 대응법 본문
ghostty 터미널이 공개 전환되면서, 많은 사람들이 ghostty 터미널을 사용하고 있습니다 만, 다국어를 사용하는 사람들에게 한 가지 문제가 있습니다.
바로, 포스트 제목과 같이 fcitx5를 IME로 사용하는 Linux에서 single modifer key 로 한/영 전환을 이용하는 사용자들이 여타 다른 terminal emulator에서 와는 달리 ghostty에서는 사용할 수 없다는 것 입니다.
본인의 경우 자판의 "왼쪽 Shift 키"를 한/영 전환키로 사용합니다. kitty, wezterm, foot 등 기존의 다른 terminal emulator에서는 단일 shift키를 이용한 한/영 전환에 아무런 문제가 없는데, ghostty에서는 이것이 동작하지 않습니다. 이것은 아마도 내부 key binding 로직(modifier + 일반 key로 binding 선언) 에 따른 제한사항으로 보이는데, github에 issue가 제기되어 있지만 정책과 관련된 것이라 쉽게 바뀔 수 있는 문제로 보이지 않습니다.
습관이라는 것이 무서워서 기존에 사용하던 환경과 다른 환경에서 app을 사용해야 한다면. 굉장한 저항감이 생가게 됩니다. 굳이 대안들이 많이 있는데, 불편함을 감수하면서 이 app을 사용해야 할까 ??? 뭐.. 이런거죠..
자, 여찌되었던 방법이 없는 것은 아닙니다. 이 문제를 해결하는 것에는 두 가지 방법이 있는데요..
첫번째 방법은 github issue에서 밝힌 바와 같이 GTK_IM_MODULE의 설정을 일시적으로 변경한 상태에서 ghostty를 실행하는 것 입니다.
GTK_IM_MODULE=wayland ghostty
이 방법으로 ghostty를 실행하면 single modifier key 로 한/영 전환을 할 수는 있지만, 한글 모드에서 한글 입력 시, 자/모 조합이 실시간으로 표시되지 않고 한 글자가 완성된 후에 표시가 됩니다. 따라서, 자/모 입력 과정에서 오타가 발생한 경우 즉각적으로 수정할 수 없고 한 글자를 완전히 다 지우고 다시 써야 하므로 한글 입력 및 편집이 굉장히 불편합니다.
두 번째 방법은 key mapping 앱을 사용하는 것 입니다.
이 방법은 fcitx에서 한/영 toggle 키로 ShiftLeft 키 이 외에 추가적으로 Shift + Space 와 같이 toogle 키를 추가적으로 선안하여 사용하는 방법입니다. fcitx5에서 Shift + Space키를 추가하면, ghostty에서 Shift + Space 키로 한/영 전환을 정상적으로 사용할 수 있게 됩니다. 단, ghostty에서만 다른 여타 app과 달리 한/영 전환을 Shift + Space로 사용해야 한다는 문제가 남게 됩니다.
여타 다른 앱 처럼 Shift 단일 키로 한/영 toggle을 하려면 key mapping 앱의 도움을 받아야 합니다. 여기서는 이전에 소개한 keymapper 앱을 이용합니다. keymapper에 대한 소개는 여기를 참조 하시기 바랍니다.
ghostty에 대한 key mapping을 ~/.config/keymapper/keymapper.conf 파일에 다음과 같이 추가 합니다.
[system = "Linux", class = "com.mitchellh.ghostty"]
ShiftLeft{Any} >> ShiftLeft{Any}
ShiftLeft >> ShiftLeft{Space}
위의 설정은 Linux 시스템에서, com.mitchellh.ghostty 라는 class(app_id)를 사용하는 앱에 대한 제한적인 key mapping을 선언한 것 입니다.
shiftLeft{Any} >> ShiftLeft{Any}
이것은 shift키를 누른 상태에서 여타 다른 키를 누른 경우에는 그대로 shift + [any key] 로 동작하도록 합니다.
ShiftLeft >> ShiftLeft{Space}
이것은 Shift키만 단독으로 push/pull 한 경우, ghostty에 Shift 대신 Shift + Space 키를 보내게 됩니다. 따라서, 마치 Shift + Space 키를 눌러 한/영 전환을 시킨 것과 같은 효과를 부여하게 합니다.
근본적으로는 ghostty 의 소스 수정으로 이 문제가 해결되는 것이 가장 깔끔하기는 하지만, Issue가 언제 반영될지 모르는 상황이므로, ghostty를 꼭 사용하고 싶다면 참조 하시기 바랍니다.
'Terminal' 카테고리의 다른 글
Yazi 파일 메니저에서 Icon과 파일 및 폴더 text가 붙어서 보기가 불편한가요 ? (0) | 2025.01.12 |
---|---|
Ghostty 터미널 에뮬레이터 설치 및 간단 사용기 (0) | 2024.12.27 |
neovim, markdown plugin의 최강자 - markview.nvim (0) | 2024.12.11 |
터미널 에뮬레이터에서 chatGPT를 이용해 보자 (0) | 2024.10.31 |
noevim(nvim) 을 배우고 싶다구요 ? cheat sheet 참고 하세요.. ^^ (0) | 2024.10.25 |