22.04 MATE Tweak window manager selection not finding picom config file

I'm tinkering trying to get transparent window title bars as in Windows Aero. I discovered picom can provide this, so following the picom man page, I copied /usr/share/doc/picom/examples/picom.sample.conf to ~/.config/picom.conf. i then used MATE Tweak to change the window manager to Marco (picom: Xrender), but none of the visual effects appeared. I tried the other picom options - GLX and Hybrid - and again, no visual effects appeared. So I then opened up a terminal window, and ran simply "picom", and then the visual effects appeared. So, from a command prompt at least, picom appears to be able to find the config file in the standard location.

So, why when I change the window manager from within MATE Tweak is the config file not taking effect?

I believe I've figured this out. MATE Tweak is using file /usr/bin/marco-xrender to configure a picom xrender environment. I saved a version of this file in my ~/bin directory, and MATE Tweak also found that version before finding /usr/bin/marco-xrender. I discovered that by trial and error; changes I made to /usr/bin/marco-xrender were not taking effect while I had ~/bin/marco-xrender. Once I also made the same changes to the version in my home directory, then MATE Tweak showed all the settings. This is actually a good thing, once we realize this is what is happening; it allows the user to make changes to his/her own tweaked environment without having to change it for everyone else.

Some additional documentation for MATE Tweak would be helpful. Especially confusing is that if MATE Tweak is installed, it apparently takes precedent over the default picom configuration mechanism.


Hi, @guyr!

MATE Tweak is looking for these marco+compositor scripts in your $PATH using self-written find_on_path function. You may want to check the following code pieces.

So, the results of your experiments really depend on the order of elements in your $PATH.
Update: the find_on_path function is only used to check the available options, when the scripts are indeed launched, the $PATH is searched again implicitly using system functions.

The script explicitly checks for a config file named ~/.config/marco-picom.conf, this name is not default.

If this config file is missing, picom is started without a config file with the parameters specified in the script.

I believe the intended way to make changes for a specific user is to use a config file in their home directory.


@ironfoot, thank you for the extensive research. I didn't get home until late tonight, so I need some time to digest. I started out using a picom.conf script in my ~/.config directory, but wasn't getting the same results produced from the marco-xrender script. That's when I shifted gears to modifying marco-xrender. I'll try again with marco-picom.conf as you suggest.

I'll post again if I have additional questions or comments. Have a nice weekend.

[EDIT] And that worked. For the sake of anyone else who may find this via search, command line picom.exe looks for ~/.config/picom.conf, while MATE Tweak looks for ~/.config/marco-picom.conf.