Skip to content

munabedan/incul

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Incul

Lightweight container-based desktop compartmentalization.

Incul leverages Incus and Xpra under the hood to let you run isolated environments for everyday tasks without the overhead of full virtual machines. You can keep different applications, projects, or libraries neatly compartmentalized, making it easy to isolate and organize your desktop activities.

Desktop Screenshot

Why Compartmentalization?

Stop cluttering your host OS with every library, tool, and service. Incul promotes a workflow where your projects live in silos:

  • Development: Spin up dedicated containers for different programming languages or conflicting library versions.
  • Testing: Run browsers, office, or media tools in isolation.
  • Privacy & Organization: Separate personal activities and work activities into their own secure containers.

Using Xpra, graphical applications inside containers are rendered seamlessly as standard windows on your desktop .

Getting Started

Prerequisites

  • A fresh installation of Debian 13 (Trixie) with the XFCE desktop environment.

Installation

  1. Install the package:

    sudo apt install ./incul_2.0.0_all.deb

    Install Incul

  2. Bootstrap the system: This process will configure the necessary backends and will require a reboot upon completion.

    incul init

    Init Incul

Basic Workflow

  1. Create a template:

    incul create-template debian

    Create Template

    Note: Incul generates a config for each container in ~/.config/<container_name>. Use the exclusions.yaml file to hide or show specific menu entries on the host.

    Tag Exclusions

  2. Launch a container from your template:

    incul create personal debian-template

    Create Instance from template

  3. Synchronize the application menu: This integrates the container's apps into your host XFCE menu.

    incul sync personal

    Synchronize instance with host menu

  4. Run applications: Simply select an entry in your host menu under the specific container category. Firefox running in personal instance

Default Credentials:

  • Username: incul
  • Password: incul

Command Reference

Action Example Usage Explanation
list incul list List all existing containers.
init incul init Bootstrap the Incul system.
start incul start <name> Start a container.
pause incul pause <name> Pause a running container.
stop incul stop <name> Stop a container.
restart incul restart <name> Restart a container.
delete incul delete <name> Remove a container permanently.
export incul export <name> Backup a container to a file.
import incul import <path> --name <new_name> Restore a container from backup.
sync incul sync <name> Sync container entries to the host menu.
create incul create <name> <template> Create a container from a template.
create-template incul create-template <name> Create a new base template.

Architecture

  • Incus: A modern, secure, and powerful system container and virtual machine manager.
  • Xpra: Known as "screen for X." Its seamless mode allows Incul to direct the display of individual X11 programs to your local machine.
  • XFCE Integration: Incul bridges the gap between Incus containers and the host, ensuring .desktop entries are automatically categorized and accessible.

Feedback & Contributions

Contributions and feedback are highly appreciated!

"Buy Me A Coffee"

About

Lightweight container-based desktop compartmentalization.

Resources

Stars

Watchers

Forks

Packages