Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature requests #1

Closed
trmdi opened this issue Oct 4, 2018 · 60 comments
Closed

Feature requests #1

trmdi opened this issue Oct 4, 2018 · 60 comments

Comments

@trmdi
Copy link

trmdi commented Oct 4, 2018

Some guys would love a transparent blur titlebar for Konsole, like what SierraBreeze and BreezeBlurred can do. Will you add such an option ?

breezeblurred
sierrabreeze

@tsujan
Copy link
Owner

tsujan commented Oct 4, 2018

With BreezeEnhanced, there's no need to that ;) If you want all title-bars to be opaque but Konsole's title-bar to be translucent (and blurred), please try this:

(1) Add this overrdie:

1

(2) then add this one to the top of it:

2

BTW, today, I'll add an option to remove macOS buttons, although they will be the default. The reason is that macOS buttons may not be good with all themes.

@tsujan
Copy link
Owner

tsujan commented Oct 4, 2018

Oh, don't forget to make the title-bar translucent in the above experiment!

@trmdi
Copy link
Author

trmdi commented Oct 4, 2018

Btw, I think you can make this decoration much better by supporting theming. Something like aurorae engine of kde, but it seems to be buggy and lacks maintenance.

@tsujan
Copy link
Owner

tsujan commented Oct 4, 2018

Btw, I think you can make this decoration much better by supporting theming.

What do you mean by theming? If you mean the buttons, I'll add an option, as said above. If you mean the gradient/color, I think they should follow KDE color scheme, But if you mean optional buttons or background images, that's not possible with Breeze, as far as I saw its code.

Did you do the above experiment? If it worked, please close this issue (it worked here).

@trmdi
Copy link
Author

trmdi commented Oct 4, 2018

Yes, I mean the buttons.
I'm not sitting in front of my computer so I can't test it now. I will tell you the result tomorrow.

@tsujan
Copy link
Owner

tsujan commented Oct 4, 2018

Yes, I mean the buttons.

With Breeze, buttons are drawn in the code. So, there aren't many options.

I will tell you the result tomorrow.

Take your time! Since it worked here, it should also work there :)

@trmdi
Copy link
Author

trmdi commented Oct 5, 2018

Yep, I can do it.

But how can I apply that effect only to the main window of Konsole?
If I do like you told me, it also applies to other windows/dialogs... of Konsole.
Can you make BreezeEnhanced's window-selection like the Kwin's one ? It lacks Window Role, Window type...

image

@trmdi
Copy link
Author

trmdi commented Oct 5, 2018

With Breeze, buttons are drawn in the code. So, there aren't many options.

What about button color and horizontal space between buttons ? And add other macOS style buttons like Keep above, Keep below...
Some guy like @kupiqu would like that: ishovkun/SierraBreeze#50

@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

Can you make BreezeEnhanced's window-selection like the Kwin's one ? It lacks Window Role, Window type...

This is a good idea. I'll think about it.

IMO, adding codes for specific apps like Konsole is wrong.

What about button color and horizontal space between buttons ?

Colors are mild gradients that are carefully selected for both dark and light themes. I experimented with various intensities and found out that macOS had chosen the best colors. So, I'm afraid they couldn't be optional.

I agree that it'l be good to add an option for the space between buttons; will think about it.

And add other macOS style buttons like Keep above, Keep below...

I had added them at first but found them like an overkill: the title-bar was filled with colored circles and looked really weird. So, later I decided to leave the "secondary" buttons as they were -- I just made them a little smaller with non-macOS buttons.

BreezeEnhanced was started only a few days ago; most of its features were added in the last 2 days ;) Other features may be added later and I'll look forward to your suggestions. However, please note that I work on several other projects too: 4 programs of mine as well as the LXQt project. Therefore, to bring quality to development, I should do things little by little, program by program.

@trmdi
Copy link
Author

trmdi commented Oct 5, 2018

Therefore, to bring quality to development, I should do things little by little, program by program.

It should be like that. I just drop my idea here when it appears in my head in case I forget it afterwards. :D

Ah, another thing is, do you think the buttons of inactive windows should be gray? Look at my screenshot above, too many colored circles there. An option may be good for everyone :p

@trmdi trmdi closed this as completed Oct 5, 2018
@kupiqu
Copy link

kupiqu commented Oct 5, 2018

And add other macOS style buttons like Keep above, Keep below...

