[Termux] 갤럭시에서 한글 입력 안 됨/씹힘 완벽 해결법 (삼성 키보드 + Ubuntu PRoot)

1. 문제 증상

갤럭시(One UI) 환경에서 Termux나 Termux 내
PRoot(Ubuntu 등)를 사용할 때 다음과 같은
현상이 발생합니다.

• 삼성 키보드에서 한/영 전환을 눌러 한글을
타이핑해도 화면에 아무 글자도 나타나지 않음
• 스페이스바나 엔터를 쳐야 글자가 뒤늦게
나타나거나, 초성/중성/종성 조합이 깨짐
• 영어나 기호는 잘 쳐지는데 한글만 씹히는
현상
──────

2. 왜 이런 문제가 생길까? (원인 분석)

원인은 크게 3가지가 복합적으로 작용하기
때문입니다.

  1. 삼성 키보드의 문자 조합(IME) 버퍼 방식:
    삼성 키보드는 단어 예측 및 자모음 조합
    버퍼를 사용합니다. 일반 앱에서는 정상
    작동하지만, 터미널 에뮬레이터에서는 이 버퍼
    데이터가 터미널로 즉시 전달되지 못합니다.
  2. Ubuntu PRoot의 기본 로케일(Locale) 누락:
    기본 설치된 리눅스 콘솔 로케일이 POSIX(기본
    영문)로 되어 있으면 쉘이 한글 같은
    멀티바이트 UTF-8 문자를 지원하지 못합니다.
  3. Readline(쉘 입력기)의 메타 키 필터링:
    bash 터미널의 입력 처리 라이브러리가 8비트
    문자 데이터를 제어 코드로 오인하여 차단할
    수 있습니다.
    ──────

3. 해결 방법 (3단계 적용)

1단계: Termux 문자 단위 입력 모드

활성화 (가장 중요!)

Termux 앱 자체의 설정에서 삼성 키보드 호환
옵션을 켜줍니다.

# Termux 홈 기준 설정 파일 수정
nano ~/.termux/termux.properties

파일 내용 중 아래 줄을 찾습니다:

# enforce-char-based-input = true

앞의 # 주석을 제거하여 다음과 같이
변경합니다:

enforce-char-based-input = true

저장 후 설정을 즉시 다시 불러옵니다:

termux-reload-settings

──────

2단계: Ubuntu 환경 한국어

로케일(ko_KR.UTF-8) 생성

Ubuntu(PRoot) 내부로 들어와 한국어 UTF-8
로케일을 생성하고 기본값으로 지정합니다.

# 1. 한국어 UTF-8 로케일 생성
locale-gen ko_KR.UTF-8

# 2. 시스템 기본 로케일로 지정
update-locale LANG=ko_KR.UTF-8

LC_ALL=ko_KR.UTF-8

# 3. 사용자 .bashrc 파일에 로케일

환경변수 추가
cat << 'EOF' >> ~/.bashrc

# Korean UTF-8 Locale
export LANG=ko_KR.UTF-8
export LC_ALL=ko_KR.UTF-8
EOF

# 4. 즉시 적용
source ~/.bashrc

──────

3단계: 터미널 쉘(Readline) 8비트 한글

입력 허용

터미널 입력기가 한글 바이트를 그대로
통과시키도록 ~/.inputrc 파일을 만듭니다.

cat << 'EOF' > ~/.inputrc
set input-meta on
set output-meta on
set convert-meta off
EOF

──────

4. 추가 팁

  1. 블루투스/물리 키보드를 사용할 때 한/영
    전환이 안 될 경우:
    • 갤럭시 안드로이드 **[설정] > [일반] >
    [하드웨어 키보드]**로 이동합니다.
    • 레이아웃을 **'한국어 키보드
    (101/104키)'**로 변경합니다. (전환:
    Shift + Space 또는 우측 Alt)
  2. 화면 가상 키보드 대체 추천:
    • 여전히 삼성 키보드가 버벅거린다면,
    터미널 환경에 최적화된 Unexpected
    Keyboard 또는 Gboard를 추천합니다.

댓글 쓰기 · 수정

1 댓글

  1. 그래도 씹힘이 남긴합니다. ???같은 것들이 오류네요

    답글삭제