Xfce doesn't set GNOME/Gtk3 dconf keys for theme and font
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
xfce4-terminal |
Fix Released
|
Medium
|
|||
terminator (Ubuntu) |
Opinion
|
Undecided
|
Unassigned | ||
xfce4-settings (Ubuntu) |
New
|
Undecided
|
Unassigned | ||
xfce4-terminal (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
xubuntu-default-settings (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
tl;dr The part of this bug which applies specifically to Xubuntu is part 2. below. The gsettings.override should match the xfconf default, ie by adding something like:
[org.gnome.
font-name='Noto Sans 9'
monospace-
There will still be a mismatch if the user changes their font setting, but at least the defaults would match. Fixing the rest would require cooperation from GNOME which is unlikely to happen since all this code is deprecated under Wayland.
---
Xfce stores it's idea of the system default font, monospace font, and Gtk theme, icon theme etc into Xfconf:
/xsettings/
/xsettings/
/xsettings/
/xsettings/
GNOME stores it's idea of these settings in gsettings keys:
/org/gnome/
/org/gnome/
/org/gnome/
/org/gnome/
When a Gtk+3 application is started, the desktop environment is responsible for transfering these settings to Gtk+3 using xsettings. You can see this happening by running:
GDK_
There are several problems here:
1. The apps.
Gtk+3 has no concept of an xsetting for monospace font name. All Gtk+3 software which supports this concept finds the default by looking directly at the GNOME gsettings key. Including xfce4-terminal. This means none of that software pays any attention to Xfce's default. Including xfce4-terminal.
In addition, some apps seem to directly query gsettings to find the proportional font too, and some will even mix up xsettings and gsettings. An example of this is pidgin, where all bold text uses the font defined in gsettings, and all non-bold text uses the font defined in xsettings.
2. The distro defaults.
xubuntu-
2. The settings tool.
Xfce appearance setting sets the Xfconf keys of course. But it does not touch any of GNOME's gsettings keys. So if you change your theme for example, the GNOME gsettings key will remain at the default set by xubuntu-
Unfortunately the only correct fix for this is to persuade Gtk developers to adopt an xsetting for the monospace font, and anything else that is missing. This is extremely unlikely to happen as they are trying to remove as many cross-desktop features as possible. Also Gtk+3 is in maintenance mode so it wouldn't be available until we port Xfce to Gtk+4 at the earliest.
The only other alternative that will work is to make Xfce appearance settings capable of writing to gsettings, and mirroring all the appearance settings there. This is a horrible solution because those settings are supposed to be private to GNOME, and because appearance settings will need two different settings backends.
The one thing we CAN do is patch all Xfce apps to use Xfconf to read this setting. All GNOME apps and cross-desktop apps like Terminator will continue to use the wrong fonts unless the user install dconf-editor or gnome-tweak.
Screenshot attached. Desktop is Xfce.
ProblemType: Bug
DistroRelease: Ubuntu 18.04
Package: terminator 1.91-1
ProcVersionSign
Uname: Linux 4.15.0-20-generic x86_64
ApportVersion: 2.20.9-0ubuntu7
Architecture: amd64
CurrentDesktop: XFCE
Date: Tue May 8 00:52:18 2018
InstallationDate: Installed on 2018-05-07 (0 days ago)
InstallationMedia: Xubuntu 18.04 LTS "Bionic Beaver" - Release amd64 (20180426)
PackageArchitec
SourcePackage: terminator
UpgradeStatus: No upgrade log present (probably fresh install)
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
description: | updated |
Changed in xfce4-terminal: | |
importance: | Unknown → Medium |
status: | Unknown → Confirmed |
Changed in xfce4-terminal: | |
status: | Confirmed → Fix Released |
Changed in xfce4-terminal (Ubuntu): | |
status: | New → Fix Released |
I'm pretty sure that you are tripping over the fact that terminator is gtk3 and checks in the gnome standard location. I'm not sure if xfce attempts to set the right fonts for the various desktops (i.e. gnome gtk2 and gtk3, kde, etc). I would argue that it is better to have the desktop set these values, rather than have every application trying to detect every desktop and parse their various ways of setting default fonts.