I had added them at first but found them like an overkill: the title-bar was filled with colored circles and looked really weird.

Maybe if they all are in the same side, but I find them fine if keep above and show in all desktops appear on the left and the rest on the right, which is what I use. Perhaps these could be made optional, but IMO, if you don't like color buttons there is no reason to use Mac style decorations in the first place.

do you think the buttons of inactive windows should be gray? Look at my screenshot above, too many colored circles there. An option may be good for everyone :p

Certainly, I find this confusing about the active window (and more overkill color issue than adding colors for keep above and show in all desktops).

But just my 2cts.

Congrats btw for the animation, I really find it very nice

@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

@trmdi

I reopen this page because it contains ideas to be implemented.

I just drop my idea here when it appears in my head

And please keep on doing so!

do you think the buttons of inactive windows should be gray?

I had experimented with that too. There was a problem: the buttons couldn't be distinguished from each other. All people could get used to Red → Close, Green → Maximize, Yellow/Orange → Minimize. But gray buttons might cause confusion to some.

@kupiqu

... if you don't like color buttons there is no reason to use Mac style decorations in the first place.

My decision wasn't final. I might return to this later.

@tsujan tsujan reopened this Oct 5, 2018
@tsujan tsujan changed the title [Feature request] Transparent blur titlebar for Konsole Feature requests Oct 5, 2018
@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

Look at my screenshot above, too many colored circles there

That's a good point too. Maybe, I should gray out the inactive buttons a little more.

@trmdi
Copy link
Author

trmdi commented Oct 5, 2018

There was a problem: the buttons couldn't be distinguished from each other. All people could get used to Red → Close, Green → Maximize, Yellow/Orange → Minimize. But gray buttons might cause confusion to some.

Can you make the buttons display the color when the mouse is inside the titlebar region, and gray if not ?

@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

Can you make the buttons display the color when the mouse is inside the titlebar region, and gray if not ?

For inactive windows? I should see if there is such a property ("cursor inside title-bar")... Will tell you about it.

@kupiqu
Copy link

kupiqu commented Oct 5, 2018

... if you don't like color buttons there is no reason to use Mac style decorations in the first place.

My decision wasn't final. I might return to this later.

Sounds good!

Btw, "you", above, was general, referred to a potential final user, not specifically to you as developer. I should have wroten "if one doesn't like color buttons...".

Again, that's just my opinion (I guess that's why I'm still using SierraBreeze decoration, but I see a lot of good progress here, congrats).

@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

@kupiqu I try to follow users' opinions AND practicality. The practical side isn't strong in the case of colorized secondary buttons, while it is important with gray inactive buttons. So, in the first case, I can forget about my taste but, in the second case, I should find a middle way :)

@kupiqu
Copy link

kupiqu commented Oct 5, 2018

In SierraBreeze, hovering buttons of inactive windows show "x" for close, "-" for minimize, etc. I guess there is a way to instead replace gray by the color (red, yellow/orange, etc) on hovering, if you'd like that (minimalist) option.

@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

... I guess there is a way to instead replace gray by the color (red, yellow/orange, etc) on hovering

This seems to be the best compromise. I'll go with it.

@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

I made inactive macOS-like buttons gray with a formula that derives the gray lightness from the background color:

inactive

The next step will be making secondary buttons macOS-like.

@tsujan
Copy link
Owner

tsujan commented Oct 5, 2018

macOS secondary buttons are added. All of them are pale blue except for the menu button, which is orange. Their symbols appear on mouse-over, so I don't think there can be any problem, especially because users wouldn't remember various colors. Tests would be appreciated.

The main features mentioned on this page are added. I should think about the other features thoroughly and read some codes. So, I close this.

@tsujan tsujan closed this as completed Oct 5, 2018
@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

@trmdi
As for the space between buttons, I investigated it and found that, unfortunately, it's hard-coded in kdecoration -- among several other parameters -- based on font size and other things. So, it can't be changed inside Breeze.

However, IMHO, the defaults of kdecoration are good enough.

@trmdi
Copy link
Author

trmdi commented Oct 6, 2018

I just try SierraBreeze, it can do it somehow ???

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

I just try SierraBreeze, it can do it somehow ???

Really?! I'll see its code; perhaps I'm missing something.

@trmdi
Copy link
Author

trmdi commented Oct 6, 2018

I just try SierraBreeze, it can do it somehow ???

