Install picom 12 on Ubuntu 24
Here's how to install picom 12 on Ubuntu 12 from source.
Ubuntu 24.04 doesn't have a picom 12 package in apt. It's stuck on picom 10. Upgrade to Ubuntu 25, or build from source.
picom 12 is cool because you have animations built in now.
Let's build from source.
Install prereqs
There are a few. Check em out:
sudo apt install cmake libconfig-dev libdbus-1-dev libegl-dev libev-dev libgl-dev libepoxy-dev libpcre2-dev libpixman-1-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-glx0-dev libxcb-image0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-util-dev libxcb-xfixes0-dev meson ninja-build uthash-devGet the source
Get the source
git clone git@github.com:yshui/picom.git
cd picomCheckout the version you're wanting to build
git tags
git checkout v12.5Build the source
From the readme:
meson setup --buildtype=release build
ninja -C build installFor me, there were plenty of c compiler warnings, but no errors.
Verify install
which picom
/usr/local/bin/picom
picom --version
v12.5 (git@github.com:yshui/picom.git revision a456d43)Start picom
You don't need any specific conf to get picom going. Start it in an existing x11 session. You'll get a blink, and it'll take over window compositing immediately.
picom --backend glxCustomize picom
Modify your conf to customize:
nvim ~/.config/picom/picom.confOr grab a cool one from someone else.
System resources
I find picom to be sitting nominally at 5-7% cpu, right below a browser tab or slack, egh:
PID USER PRI NI VIRT RES SHR S CPU%â–½MEM% TIME+ Command
...
73359 jaketrent 32 12 554M 127M 59888 S 5.7 0.2 0:45.66 picom --backend glxStart on login
One way to do this is to have systemd run it. I suppose you could put it in .xprofile too.
For systemd, create a ~/.config/systemd/user/picom.service file:
[Unit]
Description=Picom X11 compositor
After=graphical-session.target
Wants=graphical-session.target
[Service]
ExecStart=/usr/local/bin/picom
Restart=on-failure
RestartSec=2
[Install]
WantedBy=graphical-session.targetThen enable the service for next login:
systemctl --user enable picom.serviceAfter display manager login, systemd will spawn the user instance. When the display server, xorg, is started and graphical-session.target is reached, /usr/local/bin/picom will be executed.