In this module, we will discuss Picom which is probably the most popular Compositor for Linux. Compositors in Linux responsible for assigning each window a buffer to render to. Each frame of each running application goes through the compositor, which is responsible for outputting each buffer onto a display once it has been put into a single final image. A compositor can also add extra features like blur, transparency, shadows and animation which adds to the aesthetic feel of the desktop.
What is Picom?
Picom is a fork of the once popular Compton which itself is a fork of Xcompmgr-dana. Now since that Compton is no longer actively maintained, Picom has taken over the world of compositors and even though most Desktop Environments have their own compositors, Picom still remains a favorite, especially among people who prefer Window Managers over Desktop Environments.
Picom helps us customize our window appearances and behaviour. Usually, the Window Managers don’t enable these by default and in order to facilitate that, we need external compositors.
Picom is also very instrumental when it comes to fixing screen tearing issues, something earlier compositors struggled with.
Picom has several versions or rather forks you can choose from. Some of the more notable ones are as follows :
- The Official Picom Repo : This is the official repo of Picom which is used during a normal install
- The Ibhagwan Git : This a fork of Compton which also allows for rounded corners and dual_kawase blur
- The Tryone Git : Picom fork with dual_kawase blur, an X compositor (fork of Compton)
- The Jonaburg Git : Picom fork with tryone144‘s dual_kawase blur and ibhagwan‘s rounded corners, an X compositor
You can chose the which ever version you decide according to your preferences and install it.
Steps to Install Picom on Linux
Let’s check the steps to install Picom now.
Installing Using Package Managers
On Debian/Ubuntu, you can use the apt package manager:
$ sudo apt install picom
On Arch Linux, you can list all available versions/forks with :
$ paru -Ss picom community/picom 8.2-1 [150.03KB 375.46KB] X compositor that may fix tearing issues aur/picom-git 1430_8.rc2.21.gfd6ff82_2020.06.06-1 [+348 ~1.39] X compositor (fork of compton) (git-version) aur/picom-ibhagwan-git 1577_Next.296.g6d87428_2021.02.05-1 [+9 ~1.13] [Installed: 1577_Next.296.g60eb00c_2021.02.08-1] iBhagwan's compton|picom fork (X compositor) with dual_kawase blur and rounded corners aur/picom-jonaburg-git 0.1-4 [+7 ~3.22] jonaburg's picom fork with tryone144's dual_kawase blur and ibhagwan's rounded corners, an X compositor (compton's fork) aur/picom-tryone-git 1477_Next.196.g9bb21fc_2020.09.16-1 [+4 ~0.96] tryone144's picom fork with dual_kawase blur, an X compositor (fork of compton) aur/pantheon-lite 6-1 [+2 ~0.00] Pantheon Lite Session (Gala replaced with openbox & picom) aur/picom-rounded-corners r1392.bae5bf0-1 [+1 ~0.03] X Compositor (a fork of xcompmgr-dana) (with rounded corners patch) aur/picomc 0.4.2-2 [+1 ~0.02] A tiny CLI Minecraft launcher aur/apicompat-git r125.5f916b1-3 [+0 ~0.00] [Orphaned] Checks recent changes to a Go project for backwards incompatible changes aur/picom-rounded-corners-legacy-glx2 r1553.469bc39-1 [+0 ~0.00] X Compositor (a fork of xcompmgr-dana) (experimental branch with rounded corners)
Now you can install the desired fork with:
$ paru <name>
For example, if we want to install the Jonaburg Git from AUR we can type in paru:
$ paru picom-jonaburg-git
Installing From Source On Debian/Ubuntu :
If we want to use any of the other versions/forks on Debian/Ubuntu, first we would need to install some dependencies with :
$ sudo apt install cmake meson git pkg-config asciidoc libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev
Next up, clone the required git repo required. For Example, to install the Jonaburg Git :
$ git clone https://github.com/jonaburg/picom
Next cd into the directory and can build it with :
$ cd picom $ git submodule update --init --recursive $ meson --buildtype=release . build $ ninja -C build $ sudo ninja -C build install
This should install picom under /usr/local/bin allowing you to access it globally.
To run picom using the default config in the background, run :
$ picom -b
You can also specify your own config files with :
$ picom --config /path/to/config/file -b
Sometimes to use features like dual_kawase you need to specify the –experimental-backends flag as such :
$ picom --config /path/to/config/files --experimental-backends -b
Thus we discussed various aspects of picom. To enable picom at startup, add it to your Window Manager’s config file so that it runs on startup itself.