Picom - compositor for Xorg

I open this topic which has been discussed before about transparency and compositors. This feature is not the strength of Fvwm, also users want to keep a light WM. Is there something for those who want an elegant and modern?

On the recent topic “Solid Fvwm Configuration” by @ILLUXA, there is a “Swan” the “ugly Fvwm duck” can become without losing its lightweight and speed, which I took a look at when @amlug suggested Picom compositor.

Picom is a standalone compositor for Xorg, suitable for use with window managers that do not provide compositing.

It is very beautiful with nice features easy configuration of Shadows, Fading and Transparency / Opacity. The picom.sample.conf (/usr/share/doc/picom/examples/) is a good starting script to add in ~/.config/picom/picom.conf. Any edit has an immediate effect on the look that makes it easy to customize.

  1. Create one autostart
  1. Add this function at the beginning of your config.
SetEnv HOME_DIR $[HOME]/.fvwm
DestroyFunc XFunction
AddToFunc XFunction
	+ I Exec exec sh $[HOME_DIR]/autostart


Here is my experiment on myExt Fvwm extensions.

Click on the screenshot…

Fvwm Crystal did a good job. With Picom it is easier to make simple and complex configs into elegant desks without losing resources.


Never thought seeing Fvwm sooo beautiful. :sunny: Your screenshot in MX Linux, it shows the 3D effect of Picom. I copied it here below…

1 Like

I am reading that Compton is no longer maintained and Picom replaced it. A chain of forks. Compton, a fork of xcompmgr-dana, forked from xcompmgr.

Hi, I found this link on linuxquestions.org. This Fvwm look inspired me to know more. Is this the new FVWM3? Very different from version 2 I tried a few times checking configs online.

Welcome to the Fvwm board. Glad that you like the look. It’s receiving attention on other forums as well. Default Fvwm2 and 3 look the same. This includes individual Fvwm modules, functions and styles that are attached to the core config with READ command, called myExt Extensions. Makes it easy to customize the features and look instead of editing one lengthy config.

Splitting a config into categories makes it interesting. Reminds me of seeing something similar somewhere. I liked the idea but forgot about it.
I download the myext github. It is good. Prefer a simpler startup. Default Fvwm is too “Linux from scratch” and time-consuming. Something between. Any advice?

This has been on my task list when noticing I am becoming more of a “developer” :slight_smile: than an end-user that started this project. The myExt remains as an experiment and collection place of configs, and FvwmStartUp is the new project. Hopefully, attracts users to get involved.

FvwmStartUp is a simple config file of READ commands that read the individual functions, styles, bindings, menus, decors, and modules in Core and Extra folders. It is almost ready… click screenshot.


1 Like

Yep, clearer-easier to customize your own. Also, remove some stuff in core and extra.
A better name is Fvwm KIS with one S (no double SS “Keep It Simple, Stupid”).

I love it. On other WMs looks ordinary but on Fvwm its sharper because of simple coloring of FvwmButtons.

Fvwm KISe, keep it simple and elegant. Remove wallpapers add new ones reflecting picom shadow. I will check.

Add one thumbnail in each config. Same as Ext Installer has (150x150).

How do I make picom not trigger shadows in a specific fvwm module?

In picom.sample.conf there is an option to exclude modules. Here, copy of my list starting with "name = '<module name>' "

# shadow-exclude = []
shadow-exclude = [
  "name = 'Notification' ",
  "name = 'OverViewDLaunch' ",
  "name = 'IconifyDLaunch' ",
  "name = 'TileDLaunch' ",
  "name = 'DeskNo' ",
  "class_g = 'Conky'",
  "class_g ?= 'Notify-osd'",
  "class_g = 'Cairo-clock'",

It works! Thank you very much! I’ve been looking for this for some time.


I’m using default config for fvwm2, default wallpaper, added picom by following instructions in this forum thread.
There is gray background instead of wallpaper whenever picom is running. If I kill picom process, then the wallpaper is immediately shown. Changing wallpaper in fvwm menu has no effect while picom is running - it is always gray background no matter what I do. How do I fix that?

Had the same problem in Fvwm3 and 2, getting the wallpaper to appear at startup and also to change it. Later there may be a better solution but for now, works well by loading the fvwm-root.

At startup, run this bash script:


## Load png wallpaper
fvwm-root -r ~/.fvwm/.BGdefault

## Load Picom compositor.
picom --config ~/.config/picom/picom.conf

In Fvwm2, add this line in .fvwm/config chapter Functions, in StartFunction and SetBG.

Test (x fvwm-root) Exec exec fvwm-root -r ~/.fvwm/.BGdefault

EXAMPLE (fvwm2)

DestroyFunc StartFunction
AddToFunc   StartFunction
+ I Test (Init, f $[FVWM_USERDIR]/.BGdefault) \
    Exec exec fvwm-root $[FVWM_USERDIR]/.BGdefault
+ I TestRc (NoMatch) Exec exec fvwm-root \
+ I Test (Init) Module FvwmBanner
+ I Module FvwmButtons RightPanel
+ I Module FvwmEvent EventNewDesk

Test (x fvwm-root) Exec exec fvwm-root -r ~/.fvwm/.BGdefault  ## ADD LINE
DestroyFunc SetBG
AddToFunc   SetBG
+ I Test (f $[FVWM_USERDIR]/images/background/$0) \
    Exec exec fvwm-root $[FVWM_USERDIR]/images/background/$0
+ I TestRc (Match) Exec exec ln -fs images/background/$0 \

+ I Test (x fvwm-root) Exec exec fvwm-root -r ~/.fvwm/.BGdefault  ## ADD LINE

+ I TestRc (Match) Break
+ I Test (!f $[FVWM_DATADIR]/default-config/images/background/$0) Break
+ I Exec exec fvwm-root $[FVWM_DATADIR]/default-config/images/background/$0
+ I Exec exec ln -fs $[FVWM_DATADIR]/default-config/images/background/$0 \

Thanks, it works!
One question: is there a difference between using autostart shell script and calling picom directly from fvwm’s config: + I Exec exec picom ?

Good that you asked. I removed autostart which was there to find a solution. The new settings, work fine for Fvwm2 and 3.

+ I Test (x fvwm3-root) Exec exec fvwm3-root -r ~/.fvwm/.BGdefault 
+ I Test (x fvwm-root) Exec exec fvwm-root -r ~/.fvwm/.BGdefault 
+ I Exec exec picom --config ~/.config/picom/picom.conf