Razor-qt / razor-qt

Razor is now LXQt:
http://lxqt.org
Other
366 stars 78 forks source link

Please change the theme path to something more common #657

Closed ghost closed 10 years ago

ghost commented 11 years ago

Hi,

It would be nice if Razor could look for themes in $HOME/.themes/$THEMENAME/razorqt and $PREFIX/share/themes/$THEMENAME/razorqt

Nearly every other Desktop Environment or Window Manager uses these dirs

thx

kuzmas commented 11 years ago

Hm... I don't even have $HOME/.themes folder. Could you name "nearly every other DE or WM", please?

Vladimir-csp commented 11 years ago

You do not have to have $HOME/.themes right from the start. It is not about DEs, it is about toolkits and applications. A theme is a combination of data for a number of them. For examle, a content of a theme directory:

ls .themes/Numix-blue -l
-rw-rw-r-- 1 psycho users   239 сент. 11 11:40 CREDITS
-rw-rw-r-- 1 psycho users   456 июля   1 20:05 fix_overlay_scrollbar.patch
drwxrwxr-x 2 psycho users  4096 сент. 10 13:36 gtk-2.0
drwxrwxr-x 4 psycho users  4096 сент. 10 13:35 gtk-3.0
-rw-rw-r-- 1 psycho users   207 сент. 10 13:34 index.theme
-rw-rw-r-- 1 psycho users 35147 авг.  30  2012 LICENSE
drwxrwxr-x 2 psycho users  4096 сент. 10 13:35 metacity-1
drwxrwxr-x 2 psycho users  4096 сент. 10 13:35 openbox-3
-rw-rw-r-- 1 psycho users  1217 сент. 11 10:28 README
drwxrwxr-x 2 psycho users  4096 авг.  10 13:36 unity
drwxrwxr-x 2 psycho users  4096 авг.  10 13:36 xfwm4

you can see directories with data for Metacity, GTK2, GTK3, Openbox, Unity, Xfwm I hope this info would be useful and Razor-qt will use the same logic for themes.

ghost commented 10 years ago

$HOME/.themes is just the users local themes folder I'm pretty sure you have a systemwide $SYSPREFIX/themes folder

kuzmas commented 10 years ago

yup, I do have /usr/share/themes full of GTK themes. I see no reason why LXDE-Qt would use them.

PCMan commented 10 years ago

Well, there are more things in /usr/share/themes than just gtk+ themes. Openbox puts its themes in that dir, too. For theme name X, there may be /usr/share/themes/X/openbox and /usr/share/themes/gtk+-3.0. We can have /usr/share/themes/X/lxqt, too. So when the global theme name is set to X, openbox, gtk programs, and lxqt can all use themes of the same style. I guess that's the purpose of /usr/share/themes.

On Sat, Oct 26, 2013 at 10:01 AM, Kuzma Shapran notifications@github.comwrote:

yup, I do have /usr/share/themes full of GTK themes. I see no reason why LXDE-Qt would use them.

— Reply to this email directly or view it on GitHubhttps://github.com/Razor-qt/razor-qt/issues/657#issuecomment-27137048 .

Vladimir-csp commented 10 years ago

Theme is not a gtk+ theme, or a Openbox theme. Theme is what it contains. It is a good standard with [flexible] integrity in mind. IMHO Razor-qt should follow it. Trashing good standards for no reason is a GNOME way. Sorry if I offended anyone.

ghost commented 10 years ago

Trashing good standards for no reason is a GNOME way

basically you're right but even gnome followed this standard the only big DE that fucked it up is KDE but they fixed it with their integrated opendesktop install api

For a consumer it's just pure pain to install new themes for example I recently worked on a theme by myself It contains a a lot of different app themes and install is just painful esp. for all KDEstuff:

