Skip to main content

A terminal emulator for use with Toolbox

Project description

Boxi

A terminal emulator for use with Toolbox.

This is a thought-experiment app based around the idea of having a terminal emulator running in a separate container from the session inside of it, with the kernel as the only intermediary.

This is accomplished by means of file descriptor passing of the pseudo-terminal device from a small "agent" program running on the other side of a container boundary. The agent is started using the usual container tools (flatpak-spawn, toolbox, podman), but creating a session is done purely via sockets.

The recommended way to install Boxi is from Flathub, but it's also possible to install via pip:

pip install boxi

Note that after installing Boxi this way, you'll need to manually compile the GSettings schema file:

glib-compile-schemas ~/.local/share/glib-2.0/schemas/

The install comes with a .desktop file, so Boxi can be launched from the desktop shell. It can also be launched from the command line:

boxi

By default, Boxi will create sessions on the host system. If you'd like to create sessions in a named Toolbox container, use -c:

boxi -c f36

Boxi uses different application identifiers when it is run for different containers. This allows creating individual launcher icons for each container. For example, ~/.local/share/applications/dev.boxi.Boxi.f36.desktop:

[Desktop Entry]
Type=Application
Name=Fedora 36 (Boxi)
Icon=fedora
StartupNotify=true
Exec=boxi -c f36

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boxi-5.tar.gz (41.0 kB view hashes)

Uploaded source

Built Distribution

boxi-5-py3-none-any.whl (19.3 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page