tsujan / Kvantum

A Linux SVG-based theme engine for Qt and KDE
1.56k stars 146 forks source link

Features request #46

Closed JohannesKahl closed 7 years ago

JohannesKahl commented 9 years ago

Hello again, it's been a long time :) I've been away for a while, also lost my Dynamo theme configs...And today opendesktop is down for mantainance...

Uninstalled kvantum from an old cloned dir, and grabbed both Qt4 and Qt5 versions of it from the Arch User Repository today. Tried the default theme and immediately felt the need for:

tsujan commented 9 years ago

Hello,

Welcome to Kvantum again! Yes, opendesktop is down and I couldn't update KvHybrid either...

(1) I'd added XBar to my TODO list but haven't looked into it because of so many details that should be considered with Kvantum, details that don't even exist in other theme engines. For example, implementing concepts like different text colors for different states, frame, frame width, text margin, etc. is not as simple as it may seem and with the last commit, I had to fix an issue that other theme engines can't even see. If such practical details don't come up for a while, I'll surely look into XBar.

(2) As for the second feature, do you mean app specific themes, as is suggested at issue #39 (at the end of the first comment)? I've added it to my TODO list too.

BTW, I'd modified your theme (Dynamo) to make it work with recent versions of Kvantum and put a link on your page for a while. I deleted that link later but here you are: https://dl.dropboxusercontent.com/u/7793460/Dynamo.tar.gz

JohannesKahl commented 9 years ago

Thanks for updating my Theme! I'll use it along with default to create new ones (i've already an idea for the next work). I'll test it and if you're ok, i'll update the version on opendesktop with yours (of course i'll give you credits for it) ;)

Regarding the feature requests it's good to know they were already planned. I know that using other styles as reference might be difficult, considering also that Kvantum has a very specific approach. But in case i could always help as tester, or - again, if my lack of experience won't result prohibitive - help with coding.

s for the second feature, do you mean app specific themes, as is suggested at issue #39 (at the end of the first comment)

Sort of, yes. As i mentioned so far i've seen (and used) such feature implemented with a bespin-ish approach ( an array of binary names associated to a specific theme ). A friend used this approach too with his style, DSP. Sorry if i can't link you the code that covers this part, i need to ask him directly for that, it's been a while since i've looked into the source files.

tsujan commented 9 years ago