KWin (Aurorae) theme needs to be copied to $HOME/.kde/share/apps/aurorae/$THEMEFOLDER/$THEMEFILES KWin (Dekorator) needs to be copied to $HOME/.kde/share/apps/dekorator/$THEMEFOLDER/$THEMEFILES KDE color scheme goes to $HOME/.kde/share/apps/color-schemes/$THEME.colors Plasma theme needs to be copied to $HOME/.kde/share/apps/desktoptheme/$THEMEFOLDER/$THEMEFILES Konsole colorsheme goes to $HOME/.kde/share/apps/konsole/$THEMEFOLDER.colorscheme Razor-qt goes to $HOME/.local/share/razor/themes/$THEMEFOLDER/$THEMEFILES

the good examples:

GTK1 theme needs to be copied to $HOME/.themes/$THEMEFOLDER/gtk/$THEMEFILES GTK2 theme needs to be copied to $HOME/.themes/$THEMEFOLDER/gtk-2.0/$THEMEFILES GTK3 theme needs to be copied to $HOME/.themes/$THEMEFOLDER/gtk-3.0/$THEMEFILES Xfwm theme needs to be copied to $HOME/.themes/$THEMEFOLDER/xfwm4/$THEMEFILES Metacity theme needs to be copied to $HOME/.themes/$THEMEFOLDER/metacity-1/$THEMEFILES Xfce-Notify theme needs to be copied to $HOME/.themes/$THEMEFOLDER/xfce4-notify/$THEMEFILES GNOME-shell theme needs to be copied to $HOME/.themes/$THEMEFOLDER/gnome-shell/$THEMEFILES Unity theme needs to be copied to $HOME/.themes/$THEMEFOLDER/unity/$THEMEFILES Cinnamon theme needs to be copied to $HOME/.themes/$THEMEFOLDER/cinnamon/$THEMEFILES

the last ones are all great because I can simply zip the theme folder and a user just need to unzip it to $HOME/.themes it also allows me as theme creator to publish desktop independent themes

kuzmas commented 10 years ago

I looked through XDG specs and it says in icon-theme-spec :

Icons and themes are looked for in a set of directories. By default, apps should look in $HOME/.icons (for backwards compatibility), in $XDG_DATA_DIRS/icons and in /usr/share/pixmaps (in that order).

about XDG_DATA_DIRS in basedir-spec :

$XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used. … If $XDG_DATA_DIRS is either not set or empty, a value equal to /usr/local/share/:/usr/share/ should be used. … The order of base directories denotes their importance; the first directory listed is the most important. When the same information is defined in multiple places the information defined relative to the more important base directory takes precedent. The base directory defined by $XDG_DATA_HOME is considered more important than any of the base directories defined by $XDG_DATA_DIRS.

It means that theme should be looked for in folders:

This list can be prepended with $HOME/.themes/... for backward compatibility only. But since Razor had never stored themes into pre-standard folders, there is no reason to search them there :-) .

There is no definite standard as to system themes folder and structure, so it can be any of:

though currently it's $PREFIX/share/razor/themes/$THEMENAME meaning project-own data folder.

I agree to fix it to be this way:

Any objections?

Vladimir-csp commented 10 years ago

No objections. :) Just one suggestion: add $HOME/.themes/$THEMENAME/razorqt to the list for compatibility purposes.

kuzmas commented 10 years ago

If no one supports standards and everyone just make everything for compatibility purposes - why make standards at all?

jleclanche commented 10 years ago

This needs to be brought up on the xdg mailing list please. On 27 Oct 2013 04:08, "Kuzma Shapran" notifications@github.com wrote:

If no one supports standards and everyone just make everything for compatibility purposes - why make standards at all?

— Reply to this email directly or view it on GitHubhttps://github.com/Razor-qt/razor-qt/issues/657#issuecomment-27162241 .

jleclanche commented 10 years ago

Razor-qt has merged with LXDE. Please bring this up on the LXQt tracker if still relevant: https://github.com/lxde/lxde-qt