Description: This is to address bug 15712 which IMHO is a race at startup. Attaching a couple of patches.
Created attachment 8787 [PATCH 1/2] xfsettingsd: Start xsettings prior to complete startup On startup, different gtk based applications are launched concurently. If we start xsettings simulatenously, those applications fail to detect xsettings and ignore the various preferences set via xsettings (themes, icons, etc.) Make sure we spawn xsettings prior to declare ourself ready with the session manager.
Created attachment 8788 [PATCH 2/2] xsettings: Grab and sync the X server at startup Grab the Xserver when declaring ourself the xsettings manager and flush it prior to ungrab it to make sure all get set for other clients. The goal is to avoid other X11 clients from reading xsettings until we are done initializing.
Created attachment 8791 [PATCH 1/2] xfsettingsd: Start settings prior to complete startup
Created attachment 8792 [PATCH 2/2] xsettings: Grab and sync the X server at startup
Thanks, I'll review after the weekend!
Created attachment 8795 [PATCH 1/5] Revert "xfsettingsd: Start with the highest priority This reverts commit 92ddf97f8e8b976c3aa4483e2a5d1a23078ae84f.
Created attachment 8797 [PATCH 2/5] xfsettingsd: Start settings prior to complete startup On startup, different gtk based applications are launched concurently. If we start the settings simultaneously, those applications fail to detect the settings and ignore the various preferences set via xsettings (themes, icons, etc.). Make sure we spawn all settings prior to declare ourself ready with the session manager.
Created attachment 8799 [PATCH 3/5] xsettings: Grab and sync the X server at startup Grab the Xserver when declaring ourself the xsettings manager and flush it prior to ungrab it to make sure all get set for other clients. The goal is to avoid other X11 clients from reading xsettings until we are done initializing.
Created attachment 8800 [PATCH 4/5] displays: Use current display Instead of getting the default display again and again.
Created attachment 8801 [PATCH 5/5] displays: Sync display when applying config Currently, the display plugin would flush the display when applying the configuration. Use a sync intsead to make sure the request is actually send and processed by the Xserver.
Created attachment 8805 [PATCH 1/4] xfsettingsd: Start settings prior to complete startup On startup, different gtk based applications are launched concurently. If we start the settings simultaneously, those applications fail to detect the settings and ignore the various preferences set via xsettings (themes, icons, etc.). Make sure we spawn all settings prior to declare ourself ready with the session manager.
Created attachment 8806 [PATCH 2/4] xsettings: Grab and sync the X server at startup Grab the Xserver when declaring ourself the xsettings manager and flush it prior to ungrab it to make sure all get set for other clients. The goal is to avoid other X11 clients from reading xsettings until we are done initializing.
Created attachment 8807 [PATCH 3/4] displays: Use current display Instead of getting the default display again and again.
Created attachment 8808 [PATCH 4/4] displays: Sync display when applying config Currently, the display plugin would flush the display when applying the configuration. Use a sync instead to make sure the request is actually sent and processed by the Xserver.
Applied those new 4 patches also on our end. Seems to work.
Olivier Fourdan referenced this bugreport in commit 9c4acaaf5ea233f342b20e709eed25f1be1915ac xfsettingsd: Start settings prior to complete startup (Bug #15725) https://git.xfce.org/xfce/xfce4-settings/commit?id=9c4acaaf5ea233f342b20e709eed25f1be1915ac
Olivier Fourdan referenced this bugreport in commit 523abc95d66cf7aa76f76ba0a6f0363b2dd4c51c xsettings: Grab and sync XServer on startup (Bug #15725) https://git.xfce.org/xfce/xfce4-settings/commit?id=523abc95d66cf7aa76f76ba0a6f0363b2dd4c51c