... (of course i'll give you credits for it)

Thank you but there's no need for that. I just changed some settings.

Sorry if i can't link you the code that covers this part.

Thanks again but no need for that either. If I start to implement it, I'll have to find a way suitable for Kvantum. I'll tell you when I reach this part of my TODO list.

JohannesKahl commented 9 years ago

Ah, totally forgot to upload the fixed Dynamo :\ Will do ASAP. In the meantime i've been playing with two new themes and i thought on another feature i'd like to request: an hack to disable icons in QPushButtons (this is also available in other styles, so since currently kvantum is not my default style in systemsettings i haven't noticed before). The reason is simple: it's hard to have an icon theme with actions category integrated with the button colors and the overall style without drawing/recolor the icons themselves.

P.s. pic of the next theme i'm going to release, still a WIP but the most is there :)

schermata501

tsujan commented 9 years ago

Agreed! I'll add a key for that soon.

In previous weeks, I added a lot of simple and advanced features. You could read ChangeLog and consult the new Kvantum documentation to know about them. Some of my recent themes use them.

Your elegant theme seems to be a dark version of Dynamo. You might want to package it with Dynamo and add a screenshot.

JohannesKahl commented 9 years ago

Cool! Know that i notice i still had to upgrade to the latest commits!

Yeah, i was checking at KvHybrid yesterday and try to see what i was missing (very interested in some components which i never used, such as separators in headers and the junct elements in the borders of the tabframe).

The idea behind this theme was to "mime" the Atom Editor (from github) default theme, but yes, the components are actually took from Dynamo, i'll need to work on hide the relationship between the two :P

tsujan commented 9 years ago

Oh, it IS like Atom editor. I just didn't know about Atom.

tsujan commented 9 years ago

Done! The new key can be set/changed in the Hacks tab of the config page of Kvantum Manager.

JohannesKahl commented 9 years ago

That was fast! Looks a lot more clean now, thank you very much!

schermata503

P.S. Ehm... i know now i'll begin to sound really silly, but after updating i thought that hiding icons could be wanted in QMenu aswell, same reasons for QPushButton + saving some space:

schermata504

tsujan commented 9 years ago

You're welcome!

Your reasoning about QMenu seems sound. I'll add a key for it if it doesn't interfere with anything (because size calculation of menus is more complex than that of push buttons). Do you know of a style engine that does so?

tsujan commented 9 years ago

I forgot to explain why I didn't reduce the widths of iconless pushbuttons: some developers may draw the text and icon in their codes but get the button size from the style; that's a bad practice but I've encountered similar things many times.

I hope such a precaution won't be needed for menus.

JohannesKahl commented 9 years ago

Actually i find that pushbuttons looks good this way. Less width would have made them look "toyish" in my opinion.

As for the styles, yes i do: both bespin and DSP implement this, maybe even virtuality but i'm not sure.

tsujan commented 9 years ago

Added another hacking key for iconless menu(-item)s.

JohannesKahl commented 9 years ago

Thanks!! Trying it since yesterday and it works just fine!

P.s. And as for the theme, is almost ready. I need to fix progressbars and the palette. Need to play with junct for tabframes, menu shadows and frame expansion in buttons(if i understood correctly, that would be what to use to increase their corner radius). Current status: schermata518

tsujan commented 9 years ago

Very nice! BTW, You could use "progressbar_thickness" under the General section. If its value is too small, the progress text won't be drawn.

tsujan commented 9 years ago

Your buttons are OK as they are, IMO. If you want to use frame expansion, please read the last two sections of "Theme-Making.pdf".

JohannesKahl commented 9 years ago

Sorry for the late reply, i've been without a connection for days. In the end it seems frame expansion wasn't required at all to do what i wanted. I will still check the docs for further goodies though. Will look for what fits better, i can revert to a previous svg/conf in a few steps anyway :)

tsujan commented 9 years ago

I seems that you haven't had enough time for Dynamo. Do you mind if I include it (with some modifications but after adding your name to its comment section) in Kvantum, among other themes that are installed as root? I'll take your probable disagreement easily.

JohannesKahl commented 9 years ago

Ah, yes. Unfortunately i'm not much reliable to handle lot of projects at the same time. Of course you can include it! That would mean making another theme available among the others, which is always a positive thing, and also would be a honour :)

Speaking of themes, i released the one you saw in this issue: https://github.com/Hombremaledicto/BubbleGum Still need to provide shadows and clean the svg and conf file(alongside polishing some elements), yet was sort of a busy period so haven't touch it for a while.

tsujan commented 9 years ago

Thank you! I'm working on Dynamo now. Next week you could add a note saying "included in Kvantum" to your page at kde.looks.

BubbleGum is very stylish! I'll try it soon.

JohannesKahl commented 9 years ago

I'll check for the next commits and add a note. Thanks, just do not - by any mean - look at the svg quality in there for the moment. Otherwise you will tear your hair off :P

tsujan commented 9 years ago

I did some cleaning and made some minor modifications to Dynamo but kept the spirit you gave to it. With your permission, I want to change its name to KvDynamo (for congruence with the other names) and change its comment section to "A Breeze like theme with large margins by Hombre Maledicto".

JohannesKahl commented 9 years ago

Yes, you can change its name, absolutely no problem on the regard

samuaz commented 8 years ago

Hi Tsujan and Hombre, any news about the xbar integration to use with be.shell for example? thanks for the hardwork.

tsujan commented 8 years ago

Hi,

A long time has passed since the above discussion about xbar. In the meantime, I've made many important fixes and changes to Kvantum. You could get a general picture by seeing the list of commits. There are still so many details that may need my attention. Kvantum is flexible and works well everywhere only because of such details.

On the other hand, I had (and have) to work on PCManFM-Qt, libfm-qt and some other components of LXQt.

Hence, I didn't give priority to xbar integration. I can't even promise that I'll implement it. One thing I don't want for Kvantum is kf5 dependencies -- at least not now.

All that being said, maybe some day I start to take xbar integration seriously. No promise though!

varlesh commented 8 years ago

@tsujan Great engine, big thx ) I make theme for Papirus Please add option hide menubar for non-KDE apps (clementine, qbitorrent, smplayer, vlc and etc...) For example this option available on QtCurve with hotkey Ctrl+Alt+M and save state visible/hide menubar for needed apps. screenshot_20160610_133100 screenshot_20160610_133139

