1

I want to use a dark theme all over but to have some exceptions.

Especially VLC looks awkward with a dark theme.

Is there a way to avoid VLC using the dark theme?

Considering answers under the question Enable/set dark theme on a per-application basis: not only my dark theme doesn't have variants, but the method of using GTK_THEME=NAME_OF_THEME <application> (or in a desktop launcher Exec=env GTK_THEME=NAME_OF_THEME <application>) doesn't work for VLC (or Libreoffice).

(I am in Xfce, Linux Mint 13.2).

  • i think you're misreading the first answer in the question you link to ... it's not running (in the Exec= line) <application> as the executable, but env: env GTK_THEME=<theme> <application> <switches>. using env sets the environment variables specified and then launches the application. – quixotic Nov 27 '17 at 16:09
  • @quixotic - I know Exec= needs env and some applications work this way, some don't (as stated in that answer: some gtk+ 3 applications might not (yet) honor the GTK_THEME env variable, which gives as example Nautilus). As said in my comment thereunder on what I tested as working: synaptic, gdebi, transmission-gtk, uget-gtk, basic text editors work. Thunar and Pcmanfm do not, neither do VLC and Libreoffice. I will edit my question here too. –  Nov 27 '17 at 16:28
  • @quixotic - It seems the env variable can be replaced (and can replace) sh -c for the given purpose and thus works with my answer here based on this one: https://askubuntu.com/a/427440/47206. –  Nov 27 '17 at 16:48

1 Answers1

2

Following THIS answer:

  • create any folder path/to/FOLDER
  • create a /share/themes/ folder inside it (that is path/to/FOLDER/share/themes).
  • put your app-specific GTK3 theme inside the latter
  • rename the theme to the name of the CURRENTLY ACTIVE THEME.

Use this command to launch the application with the renamed theme instead of the currently active one:

GTK_DATA_PREFIX=path/to/FOLDER YOUR_APPLICATON

The path after GTK_DATA_PREFIX= has to be only to the folder that contains /share/themes/RENAMED_THEME, not to the theme itself

To have that inside a launcher, replace accordingly:

Exec=sh -c 'GTK_DATA_PREFIX=path/to/FOLDER YOUR_APPLICATION' 

or

Exec=env GTK_DATA_PREFIX=path/to/FOLDER YOUR_APPLICATION 

For VLC:

Exec=sh -c 'GTK_DATA_PREFIX=path/to/FOLDER /usr/bin/vlc --started-from-file %U'

or

Exec=env GTK_DATA_PREFIX=path/to/FOLDER /usr/bin/vlc --started-from-file %U

The change can be made in the desktop file in /usr/share/file/applications or in one copied in ~/.local/share/applications.


Changing the system theme will reset the per-application theme, until the the folder of the latter is renamed to match the name of the former.