Really?! I'll see its code; perhaps I'm missing something.

Yep: https://streamable.com/18v4u

@trmdi
Copy link
Author

trmdi commented Oct 6, 2018

Personally I like both macOS dark and light themes.
Btw, what is the Kvantum theme above? Look quite nice !

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

Btw, what is the Kvantum theme above?

Its name is weird: KvSimplicityTurquoise. Its roots are in the mac style; it's derived from KvSimplicity, which is derived from OS X Yosemite.

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

Now that I'm more adventurous, I added a new commit, with which Konsole and other apps can have translucent title-bars more easily.

Just remove the previous setting about ".*" and add a value to the new spin-box "Override opacity" in the exception dialog. The following screenshot shows that for QTerminal (a Konsole fork I use under LXQt):

opacity_override

Of course, you could also create a color scheme and assign it to Konsole in System Settings.

The box "Opaque title bar" is kept for the ease of use. If checked, it disables the opacity override.

I'll think about dialogs later.

@Luwx
Copy link

Luwx commented Oct 6, 2018

There are any plans to update it to 5.14?

The new shadow they implemented looks gorgeous

niefgwt

@trmdi
Copy link
Author

trmdi commented Oct 6, 2018

@Luwx I tried reducing the Shadow strength to 25% and got the similar effect.

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

There are any plans to update it to 5.14?

As soon as a newer versions of KWin comes to Manjaro Testing (soon after it comes into Arch), I'll check the difference between Breeze versions and, if needed, will apply them to BreezeEnhanced.

With Arch based systems, that's fast. Previously, I used Debian sid and should wait for weeks.

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

Right now, https://download.kde.org/stable/plasma/5.14.0/ can't even be opened ;)

@trmdi
Copy link
Author

trmdi commented Oct 6, 2018

You can use the Github mirror: https://github.com/KDE/breeze/tree/Plasma/5.14?files=1

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

You can use the Github mirror....

I know but I prefer not to deal with unstable versions. The latest version of BreezeEnhanced (mentioned in the file NEWS) should be for the latest stable version of KWin (with a delay of one week or so).

And that's why I could never publish a release -- only the latest git version will be valid.

@trmdi
Copy link
Author

trmdi commented Oct 6, 2018

I know but I prefer not to deal with unstable versions.

Oh, I thought they tagged it as 5.14 means that it's the stable release ? Here is the release schedule: https://community.kde.org/Schedules/Plasma_5

Sorry, I don't understand that very well. Just give you the link in case you weren't aware of it. :D

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

Oh, I thought they tagged it as 5.14 means that it's the stable release

It means it'll be released as a stable version soon. https://download.kde.org/stable/ shows the last stable version.

@Luwx
Copy link

Luwx commented Oct 6, 2018

@Luwx I tried reducing the Shadow strength to 25% and got the similar effect.

You can get close but what breeze uses right now is not a true box shadow.

Well, 5.14 is pretty much stable now, but I guess it doesn't hurt waiting a few more days :)

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

@Luwx Yes, Breeze::BoxShadowHelper is new. It'll be straightforward to apply changes to BreezeEnhanced once 5.14 gets stable (and comes to my distro).

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

@Luwx How did you compile kdecoration 5.14? I added BoxShadowHelper to BreezeEnhanced but, for a successful compilation, I had to change find_package(FFTW REQUIRED) to find_package(FFTW3 REQUIRED) and also comment out a line in FFTW3Config.cmake (the second issue is reported here: FFTW/fftw3#130).

@trmdi
Copy link
Author

trmdi commented Oct 6, 2018

I'm not @Luwx but I guess you can use Arch PKGBUILD, e.g. https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/kdecoration

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

@trmdi It wouldn't make a difference. I compiled BreezeEnhanced with BoxShadowHelper only by tricking (but didn't install it). As far as I see, kdecoration 5.14 can't get stable in its current form.

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

Oh, my big mistake! FFTW is included in cmake modules (which didn't exist before). Will wrestle with it tomorrow.

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

I couldn't wait until tomorrow (actually, it's tomorrow here). I added Breeze::BoxShadowHelper to BreezeEnhanced here and compiled it against KWin 5.13. Shadows look better now but the default intensity is changed from 35% to 100% -- I think KDE users will get confused when 5.14 comes out. Moreover, the new shadow can't be made more intense.

