So this is actually a few different problems stacked on top of each other, not one single thing.
the MacTahoe theme works fine for GTK apps because that’s what it’s built for. the issue is that a bunch of the apps you listed — JetBrains, WPS, OnlyOffice, Double Commander, dbGate — those are Qt apps. Qt has its own completely separate theming system and your GTK theme has zero say over how their titlebars look. that’s just how it is on Linux, two different toolkits, two different worlds.
then VSCode and Thunderbird (deb) are Electron, which is a whole third thing. Electron draws its own titlebar inside a Chromium window. there’s nothing at the OS level that can reach in and change those buttons. the app decides what the titlebar looks like, not your theme.
and Snaps on top of that are sandboxed so they barely see your host system theme at all.
for the Qt apps — this is actually the most fixable one.
the main reason Qt apps look broken on your setup is the Wayland transition. Ubuntu dropped the xcb plugin as default and Qt apps end up with no proper decorations. fix that first:
sudo apt install qt5ct qt6ct adwaita-qt adwaita-qt6 kvantum
then add this to your ~/.profile:
export QT_QPA_PLATFORM="xcb;wayland"
export QT_QPA_PLATFORMTHEME=qt5ct
log out, log back in. after that open Qt5 Settings and Qt6 Settings and configure the window buttons from there. for the circular macOS-style buttons specifically there’s a plugin called QWhiteSurGtkDecorations — if you’re on Arch it’s on AUR, otherwise you’d have to build it. once installed:
export QT_WAYLAND_DECORATION=whitesur-gtk
that gets you pretty close on Wayland. not identical to MacTahoe but much better than what you have now. Kvantum with a WhiteSur or McMojave theme on top of that and it looks decent.
for VSCode — go into settings and change Window: Title Bar Style to native. that makes VSCode stop drawing its own titlebar and lets your compositor handle it instead. MacTahoe buttons will show up. the integration isn’t perfect but it works.
for Thunderbird it’s the same idea but you do it through userChrome.css. go to about:config, enable toolkit.legacyUserProfileCustomizations.stylesheets, then create the file at ~/.thunderbird/<your profile>/chrome/userChrome.css and put:
#titlebar { display: none !important; }
that hides Thunderbird’s internal titlebar and your WM draws the decorations instead.
for Snap apps — honestly the cleanest answer is just replace them with .deb versions where you can. OnlyOffice has a .deb, WPS has a .deb. Snap theming on Wayland is a mess and there’s no real fix from the user side right now. if .deb isn’t available try the Flatpak version, those at least support theme overrides through the portal:
sudo flatpak override --filesystem=~/.themes
sudo flatpak override --env=GTK_THEME=MacTahoe-Dark
Some GTK4 Apps not following the GTK theme
That’s a libadwaita thing. since GNOME 43 a lot of built-in apps moved to libadwaita which completely ignores custom GTK themes. MacTahoe handles this by letting you overwrite the gtk-4.0 config directly:
./install.sh -l
run that from the MacTahoe directory. heads up though — it locks all your GTK4 apps into that theme. you can’t switch without re-running the installer with different options.
- GTK apps > MacTahoe already handles it
- Qt apps > xcb plugin + qt5ct + Kvantum, fixable
- Electron (VSCode, Thunderbird) > switch to native titlebar in app settings, partial fix
- Snap > replace with .deb or Flatpak if you can, otherwise not much you can do
- libadwaita > run
install.sh -l, but it’s all-or-nothing
there’s no single switch that makes everything consistent. it’s a Linux theming problem that’s been around forever and Wayland made parts of it worse. but the Qt fix alone should cover most of the apps you’re having trouble with.