Kali theming is not applied, starting gnome-terminal 3.40 (Kali 2021.3)
Tested in the 2021.3 RC live image.
Background
The Kali theming is provided by two GSettings override files:
-
/usr/share/glib-2.0/schemas/20_kali-defaults-desktop.gschema.override
(from packagekali-defaults
) -
/usr/share/glib-2.0/schemas/21_kali-themes.gschema.override
(from packagekali-themes
)
The settings set by Kali are:
/usr/share/glib-2.0/schemas/20_kali-defaults-desktop.gschema.override
--------
[org.gnome.Terminal.Legacy.Settings]
confirm-close=false
/usr/share/glib-2.0/schemas/21_kali-themes.gschema.override
--------
[org.gnome.Terminal.Legacy.Profile]
use-theme-colors=true
scrollback-unlimited=true
use-transparent-background=true
background-transparency-percent=5
palette=['#1F2229', '#D41919', '#5EBDAB', '#FEA44C', '#367bf0', '#9755b3', '#49AEE6', '#E6E6E6', '#198388', '#EC0101', '#47D4B9', '#FF8A18', '#277FFF', '#962ac3', '#05A1F7', '#FFFFFF']
bold-is-bright=true
Issue description
Starting gnome-terminal 3.40 (ie. Kali 2021.3), Kali's settings are no longer applied. Here are some screenshots.
However, when looking at it from the command-line, it seems that Kali's overrides are effective:
$ gsettings list-recursively org.gnome.Terminal.Legacy.Settings | grep confirm-close
org.gnome.Terminal.Legacy.Settings confirm-close false
$ gsettings list-recursively org.gnome.Terminal.Legacy.Profile:/ | grep -E '(use-theme-colors|scrollback-unlimited|use-transparent-background|background-transparency-percent|palette)'
org.gnome.Terminal.Legacy.Profile palette ['#1F2229', '#D41919', '#5EBDAB', '#FEA44C', '#367bf0', '#9755b3', '#49AEE6', '#E6E6E6', '#198388', '#EC0101', '#47D4B9', '#FF8A18', '#277FFF', '#962ac3', '#05A1F7', '#FFFFFF']
org.gnome.Terminal.Legacy.Profile use-transparent-background true
org.gnome.Terminal.Legacy.Profile scrollback-unlimited true
org.gnome.Terminal.Legacy.Profile background-transparency-percent 5
org.gnome.Terminal.Legacy.Profile use-theme-colors true
However, there's a caveat. The org.gnome.Terminal.Legacy.Profile
is a relocatable schema. That's why it needs a :/
at the end, in the command-line above. From the Internet ™, people suggest to put various stuff after this :/
. I tried to play with that, and I noticed that actually, you can put whatever garbage after the :/
, it doesn't matter: gsettings
always happily returns the same result.
Therefore, I'm not 100% sure that the result of this command-line really corresponds to what gnome-terminal reads using the GSettings API from glib.
Investigation
There's been changes upstream related to GSettings, between 3.38
and 3.40
. These 3 commits (in chronological order):
- Specify the schema source when constructing any GSettings
- Add settings schema verifier
- Fix crash when loading the reference schema source fails
It could be the reason why Kali's settings are now broken.
cc @daniruiz