Lobsters

Introducing Kwi, a new KDE terminal emulator

KDE 개발자, GPU 렌더링과 앱 내장 모듈 갖춘 터미널 Kwi 소개

KDE 개발자가 Ghostty의 터미널 처리 라이브러리와 Qt Quick 기반 GPU 렌더링을 결합한 터미널 Kwi를 소개했습니다. 다른 KDE 앱에 넣을 QML 모듈도 제공하며, 현재는 v0.1.0 태그가 없는 시험 단계입니다. 작성자는 Kwi를 선택 가능한 실험으로 소개했고, KDE의 향후 터미널 방향은 앞으로 논의할 사안이라고 밝혔습니다.

본문

KDE 개발자가 Plasma와 다른 자유 데스크톱에서 쓸 새 터미널 에뮬레이터 Kwi를 소개했습니다. Ghostty의 터미널 처리 라이브러리와 KDE의 Qt Quick 기술을 결합해 터미널 기능을 구현하고, 다른 KDE 앱에 넣어 쓸 수 있는 공개 QML 모듈도 제공합니다. 현재는 소수의 지인이 제한적으로 시험한 초기 프로젝트입니다.

터미널 처리와 화면 출력을 나눈 구성

Kwi는 Ghostty 프로젝트의 libghostty-vt를 바탕으로 터미널 제어 시퀀스를 해석하고 터미널 상태를 관리합니다. 이 라이브러리는 창이나 사용자 인터페이스를 제공하지 않는 방식으로 설계됐습니다. Kwi는 여기에 KDE Frameworks와 Qt 기술을 연결해 데스크톱 기능과 화면 출력을 맡습니다. 인터페이스는 Kirigami로 만들었고, 터미널 화면은 Qt Scene Graph를 이용해 Vulkan 또는 OpenGL로 그립니다.

기존 Konsole는 QWidget 기반 기술에 깊이 연결돼 CPU로 화면을 렌더링합니다. Kwi는 Qt Quick을 사용해 GPU 렌더링을 적용하고 Wayland의 분수 배율 처리와 Plasma 색상 테마 변경을 지원합니다. 개발자는 작업별 벤치마크에서 Konsole보다 3~35배 빠르다고 제시했습니다. 한 시험 시스템의 DOOM-fire-zig에서는 Kwi가 초당 870프레임, Konsole가 23프레임을 기록했습니다. 블로그에는 시험 장비 구성과 측정 절차가 제시되지 않았습니다.

화면 출력 외에도 작성자는 텍스트 장식과 합자, Powerline 기호, 유니코드 자리표시 이미지 처리를 개선했다고 설명했습니다. 텍스트 사용자 인터페이스(TUI)가 쓰는 최신 기능도 지원합니다. 예를 들어 Kitty 이미지 프로토콜의 이미지 배치와 표시 속도를 개선하고 애니메이션, 마우스 커서 모양, 클립보드 기능을 지원합니다. 진행 상태를 표시하는 OSC 프로토콜과 Kitty 키보드 프로토콜도 다룹니다. 스크린리더가 터미널 텍스트를 가져오고 마우스 위치와 이용 가능한 동작을 파악하는 접근성 지원도 강화했습니다.

다른 KDE 앱에 넣어 쓰는 모듈

Kwi는 독립 실행형 터미널일 뿐 아니라 다른 앱에 내장할 구성요소도 제공합니다. Qt Quick과 Kirigami로 만든 KDE 앱은 공개 Qt Quick/QML 모듈을 가져와 터미널을 넣을 수 있습니다. Kwi 앱 자체도 같은 모듈을 사용하므로 단독 실행형과 내장형에서 설정을 동일하게 제공합니다. Konsole의 내장 구성요소는 앱과 내장 인터페이스 사이에 설정과 동작 차이가 생길 수 있었는데, Kwi는 두 방식에 같은 모듈을 사용하도록 설계했습니다.

Dolphin, Kate, Yakuake 같은 QWidget 기반 앱에는 Konsole의 KPart가 쓰입니다. Kwi는 이 앱들에 사용할 대체 KPart도 제공합니다. 현재는 앱 코드에서 Kwi KPart를 선택하도록 한 줄을 수정해야 합니다. 사용자가 중앙 설정에서 선호하는 터미널을 고르는 전환 방식은 앞으로 풀 과제로 남았습니다.

시험 단계와 이용 방법

작성자는 Kwi가 개발 중이며 소수의 지인에게만 제한적으로 시험을 거쳤다고 밝혔습니다. 아직 태그된 v0.1.0도 없습니다. libghostty-vt 역시 ABI/API 안정성을 약속하는 v1.0 이전 단계이며, 작성자는 그 안정성 약속이 앞으로 4~6개월 안에 이뤄질 것으로 예상했습니다. 의존성이 비교적 새로워 배포판에 아직 포함되지 않았을 수 있어 직접 빌드가 어려울 수 있습니다. KDE Invent의 CI/CD가 만드는 Flatpak 야간 빌드는 저장소 README의 안내에 따라 설치할 수 있습니다.

작성자는 Kwi를 이용자가 선택할 수 있는 실험이자 제안으로 소개했으며, KDE의 향후 터미널 방향은 앞으로 논의할 사안이라고 설명했습니다.

자료: KDE Blogs / 정리·해설: Trawling