KDE’s Kwi Terminal Nears First Release, Split-Pane Support Planned

KDE's Ghostty-powered Kwi terminal prepares for version 0.1 with improved rendering, tab management, search, and keyboard shortcuts.

Just a week after Kwi was announced, the KDE devs have posted a progress update on the new GPU-accelerated terminal emulator, Kwi, based on Qt Quick and Kirigami, using Ghostty’s libghostty-vt as its backend. It’s intended to be a modern alternative to Konsole, with GPU-accelerated rendering and full integration with the KDE stack.

As per the latest dev update, they’ve fixed a huge number of issues that have been reported since Kwi’s announcement. As of the time of writing, the project has no open defect tickets.

Implemented improvements include new tab handling options, including the ability to open new tabs immediately after the current one and return to the previously active tab when closing a tab. Users can also configure the initial terminal size and switch between tabs using the mouse wheel.

Terminal rendering has had a number of fixes, particularly around geometric characters, Powerline characters, double line corners, and complex text decorations. Underlines now render much better (including under character descenders), and there are other fixes for missing fallback glyphs and various character rendering issues.

The search interface has also been reworked with a new position for the search bar, coloured feedback to let you know whether you’ve found any matches, and significantly less flickering. Other changes include improved screen reader support, more keyboard shortcuts, and better Konsole shortcut compatibility.

On the performance side, terminal updates are now batched during window resize to reduce the amount of unnecessary re-rendering. This also fixes a resize issue that was affecting the newer versions of Bash. Fractional scaling issues in the tab bar have also been sorted.

Moreover, Kwi now supports running each tab’s processes in a separate systemd scope (including when the terminal is running inside a Flatpak), and Kwi can also show up in GNOME’s Notification Center.

Regarding the release schedule, the app is currently undergoing KDE Review, the process through which experimental applications become official KDE projects. The required checklist has already been completed, and the following steps include translation work and access to KDE’s release infrastructure.

Once that process is complete, the developers plan to release Kwi 0.1 (its first officially tagged release) along with a Flatpak package on Flathub. However, no date for that release has been announced yet.

Looking further ahead, the KDE developers are planning a number of intermediate releases prior to 1.0, which is tentatively targeted for the next couple of months. That timeline is also, of course, linked to Ghostty’s plan to release version 1.0 of libghostty-vt as an API and ABI-stable version.

Two further features are on the cards prior to Kwi reaching 1.0. The first is split pane support, one of the most requested missing features from the terminal at the moment. That’s been confirmed as being implemented prior to the stable release, though they haven’t said which version it will be in.

The second concerns terminal integration alongside existing KDE applications, including Dolphin, Kate, and Yakuake. These currently rely on Konsole’s terminal embedding plugin.

Finally, it’s important to stress that Kwi is still very much an experimental project rather than a Konsole replacement at this stage. With KDE Review moving along and v0.1 now on the horizon, though, users should very soon have a much easier way to install and test the new terminal.

For additional details, see here.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *