Bug 482549 - Add integration for container tooling
Summary: Add integration for container tooling
Status: REPORTED
Alias: None
Product: konsole
Classification: Applications
Component: general (other bugs)
Version First Reported In: 24.02.0
Platform: Fedora RPMs Linux
: NOR wishlist
Target Milestone: ---
Assignee: Konsole Bugs
URL:
Keywords: qt6
Depends on:
Blocks:
 
Reported: 2024-03-06 15:52 UTC by Neal Gompa
Modified: 2026-02-11 06:36 UTC (History)
9 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Neal Gompa 2024-03-06 15:52:03 UTC
SUMMARY
The GNOME folks have made a new terminal emulator tool called ptyxis (formerly "prompt") that among other things, includes specific integration for container tooling (such as Podman, Incus, and nspawn). This allows it to offer features oriented around Toolbx/Distrobox environments to make it easier to operate in that manner out of the box.

There's more detail about this feature in Ptyxis from this blog post: https://blogs.gnome.org/chergert/2023/12/14/prompt/


SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Fedora Linux 40 (KDE Plasma)
(available in About System)
KDE Plasma Version: 6.0.0
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.2

ADDITIONAL INFORMATION
This is tracked downstream in Fedora KDE here: https://pagure.io/fedora-kde/SIG/issue/478
Comment 1 Shawn W Dunn 2024-03-06 15:55:10 UTC
This also something that openSUSE Kalpa would be interested in, and will be looking into

https://code.opensuse.org/Kalpa/Development/issue/12
Comment 2 Akseli Lahtinen 2024-12-22 01:10:04 UTC
What would be the bare minimum featureset? And explain this for someone who has not used much containers before. :D
Comment 3 Bart Ribbers 2024-12-22 21:17:15 UTC
The bare minimum would be some button somewhere (probably under both "New Tab" and "Split View") to start a new tab or split view inside a discovered Distrobox container. This so the user doesn't have to do `distrobox enter <container name>` manually. Preferably these containers get discovered automatically, `distrobox list` can be used to list the available containers.

Additionally it would be nice to be able to configure Konsole to enter into a container by default, although imo that's already more than the "bare minimum".
Comment 4 Bart Ribbers 2024-12-22 21:25:23 UTC
Also "Fedora RPMs" should probably be removed from the Platform of this issue, this applies to literally any distribution that has Distrobox and/or Toolbox available.
Comment 5 Neal Gompa 2026-01-26 16:25:36 UTC
(In reply to Bart Ribbers from comment #4)
> Also "Fedora RPMs" should probably be removed from the Platform of this
> issue, this applies to literally any distribution that has Distrobox and/or
> Toolbox available.

That's not how the bug reporting works. The platform tag is for the build and environment this was reported from/for. Most bugs fix things for more than just the originating platform, but the reporting helps us understand who is asking for it and from where.
Comment 6 Lasath Fernando 2026-01-27 10:29:23 UTC
Git commit 7574dc7a2a7527c818c180f7c3eac64f7ffa98b8 by Lasath Fernando.
Committed on 27/01/2026 at 10:29.
Pushed by fernando into branch 'master'.

Add container detection and management support to Konsole - Phase 1

- Currently disabled by default - following the advice on David's Akademy talk about feature rollouts
- Doesn't add any UI yet (except for the profile option to enable it)
- Detects when a user enters a container
  - Toolbox via OSC777 escape sequences
  - Distrobox by inspecting the process environment variables
- Enters the same container when creating a new tab/window

Assuming this goes well, phases 2/3 are to add UI to show current container (like GNOME's Ptyxix) and to list/start new containers.

M  +8    -2    src/Application.cpp
M  +2    -1    src/Application.h
M  +2    -0    src/CMakeLists.txt
M  +16   -0    src/Emulation.h
M  +31   -3    src/MainWindow.cpp
M  +3    -1    src/MainWindow.h
M  +14   -0    src/Part.cpp
M  +19   -1    src/ViewManager.cpp
M  +4    -1    src/Vt102Emulation.cpp
A  +23   -0    src/containers/CMakeLists.txt
A  +66   -0    src/containers/ContainerInfo.h     [License: GPL(v2.0+)]
A  +139  -0    src/containers/ContainerRegistry.cpp     [License: GPL(v2.0+)]
A  +126  -0    src/containers/ContainerRegistry.h     [License: GPL(v2.0+)]
A  +218  -0    src/containers/DistroboxDetector.cpp     [License: GPL(v2.0+)]
A  +54   -0    src/containers/DistroboxDetector.h     [License: GPL(v2.0+)]
A  +73   -0    src/containers/IContainerDetector.h     [License: GPL(v2.0+)]
A  +92   -0    src/containers/ToolboxDetector.cpp     [License: GPL(v2.0+)]
A  +51   -0    src/containers/ToolboxDetector.h     [License: GPL(v2.0+)]
M  +1    -0    src/profile/Profile.cpp
M  +10   -0    src/profile/Profile.h
M  +103  -0    src/session/Session.cpp
M  +40   -0    src/session/Session.h
M  +18   -0    src/widgets/EditProfileDialog.cpp
M  +1    -0    src/widgets/EditProfileDialog.h
M  +31   -8    src/widgets/EditProfileGeneralPage.ui

https://invent.kde.org/utilities/konsole/-/commit/7574dc7a2a7527c818c180f7c3eac64f7ffa98b8
Comment 7 Lasath Fernando 2026-02-11 06:36:36 UTC
Git commit d569a355e6ce6eacbc742f19a30c5225eca48005 by Lasath Fernando.
Committed on 11/02/2026 at 06:36.
Pushed by fernando into branch 'master'.

Add container management features to Konsole: Phase 2

This adds containers to the New Tab menu:

![new tab screenshot](/uploads/d8ea8a2d652d660bdd102c09ec07e9ec/image.png){width=173 height=263}

I also had to refactor the container list command to be async.

There are lot of cases that can make listing commands take a while, like:  
`distrobox list` --> `docker ps` --> `docker.socket` --> `systemd-networkd-wait-online.target` 

And we can't afford to block the UI thread during all that.

M  +66   -22   src/MainWindow.cpp
M  +8    -1    src/MainWindow.h
M  +1    -0    src/ViewManager.cpp
M  +4    -0    src/ViewManager.h
M  +3    -0    src/containers/CMakeLists.txt
M  +3    -0    src/containers/ContainerInfo.h
A  +93   -0    src/containers/ContainerList.cpp     [License: GPL(v2.0+)]
A  +100  -0    src/containers/ContainerList.h     [License: GPL(v2.0+)]
M  +44   -15   src/containers/ContainerRegistry.cpp
M  +37   -6    src/containers/ContainerRegistry.h
M  +38   -31   src/containers/DistroboxDetector.cpp
M  +5    -1    src/containers/DistroboxDetector.h
A  +9    -0    src/containers/IContainerDetector.cpp     [License: GPL(v2.0+)]
M  +26   -5    src/containers/IContainerDetector.h
M  +41   -34   src/containers/ToolboxDetector.cpp
M  +6    -2    src/containers/ToolboxDetector.h
M  +20   -1    src/widgets/ViewContainer.cpp
M  +4    -0    src/widgets/ViewContainer.h

https://invent.kde.org/utilities/konsole/-/commit/d569a355e6ce6eacbc742f19a30c5225eca48005