explaingit

tagrikli/indigoshell

12PythonAudience · ops devopsComplexity · 4/5ActiveSetup · hard

TLDR

Custom Linux desktop shell written in Python on GTK 3 and Cairo, drawing its own cyberpunk-themed status bar, popups, notifications, floating terminal, and chord menus.

Mindmap

mindmap
  root((indigoshell))
    Inputs
      Python config file
      Keybindings
      Theme palette
    Outputs
      Status bar
      Popups and toasts
      Notifications
      Floating terminal
    Use Cases
      Replace GNOME or Plasma panels
      Build a cyberpunk Linux rice
      Chain shell scripts in dialog pipelines
      Host a Spotify lyrics widget
    Tech Stack
      Python
      GTK
      Cairo
      PyGObject

Things people build with this

USE CASE 1

Replace GNOME or Plasma panels on a Linux desktop with a single custom Python shell

USE CASE 2

Build a cyberpunk-themed rice with matching bar widgets, popups, and nmtui colours

USE CASE 3

Wire up modal chord menus to fire shell commands when a key combo is released

USE CASE 4

Chain scripts together with the JSON dialog-pipeline system for guided workflows

Tech stack

PythonGTKCairoPyGObjectLinux

Getting it running

Difficulty · hard Time to first run · 1h+

You need GTK 3, PyGObject, Cairo, and a working Linux session you are willing to let an unfamiliar shell process drive.

In plain English

indigoshell is a custom desktop shell for Linux that draws its own status bar, popups, system tray, notifications, and a floating terminal. Instead of using Plasma or GNOME's built-in panels, the user runs a single Python process that owns the bar at the bottom of the screen and all the small windows that go with it. It is written on top of GTK 3 and PyGObject, with Cairo doing the custom drawing for shapes like the beveled corner brackets. Out of the box it ships in what the author calls the INDIGO Cyberpunk palette: hot magenta, electric cyan, neon yellow, violet accents, and a deep blue-violet background. Every colour, font size, spacing value, and per-widget preset lives in a single theme.py file, including a 16-colour palette for the terminals it embeds and a matching colour block for the text-mode network configuration tool nmtui so it looks consistent everywhere. The bar can host a long list of widgets: a workspaces indicator with a blinking ring for urgent windows, CPU, RAM, and temperature meters, a volume slider, a network indicator, a media widget with an audio-spectrum background that pulses to the beat, a clock with battery underline, scrolling lyrics that scramble in sync with the music, and a StatusNotifierItem system tray. Click a widget and it can open a popup with a calendar, a network panel, a hardware history graph, or a terminal-hosted view of tools like fastfetch, sptlrx, spotify-player, or nmtui. A few features stand out. A single keybinding can summon a floating terminal that sits always on top and follows you across workspaces. Modal chord menus appear when you hold a key combination and fire when you let go, with unmapped keys flashing red. Toasts spawn small pop-up windows in the top-right that run a command, grow to fit the output, then run a perimeter-trace countdown before closing. A dialog-pipeline system chains scripts together: each script prints output and a JSON manifest describing the next step, and the orchestrator routes the user through a cascade of menus. The shell also includes a full org.freedesktop.Notifications daemon that can replace dunst. User configuration lives in ~/.config/indigoshell/config.py, which exports a BAR dictionary describing widget layout, window kinds, scripts, and pipelines. A --watch flag reloads the process on file change.

Copy-paste prompts

Prompt 1
Install indigoshell with GTK 3 and PyGObject on Arch Linux and run it under a Wayland or X11 session
Prompt 2
Customize the INDIGO Cyberpunk palette in theme.py to a green-on-black matrix look across bar and terminals
Prompt 3
Add a new bar widget in ~/.config/indigoshell/config.py that runs fastfetch in a popup terminal on click
Prompt 4
Use the dialog-pipeline format in indigoshell to build a three-step Wi-Fi connect workflow with nmtui
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.