Wayland 관련 문제 해결(입력기, 화면 처리 등)
대부분 Arch Wiki에도 나와 있는 것들이지만, 따로 정리해 보았다.
입력 문제(KDE, Fcitx5)
KDE 키보드 설정 먼저
KDE Plasma + Fcitx 5 의 경우 KDE의 설정에서 키보드 레이아웃을 먼저 101/104키 호환으로 바꾸는 것이 우선이다.
이는 Alt-R에 한/영 기능이 부여된 노트북 자판에서 Alt-R 키가 정상적으로 한글 키로 인식되도록 하기 위함이다.(Ctrl-R 역시 한자로 인식된다)
키보드 레이아웃을 바꿨다면, 가상 키보드 설정으로 들어가서 Fcitx5 혹은 Fcitx5 Wayland Launcher를 적용한다.
정상적인 경우, 이때 적용 버튼을 누른 뒤부터 Fcitx가 켜지며, 아래 트레이 아이콘에 Fcitx5 아이콘, 혹은 키보드 아이콘이 보일 것이다.
Fcitx 5 설정
Fcitx5 설정은 트레이 아이콘을 우클릭하여 들어가거나, 앱 메뉴에서 검색해서 진입하면 된다.
우측의 사용 가능 입력기에서 "한글"을 왼쪽으로 보내면 된다.
("키보드-한국어-한국어 (101/104키 호환)"의 경우, KDE 설정만 제대로 했다면 기본으로 들어가 있어야 한다.)
혹시 한글 키가 작동하지 않는다면, Fcitx5 전역 옵션에서 트리거 입력기를 추가하면 된다.
그리고, 기본으로 '트리거 키를 반복해서 누를 때 열거하기'가 체크되어 있다면, 해제하는 것이 좋다. 급하게 한글과 영어를 섞어 쓸 때 매우 불편하다.
키보드 한글 레이아웃이 안될 경우
가끔 101/104키 한국 키보드 레이아웃이 적용되지 않거나, 아예 없는 경우가 존재한다.
이 때에는 각 애플리케이션 별로 Alt-R 키가 작동하지 못하도록 설정해 주어야 한다.
Firefox
about:config에 접속한다.
ui.key.menuAccessKeyFocuses
위 아이템을 검색하여 값을 false로 바꿔주면 언어 변경하다가 메뉴로 커서가 이동하는 참사를 막을 수 있다.
Visual Studio Code
Ctrl + Shift + P를 누르고, settings.json을 연다.
{
"window.titleBarStyle": "custom",
"window.customMenuBarAltFocus": false,
"window.enableMenuBarMnemonics": false,
"window.menuBarVisibility": "visible",
}
위 4개를 다 적용하고 나면, VS Code의 모습이 윈도우에서 보던 모습으로 바뀜과 동시에 Alt키에 의해 메뉴가 이동하는 것이 방지될 것이다.
화면 문제(Wayland로 실행되지 않는 문제)
사실, KDE를 쓰면서 XWayland 창이더라도 뿌옇게 흐려지는 일은 없다. (KDE의 XWayland 구현은 상당히 잘 되어있는 편으로, xwininfo 명령을 통해 굳이 확인하거나, DPI 설정을 극단적으로 하여 배율로 구분하는게 아니고서야 xwayland인지 wayland인지 구분하기 어렵다.)
다만, GNOME을 사용중이라 XWayland 하에서 구동되는 앱들의 화면이 심각하게 망가지거나, 가능하면 Wayland로 앱을 구동하고자 하는 경우, 아래와 같은 해결책들이 존재한다.
Chromium, Edge
- chrome://flags 로 접속한다.
- Wayland를 검색한다.
- Preferred Ozone platform : Auto 혹은 Wayland로 설정한다. 이게 활성화되어야 Wayland 프로토콜을 쓰기 시작한다.
- Wayland per-window scaling : Enabled로 설정한다.
- Wayland text-input-v3 : Enabled로 설정한다. 이걸 활성화해야 Wayland의 입력기 방식으로 동작한다.
- Wayland UI scaling : Enabled로 설정한다. UI Scaling에 필요하며, Wayland per-window scaling이 활성화되어 있어야 한다.
Edge의 경우, edge://flags에서 가능할 것이나, 아마 상당수의 옵션이 없을 것이다.
따라서 .desktop 파일을 수정하여 "--ozone-platform-hint=wayland --wayland-text-input-v3" 등을 실행 명령에 넣어주어야 할 것이다. (확실하진 않다. 그런데 굳이 리눅스에서 엣지?)
Visual Studio Code
사실 이놈이 메인이다.
이 프로그램은 사실상 배포판마다 설정이 제각각이라서, 환경변수로 설정하는게 가장 속이 편하다.
"$HOME/.config/environment.d" 폴더에 "90-vscode.conf" 파일을 만들고 아래 내용을 적는다. (경로가 없으면 만들어서라도 넣으면 된다.
ELECTRON_OZONE_PLATFORM_HINT=auto
이러면 모든 electron 기반 프로그램들이 다 wayland 환경에서는 wayland로 켜지게 된다.(물론 재부팅해서 환경변수를 적용해야 한다.)
문제는 XWayland에서는 오히려 X서버에서 하던 대로 한글 입력이 잘 되던 것이 이 환경변수를 켜면 Wayland로 가면서 작동을 안한다...(text-input-v3 확장을 써야 Wayland에서 한글 입력이 되는데, 그걸 켜는 방법이 있지만(실행할 때 --enable-wayland-ime 옵션 넣어주면 된다), 환경변수는 없다.)