explaingit

yshui/picom

4,720CAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

picom is a lightweight compositor for the X11 window system on Linux that adds transparency, drop shadows, and smooth window animations to desktops that lack a built-in compositor.

Mindmap

mindmap
  root((picom))
    What it does
      Window compositing
      Visual effects
    Effects
      Transparency
      Drop shadows
      Animations
    Tech Stack
      C
      Meson build
    Platform
      Linux
      X11 only
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add window transparency and drop shadows to a minimal Linux desktop running a standalone window manager like i3 or bspwm.

USE CASE 2

Enable smooth window transition animations on an X11 desktop that has no built-in compositor.

USE CASE 3

Fork picom to experiment with custom rendering effects for an X11 desktop environment.

USE CASE 4

Replace the deprecated Compton compositor on an existing Linux setup with this actively maintained fork.

Tech stack

CMesonNinja

Getting it running

Difficulty · moderate Time to first run · 30min

Requires X11 libraries and meson/ninja build tools, Wayland desktops are not supported.

Dual-licensed under MIT and MPL-2.0, use, modify, and distribute freely with attribution and license notice preserved.

In plain English

picom is a compositor for the X window system on Linux. A compositor is a background program that controls how windows appear on screen, adding effects like transparency, drop shadows, and smooth transitions between windows. Without a compositor, most X11 desktop environments render windows with a flat, no-frills appearance. This project is a fork of an older compositor called Compton, which was itself derived from xcompmgr. The current repository is a development branch, and the README warns upfront that bugs are to be expected. Users who want to discuss the project or report issues can do so through the GitHub discussions tab or a linked Discord server. Building picom from source requires the meson and ninja build tools plus a collection of X11 and XCB libraries. The README lists the exact package names for Debian/Ubuntu and Fedora. On FreeBSD, library paths need to be passed explicitly to the build command. Once dependencies are in place, the build is two commands: a meson setup followed by ninja. The resulting binary lands in a build/src subdirectory, and installation defaults to /usr/local. The project is written in C and is licensed under MIT and MPL-2.0. Contributions via pull request are welcome, including code, bug reports, and documentation updates. Becoming a formal collaborator is a larger commitment: it involves reviewing pull requests, responding to issues, and occasionally fixing bugs, with all changes still going through code review before merging. The README focuses on build and contribution instructions and does not describe the full feature set in detail. For a list of what changed in each release, including animation support mentioned in the project description, it points to the GitHub releases page.

Copy-paste prompts

Prompt 1
I use i3wm on Linux and want to enable transparency and shadows with picom. Write a minimal picom.conf that enables these effects without hurting performance.
Prompt 2
How do I build picom from source on Ubuntu? List the exact apt packages I need and the build commands step by step.
Prompt 3
I want picom to apply different opacity settings to specific application windows. How do I write window-matching rules in the picom config file?
Prompt 4
How do I start picom automatically when my X11 session starts? Show me where to add the command for common setups like .xinitrc or an i3 config file.
Open on GitHub → Explain another repo

← yshui on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.