SkillAgentSearch skills...

Conty

Easy to use unprivileged Linux container packed into a single portable executable

Install / Use

/learn @Kron4ek/Conty

README

Conty

Conty CI Utils CI

This is an easy to use compressed unprivileged Linux container packed into a single executable that works on most Linux distros. You can use it to run any applications, including games (Vulkan and OpenGL).

Features

  • A single executable - download (or create) and run, nothing else is required. And it's portable, you can put it anywhere (even on a usb stick).
  • Works on most Linux distros, even very old ones and even without glibc (such as Alpine or Void or Gentoo with musl).
  • Works on Steam Deck.
  • Root rights are not required.
  • Compressed (with squashfs or dwarfs), so it takes a lot less disk space than uncompressed containers and can provide faster filesystem access in some cases.
  • Contains many packages and libraries, it can run almost everything, and you don't need to install anything on your main (host) system. You can even run 32-bit applications on pure 64-bit systems.
  • Based on Arch Linux, contains modern software (including fresh videodrivers).
  • Almost completely seamless experience. All applications that you run with Conty read and store their configs in your $HOME directory as if you weren't using the container at all.
  • No performance overhead. Since it's just a container, there is virtually no performance overhead, all applications will run at full speed. Regarding memory usage, Conty uses a bit more memory due to compression and because applications from the container can't share libraries with your system apps.
  • Supports Xorg, Wayland and XWayland.
  • Supports filesystem and X11 sandboxing (thanks to bubblewrap and xephyr).
  • Supports Chaotic-AUR and ALHP repositories. AUR is also supported.

In its default release, it includes, among others, these apps: Wine-Proton-GE, Steam, Lutris, PlayOnLinux, GameHub, Minigalaxy, Bottles, Faugus Launcher, UMU Launcher, ProtonPlus, PrismLauncher, MangoHud, LSFG-VK, Gamescope, RetroArch, DuckStation, PCSX2 PlayStation 2 emulator, Sunshine, Genymotion, OBS Studio, OpenJDK, Firefox

The full list can be read in the latest release's pkg_list.txt.

If these applications are not enough, you can install additional applications or run external binaries from, for example, your home directory.

Navigate

<details><summary>Expand</summary><p>

<small><i><a href='http://ecotrust-canada.github.io/markdown-toc/'>Table of contents generated with markdown-toc</a></i></small>

</p></details>

Getting Started

Download

You can download a ready-to-use release from the releases page or create your own (the instructions are below). Make it executable via chmod or your file manager's Properties option (right-click or Alt+Enter) before running.

$ chmod +x conty.sh

Chmod only need to be executed once (per file). You can now start using Conty.

Or you can install from gentoo-zh overlay.

Requirements

The only requirements are fuse3 (or fuse2) and coreutils (or other POSIX compliant basic utilities). And your /tmp directory should allow files execution (which it does by default on most distros).

Your Linux kernel must be at least version 4.4 and should support unprivileged user namespaces. On some Linux distros this feature is disabled by default and can be enabled with sysfs:

# sysctl kernel.unprivileged_userns_clone=1

On Ubuntu 24.04+ (and maybe some other distros with apparmor enabled) it is needed to disable kernel.apparmor_restrict_unprivileged_userns sysctl option.

# sysctl kernel.apparmor_restrict_unprivileged_userns=0

On Ubuntu 25.04+, if you see fusermount3: mount failed: Permission denied error when running Conty, you need to disable AppArmor and reboot your system:

# systemctl disable apparmor

Even if unprivileged user namespaces are not supported by your kernel, you can still use Conty if you have bubblewrap with the SUID bit installed on your system, in this case just tell Conty to use system-wide utils instead of the builtin ones.

$ export USE_SYS_UTILS=1
$ ./conty.sh command command_arguments

If you plan to run 32-bit applications, your kernel must be compiled with CONFIG_IA32_EMULATION, CONFIG_COMPAT_32BIT_TIME, CONFIG_PROC_SYSCTL and CONFIG_FUSE_FS options enabled. Kernels in most Linux distributions have these options enabled by default.

Usage

CLI

Conty can be run from a terminal emulator. To run a program inside Conty, simply put the path to conty.sh as a prefix and then insert the program's binary name or the full path to it and launch arguments (if needed).

$ ./conty.sh [command] [command_arguments]

Examples:

$ ./conty.sh steam
$ ./conty.sh bottles
$ ./conty.sh /usr/bin/steam
$ ./conty.sh mangohud glxgears
$ WINEPREFIX=$HOME/wine-conty ./conty.sh gamescope -f -- wine ./game.exe

GUI

Running Conty from a terminal emulator is not strictly required, if your file manager allows running executables, you can also run Conty from it in which case it will show its graphical interface. You can also manually invoke the GUI from terminal with conty.sh -g.

gui

Currently, to check the binaries / commands in Conty, you can use "Select File" and browsing to the /usr/bin directory, or by using ls /usr/bin using the "Open a terminal" option.

However, the GUI will not notify you about errors, so i recommend running Conty from a terminal emulator to see if there are any errors, at least if you've never used Conty before.


There are many packages and usecases that are included in the default conty.sh from the releases page, such as:

<details><summary>File manager</summary><p>

It has a builtin file manager (pcmanfm):

$ ./conty.sh pcmanfm

You can also install your own file manager if you want to, but note that file manager will browse the root inside of Conty except for directories that are mounted from the user's root. /home is mounted by Conty to allow access to the user's home files.

</p></details> <details><summary>Checking hardware acceleration</summary><p>

To check if hardware acceleration (OpenGL and Vulkan) works, you can use these tools:

$ ./conty.sh glxinfo -B
$ ./conty.sh glxgears
$ ./conty.sh vulkaninfo
$ ./conty.sh vkcube
</p></details> <details><summary>Using Conty as build environment</summary><p>

You can even use Conty for compilation:

$ ./conty.sh gcc src.c
$ ./conty.sh git clone https://something.git
$ cd something && ./conty.sh ./configure
$ ./conty.sh make
</p></details> <details><summary>Listing binaries inside Conty</summary><p>

There are many more integrated programs. You can list all of them with:

$ ./conty.sh ls /usr/bin
$ ./conty.sh ls /opt
</p></details> <details><summary>Executing user's binaries </summary><p>

It is also possible to run binaries from your storage. For example, if you want to run an application that resides on your HOME, run something like:

$ ./conty.sh /home/username/SomeApplication/binaryfile

Note that you cannot run AppImage from Conty (this includes AppImage installed from AUR through Conty's package manager) except for extracting the AppImage's content, after which you may use the manually extracted content.

</p></details>

There are many other features, see the internal help for more information.

$ ./conty.sh -h
<details><summary>Help Content</summary><p>
Usage: conty.sh [COMMAND] [ARGUMENTS]


Arguments:
  -e    Extract the image

  -h    Display this text

  -H    Display bubblewrap help

  -g    Run the Conty's graphical interface

  -l    Show a list of all installed packages

  -d    Export desktop files from Conty into the application menu of
        your desktop environment.
     

Related Skills

View on GitHub
GitHub Stars1.0k
CategoryDevelopment
Updated13h ago
Forks74

Languages

Shell

Security Score

100/100

Audited on Mar 29, 2026

No findings