This is the ordinary Breeze 5.13 with a 30% shadow:

old

And this is the new BreezeEnhanced (not uploaded) with a 100% shadow:

new

The new shadow looks more realistic to me.

The changes could be uploaded so that the new BreezeEnhanced could be compiled with both 5.13 and 5.14 but I prefer to wait until 5.14 gets stable. I'm ready for it, thanks to @Luwx's comment :)

BTW, I found a way of publishing releases. When 5.14 comes out, I'll release 5.13, and the same for other versions....

@tsujan
Copy link
Owner

tsujan commented Oct 6, 2018

Oh, the new shadows have a bug when made large: they are a mess with small message-boxes. I think no one has seen it yet. The medium size is OK though.

EDIT: The problem I see may be because I use KWin 5.13.

@tsujan
Copy link
Owner

tsujan commented Oct 8, 2018

Plasma 5.14 should be released today and will come to my distro with a short delay. I still think that those box shadows have a problem when they're large but I'm ready to upgrade BreezeEnhanced as soon as Plasma 5.14 comes to Manjaro testing.

@trmdi
Copy link
Author

trmdi commented Oct 18, 2018

/OT
Sorry to bother you, do you have a way to make this be true? https://bugs.kde.org/show_bug.cgi?id=399757
Read Chris Holand's comments. After hours played with C++ and Qt, KDecoration, I can not find one, because I'm not very good at them. I see you very good at those, can you give me some insights to continue playing with it. :P

We can get it to draw a non-animated button. Unfortunately, it's not animated.
img
https://gist.github.com/Zren/40f657da96e4d8a29b13d74b74e956c5

What I want is to have animated buttons (from BreezeEnhanced) to be shown with QML.

@tsujan
Copy link
Owner

tsujan commented Oct 18, 2018

You're asking that from someone who hates QML and QtQuick ;) I'm serious; IMO, QML is the worst thing happened to Qt.

@tsujan
Copy link
Owner

tsujan commented Oct 18, 2018

This is one explanation: lxqt/lxqt#1433 . There are others.

@trmdi
Copy link
Author

trmdi commented Oct 18, 2018

Then I want to ask a Qt question.

I'm not saying about the only buttons like in the picture above. This time I created a fully client that has titlebar, window, border... from QML code, and it has the hover effect on close/min/max buttons like a normal window.

But when I try: connect(m_button, &KDecoration::DecorateButton::onHoveredChanged, [] () { qDebug() << "hmm..."})
it didn't work as expected when I move the mouse in and out of the buttons.
m_button is a object of BreezeButton class.

What am I understanding/doing wrong with connect() ? Or those buttons are not objects of BreezeButton class?

@tsujan
Copy link
Owner

tsujan commented Oct 18, 2018

@trmdi See here:

connect( this, &KDecoration2::DecorationButton::hoveredChanged, this, &Button::updateAnimationState );

@trmdi
Copy link
Author

trmdi commented Oct 18, 2018

Yes, I mean this. But no qDebug() msg is out ???
(There are some typos in my comment above)

For example, can I create an small console app that show a qDebug message when I hover on those BreezeButton everywhere ?

(A stupid idea that I didn't test yet)

// sorry, I just started to learn C++ and Qt so I'm asking so stupid questions.

@tsujan
Copy link
Owner

tsujan commented Oct 18, 2018

For example, can I create an small console app that show a qDebug message when I hover on those BreezeButton everywhere ?

I can't be sure about anything related to QML because I run away from it ;) However, if you use qDebug() in a Qt/C++ program and if debug messages aren't suppressed on you system (they aren't by default), you'll usually see the message in the terminal.

That also depends on what you do in the terminal. If the program is an app and you run it from the terminal, you'll see the message. If it's a library and you run an app that uses it, it may or may not be seen because the app can suppress it.

@tsujan
Copy link
Owner

tsujan commented Oct 18, 2018

BTW, Qt Creator suppresses qDebug() messages in its own output. I don't know whose idea it was but it was a very bad idea.

@tsujan
Copy link
Owner

tsujan commented Oct 18, 2018

Maybe a real example could help:

I use a lot of qDebug() in Kvantum when doing complex things (and remove them later). kvantumpreview and many other apps show the debug messages when I run them in the terminal but, for example, smplayer shows nothing.

I think no Qt dev codes without qDebug() ;) It's the best tool for finding and fixing bugs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants