UP | HOME

An Attempt to understand picom and its forks

Table of Contents

1. Introduction

picom is a lightweight, standalone compositor for X11. It can be used to implement effects such as transparency, fading, blur, rounded corners, shadows, animations, and more.

2. Forks

2.1. yshui/picom

https://github.com/yshui/picom

THE picom. The original one.
I'd recommend this to people who just want basic stuff like rounded corners, shadows, transparency, fading and blur.

It works pretty well, is quite stable, and maintained.

2.2. dccsillag/picom

https://github.com/dccsillag/picom/tree/implement-window-animations

This fork supports most of the stuff the original one does, and implements good-looking and configurable animations on top of that.
Currently what I would recommend to people who want nice animations.

2.3. pijulius/picom

https://github.com/pijulius/picom

An improvement over dccsillags fork. It adds more animations and also lets you configure animations on workspace changes.

NOTE:
dccsillag seems to have merged most of the new features this fork provides, and is working on the rest of it.
Also, this fork hasn't been updated in quite a while.

(thanks to deep state gaming divison#1134 for pointing this out)

pijulius.gif

2.4. jonaburg/picom

https://github.com/jonaburg/picom

This is a forked version from Sandmark's picom branch, including Blackcapcoder's animation code inside. The animations here are further smoothed and time deltas reduced for high refresh rates and buttery smooth transitions. The animations are somewhat configurable but you cannot control what animation is shown (as in dccsillag/pijulius)

Also, while I personally find the animations from dccsillag/pijulius more suitable to my taste, the animations from jonaburg are quite nice, and have a more linear(?) kind of style.

2.5. ibhagwan/picom

https://github.com/ibhagwan/picom

Fork with rounded corners (from sdhand) and dual kawase blur (from tryone144) on all backends.

However, if I recall correctly, both rounded corners and dual kawase blur were merged into the main picom repo (yshui/picom), so I'm not sure how relevant this is anymore. (feel free to correct me if I'm wrong)

2.6. Tanish2002/picom

https://github.com/Tanish2002/picom

Fork of ibhagwan's fork that patches in phisch's transition code.

3. Snippets

3.1. Animations

Snippet to configure animations on dccsillag/pijulius

animations = true;
animation-stiffness = 300.0;
animation-dampening = 22.0;
animation-clamping = true;
animation-mass = 1;
animation-for-open-window = "zoom";
animation-for-menu-window = "slide-down";
animation-for-transient-window = "slide-down";

# (requires pijulius)
animation-for-workspace-switch-in = "zoom";
animation-for-workspace-switch-out = "zoom";

Snippet to configure animations on jonaburg

transition-length = 300
transition-pow-x = 0.1
transition-pow-y = 0.1
transition-pow-w = 0.1
transition-pow-h = 0.1
size-transition = true

4. More Resources