TablePlus / TablePlus-Linux

TablePlus Linux issue tracker
https://tableplus.com
294 stars 30 forks source link

Dark Mode doesn't work #82

Open ipkpjersi opened 3 years ago

ipkpjersi commented 3 years ago
  1. TablePlus version (the number on the welcome or about screen, Ex: build 81): Version 0.1 Build 64

  2. Linux distro (Ex: Ubuntu 18.04): Ubuntu 18.04 with Xfce 4.12 and xfce4-dusk theme.

  3. The steps to reproduce this issue: Try to enable dark mode after running TablePlus, none of the theme buttons work:

thien-do commented 3 years ago

Hi @ipkpjersi thank you for the report! Not many reports from Xfce here :D

Ok there are 2 things here. First, the middle button in the "Theme" option should not show a bigger moon icon, but in fact it is supposed to show a "sun + moon" icon, like this:

This is because the middle button means "Use the system preference". For example, if your system is set to dark mode (may be manually or automatically based on time) then TablePlus should be dark.

Now I'm not really sure if Xfce on Ubuntu 20.04 supports this or not (underlying we use "gtk-prefers-dark-color-scheme"). Can you help us by checking if there are other applications with this setting of theme? (i.e. Something like "Theme: following system preference")

ipkpjersi commented 3 years ago

Hi,

I can't think of anything off the head that uses follow system preference - I think there may have been one application that usued that setting and I don't think it worked? However, with that said, if the follow system one doesn't work, presumably the right-most one which I believe is permanent dark mode should work?

I'm actually on Ubuntu 18.04, with Xfce 4.12 which uses GTK 2 (instead of GTK 3 on Ubuntu 20.04 with Xfce 4.14), I believe.

Is there any log file or anything that may be helpful here?

thien-do commented 3 years ago

Now, the second thing is the left and right button of the theme option, which should force the use of light or dark theme respectively. It's clear that in your case only the light theme is applied in all cases, and atm I don't know why but you may help us if you can answer some questions:

  1. When you say you are using dust, is that the original theme or the modified version to support gtk3? If possible can you give us a link to the theme?

  2. What about other applications? 2.1. Is there an application that has a theme option that works nicely (on Xfce) that we can look into? (just give us a name) 2.2. Are all other applications use dark theme properly? Do you see any problematic application other than us? (regarding this theming concern)

ipkpjersi commented 3 years ago

Hi,

  1. I'm using the built-in Xfce-dusk theme, no custom theme or anything, it's a GTK2 theme I believe as IIRC Xfce 4.12 uses GTK2:

  1. I believe that IntelliJ IDEA IDE has a dark mode, Sublime Text has a dark mode, Atom Editor has a dark mode, GitHub Desktop has a dark mode, DBeaver has a dark mode, Discord has a dark mode. I'm not entirely sure if they use GTK as their underlying system or any guaranteed examples of GTK-based software.

I'm not sure if any other applications have an issue with dark mode, I think this is the only one where it doesn't work off the top of my head? Most of my other applications I use have a dark mode that I use on a daily basis.

ipkpjersi commented 3 years ago

I have just found an example of an application that uses "gtk-prefers-dark-color-scheme", that application is gnome-terminal.

I have tried dark mode in gnome-terminal, and it is not working:

thien-do commented 3 years ago

wow thank you @ipkpjersi ! That's a lot of great information!

Ok so the problem is that TablePlus is based on GTK3, which requires a GTK3-compatible theme to support dark mode (to be exact, to support the toggling between light and dark modes). Xfce 4.12 (and the built-in dust theme to be specific) does not support this, so TablePlus (and the GNOME Terminal)'s theming doesn't really work :(

As you noted, the apps that work implements the dark theme themselves (not based on GTK). As you may see, they don't use the "native" widgets (Atom, GitHub desktop and Discord are web-based afaik, Intellij's apps have their own UI kit) so their theming works independently from the system theme. Actually, this is what we are doing with the TablePlus Diagram app, but it's likely we won't follow this approach with the TablePlus app.

So what we are going to do here is maybe to hide this option or add a description there if we can detect it won't work in the current system (it's not just GTK, you also need supported themes)