Marco XPresent compositor transparent title bars

Operating system is Ubuntu MATE 23.10. I'm trying to configure transparent title bars using the Xpresent compositor. I got it working with Compiz, but would prefer the Marco built-in: Xpresent compositor. Xpresent is lighter weight, and I've been reading that Compiz will soon be phased out.

Why do I want this? My primary OS has been Windows 7 for a decade, but is becoming difficult to continue as more software becomes unsupported. So I'm considering making Ubuntu MATE my primary OS. I like the Aero interface. Xpresent can provide transparent task bar and transparent window background in the console app. The last piece that is missing is transparent title bars.

Has anyone accomplished this? I've spent many hours searching for how Xpresent is configured, to no avail; there doesn't appear to be a conf file for it, nor can I find it in dconf. So perhaps it is not configurable, and what you see is what you get.

Thanks.

Hi, @guyr!

I think, marco with xpresent will display transparent titlebars only if your GTK theme provides information about titlebar transparency, so you have to edit the theme directly (probably add an alpha channel to your theme's colors).

A more universal approach is to configure picom compositor, which comes preinstalled with Ubuntu MATE. You have 3 options in MATE Tweak, each corresponding to a certain script:

  1. "Marco (picom: Xrender)" --> /usr/bin/marco-xrender ;
  2. "Marco (picom: GLX)" --> /usr/bin/marco-glx ;
  3. "Marco (picom: Hybrid)" --> /usr/bin/marco-xr_glx_hybrid .

These scripts are identical, however, they are kept as separate files.

The script checks your home folder for a picom config file: ~/.config/marco-picom.conf .
Sample configuration: /usr/share/doc/picom/examples/picom.sample.conf .

So, you can provide a config file OR edit the script of your choice. You have to set frame-opacity option.

Hope this helps.

3 Likes

@ironfoot, thanks for the reply. I actually have worked with the picom options a little bit. I'm attaching a screen capture of picom Xrender. I haven't spent a lot of time attempting to see if I can improve this. I simply copied the supplied /usr/share/doc/picom/examples/picom.sample.conf into my home/.config directory and made the following changes:

  • backend = "xrender",
  • inactive-opacity = 0.8;
  • frame-opacity = 0.7;

As you can see, the results contain quite a few strange artifacts. I'm using the YaruOK theme; I see the same results with TraditionalOK. Oddly, the MATE Tweak window appears to be artifact-free; I don't know why. If I switch to Compiz, using the same theme, the display is flawless, including the transparent title bars. But of course the CPU usage is significantly higher.

Since the display with Xpresent has none of the artifacts, I'd like to see if I can somehow get transparent title bars in Xpresent. Do you happen to know where I can ask questions about the Xpresent extension?

Thanks.

1 Like

With TraditionalOK theme I have following results:

  • using unmodified sample config:

  • using modified /usr/bin/marco-xrender script with your parameters ( inactive-opacity = 0.8 , frame-opacity = 0.7 ) :

I think, you have to apply other parameters from the script to your config. The only artifact I see is the non-transparent area in titlebar.

MATE Tweak uses modal window, the other ones are resizable. I believe this frame artifact is related to Marco: https://github.com/mate-desktop/marco/pull/503 .

Xpresent is a part of Xorg: xorg / lib / libXpresent · GitLab . It's simply a library used by Marco in compositing mode: https://github.com/mate-desktop/marco/blob/master/src/compositor, you may ask Marco developers.
Marco/picom integration scripts are coming from MATE Tweak: GitHub - ubuntu-mate/mate-tweak: Tweak tool for the MATE Desktop .

3 Likes

@ironfoot, thank you for your time. By modifying marco-xrender, I see exactly what you are seeing. So the only remaining artifact is the non-transparent area of the title bar.

I'll pursue in the locations you mention to see if I can get either (1) Xpresent providing transparent title bars, or (2) picom xrender to fix the non-transparent area in the titlebar. Either solution would be acceptable to me.

3 Likes

You are welcome, @guyr!

1 Like