리눅스에서 Ctrl + [로 한영 전환

나는 지금 기분이 매우 좋다. 왜냐하면 Vim에서 입력 모드(Insert Mode)에서 노멀 모드(Normal Mode)로 돌아갈 때의 한영 전환 이슈를 해결했기 때문이다.

Windows에서는 AutoHotKey라는 써드-파티 유틸이 있다. 단축키를 자신이 원하는 대로 지정해서 작은 .exe 형태로 System tray에 로그온시 실행시킬 수 있다. 리눅스에서 비슷한 유틸이 있나 검색해 보니 AutoKey라는 게 있었다. Arch Linux의 경우 AUR로 패키지가 있고 Ubuntu의 경우에도 패키지가 제공되는 걸로 검색된다.

내가 불편해하던 한영 전환 이슈라는 건, 나는 Ctrl + [를 fcitx 설정에서 한글 입력기를 끄는 것으로 단축키를 설정해 놨는데 이러면 Ctrl을 누르고 [키를 연타해야 하는 이슈를 계속 안고 Vim 사용을 해야 한다. 한 번은 fcitx 한글 입력기를 끄는 것과 또 한 번은 Vim 입력 모드에서 나가기 위한 것인 것 같다.

AutoKey를 백그라운드에 시스템 시작 시마다 항상 실행시키고, Ctrl + [ 조합을 한글 입력기를 끄는 것과 Esc 기능을 둘 다 하도록 매핑(?)시키면 말끔히 내가 겪던 이슈를 해결할 수 있다.

AutoKey는 Python을 스크립트로 사용하는데, 내가 사용할 스크립트를 Google AI Mode가 만들어줬다.

import subprocess

# 1. 현재 입력기를 영문(English)으로 강제 전환하는 명령어
# fcitx 사용자: "fcitx-remote -c" (한글 입력기를 끄고 영문으로 전환)
# ibus 사용자: "ibus engine xkb:us::eng" (영문 엔진으로 고정)

# `fcitx-remote` 명령어의 경로에 따라 적절히 수정
cmd = "/usr/bin/fcitx5-remote -c"

try:
    # 입력기 전환 명령어 실행
    subprocess.run(cmd, shell=True)
except Exception as e:
    pass

# 2. 원래 기능인 ESC 기능을 수행하기 위해 Ctrl + [ 신호를 보냄
# 또는 keyboard.send_keys("<escape>")를 사용할 수 있습니다.
keyboard.send_keys("<escape>")

AutoKey GTK를 띄우고 새로운 스크립트를 생성해서 위 스크립트를 ‘복붙’하고 Hotkey로 Ctrl + [ 같은 키 조합을 설정해 주면 된다.

한글이 들어가는 글은 Vim에서 작성할 때 항상 입력 모드에서 한글을 쓰다가 노멀 모드로 이스케이핑할 경우 로마자 입력 모드가 아니라서 고생스러웠는데 내가 쓰는 환경에서는 AutoKey로 말끔하게 해결이 되어서 기분이 너무나 좋다.

이 글로 인해 AutoHotKey와 같은 유틸로 Vim 한영 전환 이슈를 해결한다는 힌트를 얻을 수 있었다.

제한되는 점은 Wayland가 아닌 X11 환경에서만 잘 되는 것 같다.

참고자료