Window manager (marco) no longer loads

Hello everyone,
I'm asking you for help because I've been having a problem for a few days and just can't find a solution.

I used Ubuntu 20.04.6 LTS with Mate Desktop installed (sudo apt install ubuntu-mate-desktop) until February 20, 2024.

My profile was probably corrupted when I updated Libre Office.
After restarting, marco will no longer load.
Entering "marco --replace" in a terminal only repairs the error until the next system boot.

I used Synaptic to completely remove everything that starts with "Mate". Then performed a system update to Ubuntu 22.04.4 LTS.
Afterwards I installed Mate again with "sudo apt install ubuntu-mate-desktop". At the first start everything was OK.

After the computer was off overnight, when I restarted it I had the problem again that all the windows were stuck in the top left corner and marco was not loaded.

Please can you tell me how the loading mechanism of the window manager works regularly? What could I do to track down the error?

dpkg -s ubuntu-mate-desktop give:

Architecture: amd64
Source: ubuntu-mate-meta
Version: 1.282

lsb_release -a give:

No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.4 LTS
Release: 22.04
Codename: jammy

Thank you very much for your help!

Best regards Holger

1 Like

Welcome @Holger_MH to the community!

1 Like

I know this will be of no help, but ever since 20.04 was released, MARCO frequently crashes on my Dell laptop. The problem has continued with 22.04. I gave up looking for a solution.

1 Like

I'm sorry for that. That's not nice for you!

However, my problem is not with marco itself, it is simply not running when the system starts for unknown reasons and I don't know where it should be started.

Best Regards

1 Like

Have you tried mate-tweak yet ?

You could try to switch to compiz and then back again to marco.
(you might have to logout/login between actions)

AFAIK changing the setting should change (and write) a kind of autostart entry.
It might just work:


Off topic

I didn't know there are so many versions of Marco. I switched version just to see if I get fewer crashes.

