{"action":"created","issue":{"url":"https://api.github.com/repos/lxde/lxqt/issues/572","labels_url":"https://api.github.com/repos/lxde/lxqt/issues/572/labels{/name}","comments_url":"https://api.github.com/repos/lxde/lxqt/issues/572/comments","events_url":"https://api.github.com/repos/lxde/lxqt/issues/572/events","html_url":"https://github.com/lxde/lxqt/issues/572","id":65643759,"number":572,"title":"Themes concepts","user":{"login":"Vladimir-csp","id":4061903,"avatar_url":"https://avatars.githubusercontent.com/u/4061903?v=3","gravatar_id":"","url":"https://api.github.com/users/Vladimir-csp","html_url":"https://github.com/Vladimir-csp","followers_url":"https://api.github.com/users/Vladimir-csp/followers","following_url":"https://api.github.com/users/Vladimir-csp/following{/other_user}","gists_url":"https://api.github.com/users/Vladimir-csp/gists{/gist_id}","starred_url":"https://api.github.com/users/Vladimir-csp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vladimir-csp/subscriptions","organizations_url":"https://api.github.com/users/Vladimir-csp/orgs","repos_url":"https://api.github.com/users/Vladimir-csp/repos","events_url":"https://api.github.com/users/Vladimir-csp/events{/privacy}","received_events_url":"https://api.github.com/users/Vladimir-csp/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/lxde/lxqt/labels/idea/discussion","name":"idea/discussion","color":"bfdadc"},{"url":"https://api.github.com/repos/lxde/lxqt/labels/lxqt-config","name":"lxqt-config","color":"006b75"},{"url":"https://api.github.com/repos/lxde/lxqt/labels/qss/themes","name":"qss/themes","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2015-04-01T09:29:41Z","updated_at":"2015-11-25T20:27:38Z","closed_at":null,"body":"I would like to start a generic discussion about themes, their integration with each other and how LXQT jumps into all this mess.\r\n\r\n# Basics\r\nThese are themes that LXQT has to deal with as a modern DE.\r\n- Qt themes\r\n- GTK themes\r\n- Window manager themes (i.e. openbox)\r\n- Icon themes\r\n- Own LXQT themes.\r\n\r\nAlso there are some related concepts affecting multiple toolkits, such as:\r\n- Fonts, hinting, subpixel AA.\r\n- Toolbar properties.\r\n- Icons behavior (sizes and visibility in different contexts, i.e. menus and toolbars).\r\n\r\nThere are standardized themes directories, by which I mean ```/usr/share/themes/$THEME_NAME/$COMPONENT/``` and ```$HOME/.themes/$THEME_NAME/$COMPONENT```.\r\n\r\n# GTK\r\nGTK theming is pretty straightforward, despite constant upstream attempts at breaking the toolkit with every other release. GTK has a handful of flexible theme engines (libs) and LOTS of themes (data) which follow unified easy-to-install standard (copy to theme dirs, done). Standard dirs are used for themes. Engine selection is automatic and is not presented to user in any way.\r\n\r\n# Qt\r\nQt theming, as far as I can tell, is hell (please, correct me if I'm wrong). What is called a \"style\" is really an engine. And every engine has its own format of theming and customization. Kde styles are depending on kde-runtime, their data have their own file structure, Qtcurve uses it`s own format, Kvantum uses a different one and even has own config tool... Is there any standard here? Is usage of standard dirs even remotely possible with Qt themes?\r\n\r\n# Openbox\r\nOpenbox theming is straightforward, themes are just data, standard dirs are used.\r\n\r\n# LXQt\r\nOwn LXQT themes: what are these? and why they use non-standard directories? Is there a way to make LXQT use qt themes put in something like ```$THEMES_DIR/$THEME_NAME/Qt5/```?\r\n\r\n# Icons\r\nThese are the simplest to handle. `/usr/share/icons/$THEME` and `~/.icons/$THEME`. Cross-DE and cross-toolkit. Yay!\r\n\r\n# Config tools\r\nNext question: Given the wide variety of themeable toolkits and components, are there any plans on creating plugin-driven appearance manager for LXQT? An application that could combine GTK, Qt, Openbox, and other options by using plugins. It could potentially even operate cross-toolkit themes, (look at [Epidermis](http://epidermis.tuxfamily.org/node/8)). And if standard directories are used for theming, no artificial constructs like Epidermis` pigments would be necessary."},"comment":{"url":"https://api.github.com/repos/lxde/lxqt/issues/comments/159723610","html_url":"https://github.com/lxde/lxqt/issues/572#issuecomment-159723610","issue_url":"https://api.github.com/repos/lxde/lxqt/issues/572","id":159723610,"user":{"login":"Vladimir-csp","id":4061903,"avatar_url":"https://avatars.githubusercontent.com/u/4061903?v=3","gravatar_id":"","url":"https://api.github.com/users/Vladimir-csp","html_url":"https://github.com/Vladimir-csp","followers_url":"https://api.github.com/users/Vladimir-csp/followers","following_url":"https://api.github.com/users/Vladimir-csp/following{/other_user}","gists_url":"https://api.github.com/users/Vladimir-csp/gists{/gist_id}","starred_url":"https://api.github.com/users/Vladimir-csp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vladimir-csp/subscriptions","organizations_url":"https://api.github.com/users/Vladimir-csp/orgs","repos_url":"https://api.github.com/users/Vladimir-csp/repos","events_url":"https://api.github.com/users/Vladimir-csp/events{/privacy}","received_events_url":"https://api.github.com/users/Vladimir-csp/received_events","type":"User","site_admin":false},"created_at":"2015-11-25T20:27:38Z","updated_at":"2015-11-25T20:27:38Z","body":"Well, I went ahead and filed a [request](https://bugs.kde.org/show_bug.cgi?id=355906) in KDE bugzilla.\r\n"}}