tsujan commented 8 years ago

@varlesh I'll work on it.

tsujan commented 8 years ago

Unfortunately, hiding menubar may disable the main shortcuts of an app. I know that the user could choose the apps with hidden menubars but it's up to the app developer to provide it with such a feature without losing its shortcuts (that's very easy to implement).

Long story short, I don't want Kvantum to interfere with application functionality at all. None of the current hacking keys does so. Translucency was the only temptation I couldn't resist ;)

varlesh commented 8 years ago

:(pity

bugworm commented 7 years ago

Any news about app specific themes?

tsujan commented 7 years ago

Any news about app specific themes?

Frankly speaking, I haven't worked on it yet because I think, after I added the support for multiple installation paths (a feature that even KDE devs found too complicated to be worth the effort), it means a lot of work for something that might be used very rarely.

It's a while that I haven't had enough free time to concentrate on it -- more important works on Kvantum, FeatherPad, FeatherNotes and LXQt have taken my free time -- but I haven't forgotten it either.

bugworm commented 7 years ago

something that might be used very rarely

Well, kwin can change titlebar colorscheme, many people like this feature and AFAIK soon it will learn to change colorscheme of whole app. Looks pretty great, especially with material design apps(mostly browser apps) and some hard-coded design apps(telegram for example), but there is no possibility to do something similar for all apps. I think this will be a great feature, thanks for not forgetting about this feature

tsujan commented 7 years ago

@AnotherBugworm I added a preliminary support for app specific themes. Now ~/.config/Kvantum/kvantum.kvconfig accepts formats like this:

[General]
theme=KvCurves3d

[Applications]
KvAmbience=vlc, smplayer, feathernotes
KvArc=cantata
KvOxygen=VirtualBox

Please test it and report any problem you might encounter!

Contrary to what I thought, the feature was very easy to implement on such a basic level and I can't think of any side effect. What remains is a setting for Kvantum Manager, which may take some time.

tsujan commented 7 years ago

@AnotherBugworm I forgot to say that if the specified theme doesn't exist, the default Kvantum theme will be used for the corresponding app -- just for your testing.

bugworm commented 7 years ago

@tsujan I'll test it, thanks. Want to ask another question - is it possible to create custom animations right now?

bugworm commented 7 years ago

@tsujan Works fine so far, thanks for your work. I'll test it more while creating another theme

tsujan commented 7 years ago

Works fine so far, thanks for your work.

Thanks for your testing!

is it possible to create custom animations right now?

No, it isn't! For an SVG engine, custom animations could take a lot of CPU time and extra memory. The current animation is just a fading effect: the start state fades out and the end state fades in in 200 ms (5 frames) so that the CPU usage is negligible and there's no extra memory usage.

tsujan commented 7 years ago

Ok, complete support for app specific themes is added for a while. I investigated the possibility of xbar in detail. It depends on the DE and WM in use, while Kvantum is intended to be independent from them. Hence closing this.