Well, there is just one version of marco but with a few options:

  1. You can use it barebones (without compositing or hardware acceleration)

  2. You can use it with the build-in compositor feature called "Xpresent"
    It needs a driver that supports this option though, so it works on most videohardware/drivers but not on all of them. (nVidia's closed source proprietary blob does not support Xpresent, Nouveau, however, does)

  3. You can also use marco in combination with an external compositor.
    The external compositor chosen for Ubuntu-MATE is called "Picom" (which is a fork of "compton", which in turn is a fork of "xcompmgr". See link at end of post).
    This is indeed a separate installable compositor (default installed in ubuntu-MATE) and you can use it with two different backends: GLX if your videodriver supports OpenGL and Xrender for if it doesn't.

The incredible luxuary of Ubuntu-MATE is that you dont have to configure this by hand:
You only have to choose one of these from the list and the rest is enabled/switched/connected automagically on the fly.

This is one of the little things that makes Ubuntu-MATE so unique and sets it apart from the rest of the herd.

More about compositors:


Thank you very much for your answers!

Yes, I tried Mate Tweak.

My problem is: When my system starts, no Windows manager (marco) is loaded.
If I call up Mate Tweak, I can set one of the WMs.
Everything is normal, I can work.
I shut down the system and restart - no WM is loaded!

Apparently no startup entry is created :frowning:

Unfortunately I don't know which log I could check?

How is marco normally loaded?

From X11? From the display manager?

Any Ideas?

Thanks a lot!
Best regards

Marco is loaded by mate-session which is loaded by lightdm.
If you issue the command "pstree" you can see how it interacts.
this is an example from my computer:

        │         ├─lightdm─┬─mate-session─┬─artha───3*[{artha}]
        │         │         │              ├─marco───3*[{marco}]
        │         │         │              ├─mate-maximus───3*[{mate-maximus}]
        │         │         │              ├─mate-panel───3*[{mate-panel}]
        │         │         │              ├─mate-power-mana───3*[{mate-power-mana}]
        │         │         │              ├─mate-screensave───3*[{mate-screensave}]
        │         │         │              ├─mate-settings-d───4*[{mate-settings-d}]
        │         │         │              ├─nm-applet───3*[{nm-applet}]
        │         │         │              ├─plank───4*[{plank}]
        │         │         │              ├─polkit-mate-aut───3*[{polkit-mate-aut}]
        │         │         │              ├─solaar───6*[{solaar}]
        │         │         │              ├─update-notifier───3*[{update-notifier}]
        │         │         │              └─3*[{mate-session}]
        │         │         └─2*[{lightdm}]
        │         └─2*[{lightdm}]
        │               └─4*[{mate-terminal}]

mate-session default configuration is here:


the last entry contains the 'desktop' file for marco which is probably the way it is started by mate-session.

most of the user-config, however, is stored in dconf, sometimes ironically called the 'gnome-registry' under the key '/org/mate/desktop/session/'
Best to use dconf-editor to comfortably browsing the contents of this key.

A lot of it is explained in the manual file. Just issue this command in terminal:
man mate-session

AFAIK, most windowmanager errors are directed to ~/.xsession-errors

Hope this helps a bit :slight_smile:


Dear tkn,
Thank you very much for your effort and your explanations!
That helps me alot. I will work through all the points.

This is what it currently looks like after system startup:

the associated .xsession-errors looks like this:

dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
dbus-update-activation-environment: setting DISPLAY=:0
dbus-update-activation-environment: setting XAUTHORITY=/home/ich/.Xauthority
/etc/X11/Xsession.d/30x11-common_xresources: Zeile 16: has_option: Befehl nicht gefunden
/etc/X11/Xsession.d/75dbus_dbus-launch: Zeile 9: has_option: Befehl nicht gefunden
dbus-update-activation-environment: setting GTK_MODULES=appmenu-gtk-module:gail:atk-bridge:canberra-gtk-module
dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
/etc/X11/Xsession.d/90x11-common_ssh-agent: Zeile 9: has_option: Befehl nicht gefunden
dbus-update-activation-environment: setting SHELL=/bin/bash
dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
dbus-update-activation-environment: setting XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg
dbus-update-activation-environment: setting XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session2
dbus-update-activation-environment: setting GTK_IM_MODULE=ibus
dbus-update-activation-environment: setting LANGUAGE=de_DE
dbus-update-activation-environment: setting MANDATORY_PATH=/usr/share/gconf/mate.mandatory.path
dbus-update-activation-environment: setting XMODIFIERS=@im=ibus
dbus-update-activation-environment: setting DESKTOP_SESSION=mate
dbus-update-activation-environment: setting GTK_MODULES=appmenu-gtk-module:gail:atk-bridge:canberra-gtk-module
dbus-update-activation-environment: setting PWD=/home/ich
dbus-update-activation-environment: setting XDG_SESSION_DESKTOP=mate
dbus-update-activation-environment: setting LOGNAME=ich
dbus-update-activation-environment: setting QT_QPA_PLATFORMTHEME=gtk2
dbus-update-activation-environment: setting XDG_SESSION_TYPE=x11
dbus-update-activation-environment: setting GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
dbus-update-activation-environment: setting XAUTHORITY=/home/ich/.Xauthority
dbus-update-activation-environment: setting XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/ich
dbus-update-activation-environment: setting GDM_LANG=de_DE
dbus-update-activation-environment: setting HOME=/home/ich
dbus-update-activation-environment: setting IM_CONFIG_PHASE=1
dbus-update-activation-environment: setting LANG=de_DE.UTF-8
dbus-update-activation-environment: setting KICAD_PATH=/usr/share/kicad
dbus-update-activation-environment: setting XDG_CURRENT_DESKTOP=MATE
dbus-update-activation-environment: setting XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
dbus-update-activation-environment: setting CLUTTER_IM_MODULE=ibus
dbus-update-activation-environment: setting XDG_SESSION_CLASS=user
dbus-update-activation-environment: setting GTK_OVERLAY_SCROLLING=0
dbus-update-activation-environment: setting DEFAULTS_PATH=/usr/share/gconf/mate.default.path
dbus-update-activation-environment: setting KIGITHUB=
dbus-update-activation-environment: setting USER=ich
dbus-update-activation-environment: setting DISPLAY=:0
dbus-update-activation-environment: setting SHLVL=1
dbus-update-activation-environment: setting QT_IM_MODULE=ibus
dbus-update-activation-environment: setting UBUNTU_MENUPROXY=1
dbus-update-activation-environment: setting XDG_RUNTIME_DIR=/run/user/1000
dbus-update-activation-environment: setting COMPIZ_CONFIG_PROFILE=mate
dbus-update-activation-environment: setting XDG_DATA_DIRS=/usr/share/mate:/usr/share/mate:/usr/share/gnome:/home/ich/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:/var/lib/snapd/desktop
dbus-update-activation-environment: setting PATH=/home/ich/.local/bin:/home/ich/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
dbus-update-activation-environment: setting GDMSESSION=mate
dbus-update-activation-environment: setting DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
dbus-update-activation-environment: setting _=/usr/bin/dbus-update-activation-environment
mate-session[8949]: WARNING: Unable to find provider '' of required component 'dock'

(process:9410): ayatana-indicator-sound-WARNING **: 07:07:35.139: volume-control-pulse.vala:746: unable to get pulse unix socket: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.PulseAudio1 was not provided by any .service files

(process:9410): ayatana-indicator-sound-WARNING **: 07:07:35.163: accounts-service-access.vala:224: unable to sync volume 0,736801 to AccountsService: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Keine derartige Schnittstelle »com.lomiri.AccountsService.Sound«

(process:9464): accountsservice-CRITICAL **: 07:07:35.255: _act_user_update_from_object_path: assertion 'ACT_IS_USER (user)' failed

(process:9464): GLib-GObject-WARNING **: 07:07:35.255: invalid uninstantiatable type '(null)' in cast to 'GObject'

(process:9464): GLib-GObject-CRITICAL **: 07:07:35.255: g_object_set_data: assertion 'G_IS_OBJECT (object)' failed

(process:9431): ayatana-indicator-datetime-WARNING **: 07:07:35.371: Unrecognized TZID: 'Etc/Utc'

(process:9431): ayatana-indicator-datetime-WARNING **: 07:07:35.371: Unrecognized TZID: 'Etc/Utc'

(caja:9338): Gtk-WARNING **: 07:07:35.420: Failed to register client: GDBus.Error:org.gnome.SessionManager.AlreadyRegistered: Unable to register client

(mate-power-manager:9366): PowerManager-WARNING **: 07:07:35.432: Failed to get session for pid 9366: The name org.freedesktop.ConsoleKit was not provided by any .service files

(mate-power-manager:9366): PowerManager-WARNING **: 07:07:35.435: could not map keysym 1008ffa8 to keycode
Fehlgeschlagen: Entität nicht vorhanden
Schreibtischdatei /usr/share/applications/gnote.desktopfür den Leistenstarter: Datei oder Verzeichnis nicht gefundenkann nicht geöffnet werden
Fehler: autostart failed:

  • "ubuntu-software-service.desktop": skipped

e[31;01merror: option -s not recognizede[0m
blueman-applet 07.07.36 WARNING PluginManager:147 __load_plugin: Not loading PPPSupport because its conflict has higher priority
blueman-applet 07.07.36 WARNING PluginManager:147 __load_plugin: Not loading DhcpClient because its conflict has higher priority
RuntimeError: object at 0x7fa31c792640 of type FolderColorMenu is not initialized
e[31;01merror: Either Internet is not working or Wget is not installed.e[0m
RuntimeError: object at 0x7fa31c792640 of type FolderColorMenu is not initialized
blueman-applet 07.08.01 WARNING DiscvManager:119 update_menuitems: warning: Adapter is None

(mate-panel:9325): Gtk-WARNING **: 07:09:13.222: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug

Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 4: unknown element "its:rules"
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: unknown element "its:translateRule"
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: invalid attribute 'translate'
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 5: invalid attribute 'selector'
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 6: invalid attribute 'xmlns:its'
Fontconfig error: "/etc/fonts/conf.d/10-hinting-slight.conf", line 6: invalid attribute 'version'
Fontconfig warning: "/etc/fonts/conf.d/10-hinting-slight.conf", line 8: unknown element "description"


I found out something else last night. If I replace marco with compiz then compiz loads correctly at startup. It has strange effects but it loads.

Best regards

1 Like

Ah yes, it can't find the "has_option" function.

Luckily @Norbert_X had filed some tips and tricks to get around some quirks in 22.04 LTS.
It seems to be a known issue

Like Norbert_X wrote, you can copy&paste the following code in a terminal and press enter:

cat <<\EOF | sudo tee /etc/X11/Xsession.d/20x11-add-hasoption
# temporary fix for LP# 1922414, 1955135 and 1955136 bugs
OPTIONS=$(cat "$OPTIONFILE") || true

has_option() {
 if [ "${OPTIONS#*$1}" != "$OPTIONS" ]; then
   return 0
   return 1

It literally writes the missing function into a file in /etc/X11/Xsession.d where it will be loaded first, which enables the other files to call it.

Based on the errors you've shown, you definitely need this fix. Good chance that everything will work as expected.


Thank you everyone for your help!

Studying the website mate-wm: Start the window manager configured by the user | mate-session-manager Commands | Man Pages | ManKier ultimately solved the problem.
This describes how to load the WM.

I told you, a newly created user doesn't have the problem. So I compared my files and those of the "Test_user".
I noticed that there were files in .local/share/applications/ *.desktop. There was also a 'marco.desktop'.
The "Test_User" did not have these files!
I deleted (renamed) this file. After restarting, the automatic loading of a suitable WM was OK again.

Maybe someone needs this information...

Best regards


Thanks again to pointing out so many Window manager options. Since changing this setting to (picom:GLX) no more Marco crashes.