환경: Debian 13 (trixie) · KDE Plasma 6.3 · Wayland 세션 · fcitx5 5.1 + fcitx5-hangul
검색하면 Ubuntu(GNOME) 글이나 X11 시절 글이 대부분이고, Debian 13 + Plasma Wayland 조합을 다룬 글은 거의 없었다. 인터넷 글을 따라 이것저것 설치하고 환경변수를 넣어도 한글이 안 됐는데, 원인은 KDE Wayland는 입력기를 띄우는 방식 자체가 다르다는 점이었다.
TL;DR — 3줄 요약
- 입력기는 fcitx5 하나만 쓴다. (ibus, uim, nabi, fcitx4는 지우거나 최소한 비활성화)
- 시스템 설정 → 키보드 → 가상 키보드(Virtual Keyboard) 에서 Fcitx 5 를 선택한다. 이게 핵심이다.
GTK_IM_MODULE/QT_IM_MODULE환경변수는 넣지 않는다. (XMODIFIERS=@im=fcitx만 있으면 됨)
1. 왜 KDE Wayland는 다른가
X11 시절에는 입력기가 "그냥 백그라운드에서 도는 프로그램"이었다. 자동 시작으로 fcitx5를 띄우고 환경변수(GTK_IM_MODULE=fcitx 등)로 각 앱에 "저 입력기 써"라고 알려주면 끝이었다.
Wayland에서는 키 입력을 컴포지터(KDE에서는 KWin) 가 쥐고 있다. 그래서 입력기는 컴포지터가 제공하는 Wayland 입력기 프로토콜(zwp_input_method_v1)에 붙어야 한다. KWin은 이 권한을 자기가 직접 실행한 입력기 프로세스에게만 준다.
flowchart LR
K[키보드] --> KW[KWin 컴포지터]
KW -- "input_method_v1 (KWin이 직접 띄운 프로세스만)" --> F[fcitx5]
F -- "조합된 한글" --> KW
KW -- "text_input_v3" --> A[네이티브 Wayland 앱]
F -. "XIM (XMODIFIERS)" .-> X[XWayland 앱]그래서 다음과 같은 일이 생긴다.
- 터미널에서
fcitx5 -d로 직접 띄우거나 자동 시작에 등록하면, 프로세스는 돌지만 네이티브 Wayland 앱에서는 한글이 안 되거나 일부 앱에서만 된다. - KWin이 fcitx5를 띄우게 하려면 "가상 키보드" 설정에서 Fcitx 5를 골라야 한다. 이름 때문에 터치스크린용 메뉴처럼 보이지만, KDE Wayland에서는 이게 곧 "입력기 선택" 메뉴다.
2. 설정 방법 (깨끗한 상태 기준)
2-1. 패키지 설치
sudo apt install fcitx5 fcitx5-hangul \
fcitx5-frontend-gtk3 fcitx5-frontend-gtk4 \
fcitx5-frontend-qt5 fcitx5-frontend-qt6 \
kde-config-fcitx5 fonts-noto-cjk[!TIP]
fcitx5-chinese-addons,fcitx5-pinyin,fcitx5-m17n같은 건 한글 입력에 필요 없다. 블로그 글을 따라fcitx5-*를 통째로 깔 필요는 없다.
2-2. 다른 입력기 정리 (권장)
여러 입력기가 같이 깔려 있으면 서로 자동 시작 순서나 im-config의 자동 선택이 꼬인다.
sudo apt purge ibus uim nabi fcitx-bin fcitx-modules kde-config-fcitx
sudo apt autoremove[!NOTE]
fcitx-*(숫자 없음)는 fcitx4 이고fcitx5-*가 fcitx5 다. 이름이 비슷해서 헷갈리기 쉽다.kde-config-fcitx(fcitx4용)와kde-config-fcitx5도 다른 패키지다.
2-3. im-config를 fcitx5로 고정
im-config -n fcitx5~/.xinputrc에 run_im fcitx5가 기록된다. 이걸 안 하면 im-config가 auto 모드로 동작해서, 깔려 있는 것 중 우선순위가 높은 ibus를 고를 수 있다.
2-4. KWin에게 fcitx5를 띄우게 하기 ★핵심★
시스템 설정 → 키보드 → 가상 키보드 → Fcitx 5 선택 → 적용
GUI 대신 설정 파일로 확인하려면 ~/.config/kwinrc를 본다.
[Wayland]
InputMethod=/usr/share/applications/org.fcitx.Fcitx5.desktop
VirtualKeyboardEnabled=true[!IMPORTANT]
두 줄 다 있어야 한다.InputMethod만 맞고VirtualKeyboardEnabled=false면 KWin은 아무 에러 없이 fcitx5를 실행하지 않는다. 내가 막혔던 지점이 바로 여기다. (아래 4장 참고)
로그아웃 없이 바로 적용하려면:
kwriteconfig6 --file kwinrc --group Wayland --key VirtualKeyboardEnabled true
qdbus6 org.kde.KWin /VirtualKeyboard org.freedesktop.DBus.Properties.Set \
org.kde.kwin.VirtualKeyboard enabled true2-5. fcitx5에 한글 입력기 추가
시스템 설정 → 키보드 → 입력기(Input Method) (kcm_fcitx5)에서:
Keyboard - English (US)+Hangul두 개를 둔다.- 전환 키는 기본값 Ctrl+Space. 한/영 키를 쓰고 싶으면 "전역 옵션 → 입력기 전환(Trigger Input Method)"에
Hangul키를 추가한다.
결과는 ~/.config/fcitx5/profile에 저장된다.
[Groups/0]
Name=Default
Default Layout=us
DefaultIM=hangul
[Groups/0/Items/0]
Name=keyboard-us
[Groups/0/Items/1]
Name=hangul2-6. 환경변수: 최소한만
| 변수 | KDE Wayland에서 | 이유 |
|---|---|---|
XMODIFIERS=@im=fcitx |
설정 | XWayland(X11) 앱이 XIM으로 fcitx5를 찾을 때 필요 |
GTK_IM_MODULE |
설정하지 않음 | GTK3/4 앱은 Wayland text-input 프로토콜로 바로 붙는다. 강제로 넣으면 후보창 위치 이상, 입력 중복 같은 문제가 생길 수 있다 |
QT_IM_MODULE |
설정하지 않음 | Qt 앱도 마찬가지 |
[!NOTE]
이 권장은 fcitx5 공식 위키의 "Using Fcitx 5 on Wayland" → KDE Plasma 항목 기준이다. 단, GTK2 앱이나 일부 오래된 XWayland 앱에서 안 되면 그 앱에만GTK_IM_MODULE=fcitx를 붙여 실행하는 식으로 예외 처리하는 게 낫다.
2-7. 확인
# 1) KWin이 입력기를 켰는가?
qdbus6 org.kde.KWin /VirtualKeyboard org.kde.kwin.VirtualKeyboard.enabled # → true
# 2) fcitx5의 부모 프로세스가 kwin_wayland인가?
ps -o pid,ppid,args -C fcitx5
ps -o pid,args -p <위에서 나온 PPID> # → kwin_wayland부모가 kwin_wayland가 아니면 (예: systemd, bash, dbus-daemon) KWin이 띄운 게 아니므로 네이티브 Wayland 앱에서 제대로 동작하지 않는다.
3. 다른 환경과 무엇이 다른가
| 항목 | Debian 13 + KDE Plasma (Wayland) | Ubuntu / Debian 13 + GNOME (Wayland) | Debian 13 + Xfce·MATE·Cinnamon (X11) / KDE X11 세션 |
|---|---|---|---|
| 기본으로 쓰기 좋은 입력기 | fcitx5 (KDE가 가장 잘 지원) | ibus (GNOME Shell에 내장 통합) | fcitx5 또는 ibus, 아무거나 |
| 입력기를 띄우는 주체 | KWin (가상 키보드 설정) | GNOME Shell이 ibus를 직접 관리 | 세션 자동 시작 (/etc/xdg/autostart/im-launch.desktop → im-config) |
| 설정 위치 | 시스템 설정 → 키보드 → 가상 키보드 + 입력기 | 설정 → 키보드 → 입력 소스에 "한국어(Hangul)" 추가 | im-config + 입력기 자체 설정 도구 |
GTK_IM_MODULE / QT_IM_MODULE |
넣지 않음 | 보통 im-config가 알아서 처리. 손댈 일 거의 없음 | 넣어야 함 (fcitx 또는 ibus) |
XMODIFIERS |
@im=fcitx (XWayland용) |
@im=ibus |
필수 |
터미널에서 fcitx5 -d로 실행 |
❌ 네이티브 Wayland 앱에서 불완전 | ❌ (GNOME에서 fcitx5를 쓰려면 Kimpanel 확장 등 추가 작업 필요) | ✅ 정상 동작 |
| 흔한 함정 | 가상 키보드 설정 누락 / VirtualKeyboardEnabled=false |
fcitx5를 억지로 쓰려다 ibus와 충돌 | 환경변수 누락 |
정리하면:
- Ubuntu GNOME 글을 따라 하면 ibus 기준이라 KDE와 맞지 않는다. GNOME은 셸이 ibus를 품고 있어서 "입력 소스 추가"만 하면 되지만, KDE에는 그런 통합이 없다.
- X11 시절 글(또는 Xfce 같은 X11 데스크톱 글)을 따라 하면 환경변수 3종 세트 + 자동 시작을 하게 되는데, KDE Wayland에서는 이게 오히려 방해가 되거나 효과가 없다.
- 같은 Debian 13이어도 로그인 화면에서 "Plasma (X11)" 세션을 고르면 X11 방식이 맞다. 지금 어느 세션인지는
echo $XDG_SESSION_TYPE으로 확인한다.
4. 내가 틀렸던 부분 (실제 진단 결과)
내 PC를 진단해 보니 이런 상태였다.
❌ 1. 입력기 5종이 동시에 설치되어 있었다
fcitx (4.x) + kde-config-fcitx ← fcitx4
fcitx5 + fcitx5-hangul + 중국어 애드온들 ← fcitx5
ibus + ibus-hangul ← ibus
uim + uim-mozc + uim-xim ... ← uim
nabi ← nabi"이거 깔아봐", "저거 깔아봐" 하는 글을 따라가다 보면 이렇게 된다. 로그인 직후에는 이 중 어떤 입력기도 돌고 있지 않았다.
→ 교훈: 하나만 고르자. KDE면 fcitx5.
❌ 2. im-config가 사용자 설정 없이 auto → ibus로 잡혀 있었다
$ im-config -m
fcitx5 ← 시스템 기본
missing ← 사용자 설정(~/.xinputrc) 없음
ibus ← auto 모드가 실제로 고른 것fcitx5를 쓰려고 했는데 im-config는 ibus를 고르고 있었다.
→ im-config -n fcitx5로 사용자 설정을 명시해서 해결했다.
❌ 3. /etc/environment에 같은 줄이 3번 들어 있었다
XMODIFIERS=@im=fcitx
XMODIFIERS=@im=fcitx
XMODIFIERS=@im=fcitx동작에 큰 해는 없지만, 여러 글을 따라 같은 설정을 반복해서 넣었다는 흔적이다. 한 줄만 남기면 된다.
❌ 4. (진짜 원인) InputMethod는 맞는데 VirtualKeyboardEnabled=false
[Wayland]
InputMethod=/usr/share/applications/org.fcitx.Fcitx5.desktop
VirtualKeyboardEnabled=false ← 이것 때문에 KWin이 fcitx5를 아예 안 띄움설정 파일만 보면 Fcitx 5가 지정되어 있어서 맞게 된 것처럼 보인다. 그런데 KWin에 직접 물어보면:
$ qdbus6 org.kde.KWin /VirtualKeyboard org.kde.kwin.VirtualKeyboard.available
true ← 입력기는 등록돼 있음
$ qdbus6 org.kde.KWin /VirtualKeyboard org.kde.kwin.VirtualKeyboard.enabled
false ← 하지만 꺼져 있음 → 실행 안 함이 상태에서는 로그아웃/재로그인을 해도, KWin 설정을 다시 불러와도 fcitx5가 뜨지 않았다. 에러 로그도 전혀 남지 않아서 찾기 어려웠다. (처음 진단할 때는 나도 InputMethod 줄만 보고 "설정은 맞다"고 넘어가서 재로그인 한 번을 헛되게 했다.)
VirtualKeyboardEnabled=true로 바꾸고 D-Bus로 enabled=true를 주자마자 KWin이 fcitx5를 자식 프로세스로 띄웠고, 한글 입력이 바로 됐다.
[!WARNING]
가상 키보드 설정에서 "없음(None)"을 한 번 골랐다가 다시 Fcitx 5를 고르는 식으로 만지다 보면 이 값이 false로 남을 수 있다. 설정 화면이 맞아 보여도 위의qdbus6 ... enabled명령으로 실제 상태를 꼭 확인하자.
⚠️ 5. (흔한 함정) fcitx5를 손으로 / 자동 시작으로 띄우기
KWin이 안 띄워주니 fcitx5 -d로 직접 띄우거나 자동 시작에 넣고 싶어진다. 트레이 아이콘도 뜨고 프로세스도 돌지만, KWin이 띄운 게 아니라서 네이티브 Wayland 앱에서는 불완전하다. 2-7장처럼 부모 프로세스를 꼭 확인하자.
5. 트러블슈팅
| 증상 | 확인 / 해결 |
|---|---|
| 트레이에 fcitx 아이콘이 아예 없음 | qdbus6 org.kde.KWin /VirtualKeyboard org.kde.kwin.VirtualKeyboard.enabled → false면 2-4 적용 |
| 아이콘은 있는데 일부 앱에서만 안 됨 | ps -o ppid -C fcitx5로 부모가 kwin_wayland인지 확인 |
| Chrome / VS Code / Electron 앱에서만 안 됨 | 실행 옵션에 --enable-wayland-ime 추가 (Wayland 모드로 실행 중일 때. 예: --ozone-platform=wayland --enable-wayland-ime) |
| 재부팅 후 다시 안 됨 | ~/.config/kwinrc의 [Wayland] 두 줄, ~/.xinputrc의 run_im fcitx5 확인 |
| ibus 후보창이 같이 뜸 | pgrep -a ibus → 돌고 있으면 ibus 제거 또는 im-config -n fcitx5 |
| 한/영 키가 안 먹음 | fcitx5 설정 → 전역 옵션 → 입력기 전환 키에 Hangul 추가 |
6. 최종 설정 파일 요약
| 파일 | 내용 |
|---|---|
~/.config/kwinrc |
[Wayland] InputMethod=/usr/share/applications/org.fcitx.Fcitx5.desktop, VirtualKeyboardEnabled=true |
~/.xinputrc |
run_im fcitx5 |
~/.config/fcitx5/profile |
keyboard-us + hangul |
/etc/environment |
XMODIFIERS=@im=fcitx (한 줄) |
이 상태로 재부팅해도 KWin이 로그인 시 fcitx5를 자동으로 띄운다.
참고
- Fcitx 5 위키 — Using Fcitx 5 on Wayland (KDE Plasma 항목): https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland
man im-config
0 댓글