tsujan / BreezeEnhanced

A fork of KDE Breeze decoration with additional options
GNU General Public License v3.0
162 stars 13 forks source link

Allow add some lines and gradients for a more 3D look like Mac, elementary or Adwaita. #12

Closed ripefig closed 5 years ago

ripefig commented 5 years ago

It would be nice to draw thin dark borders lines around windows to give it a 3d look, while also adding a "drop shadow" and separator to the titlebar. Maybe make the top highlight a little bigger (like two pixels). The borders and highlights should depend on the color scheme, so for lighter themes you get white highlights and gray borders while for dark ones you get pitch black ones.

Adwaita is a pretty good model.

This has a few advantages. It gives windows definition even if shadows are disabled or tiny. It makes the titlebars more defined, even if it's the same/similar color to the application colors. Also, if there is a color clash between the application and the titlebar, it's less glaring if you use 3D titlebars. There are lots of apps these days with custom colors, and they are going to clash with flat title-bars no matter what colors you pick (unless you create different kwin rules for everything).

tsujan commented 5 years ago

BreezeEnhanced is mostly about the titlebar. What you want is the job of kwin effects like shapecorners. I tried shapecorners and it looked nice but I uninstalled it later because the dark border didn't look natural to me. However, you might want to give it a try.

tsujan commented 5 years ago

Also AUR has shapecorners if you use an Arch based distro: https://aur.archlinux.org/packages/kwin-effect-shapecorners-git/

ripefig commented 5 years ago

Didn't you already make some modification? The side borders are tied to a different color and there is a highlights on the top of the titlebar that isn't present. I think it makes sense to make more changes in that direction, though it's up to you obv. You don't have any much choice in kwin decoration outside of aurorara themes, but those don't respect color themes.

tsujan commented 5 years ago

I just added a very thin light border to the top for easier working with dark title-bars.

Actually, I'm not sure that it isn't possible in Breeze's code but, (1) I haven't found a place for it in those parts that I've worked on and (2) I don't think anyone has done it inside this code because, otherwise, a kwin effect wouldn't be needed.

That being said, I'll take a deeper look at Breeze's code in my free time and will reopen this if it's possible.

tsujan commented 5 years ago

OK, I misunderstood some parts of your comment:

while also adding a "drop shadow" and separator to the titlebar.

I intentionally removed the title-bar separator because, IMO, a nice title-bar should be integrated with the whole window, not as something attached to it.

Maybe make the top highlight a little bigger (like two pixels)

The top highlight isn't an actual line but a tiny part of the whole gradient; it only looks like a line. After experimenting with several methods, I found this one the most natural looking. 1% of the whole gradient -- its top part -- is 30% brighter.

It would be nice to draw thin dark borders lines around windows

I understood this part correctly :)

Luwx commented 5 years ago

The top highlight isn't an actual line but a tiny part of the whole gradient; it only looks like a line. After experimenting with several methods, I found this one the most natural looking. 1% of the whole gradient -- its top part -- is 30% brighter.

I was messing with the code and found a better way to make this line: adding another rounded rect bellow the titleRect, and making it's color lighter like the gradient.

screenshot_20181129_140551

This method just add a few bright pixels to the corners, but it looks way more natural to me. It's more noticiable, of course, when you incrase the decoration frame radius.

tsujan commented 5 years ago

but it looks way more natural to me.

Tastes differ :)

ripefig commented 5 years ago

I intentionally removed the title-bar separator because, IMO, a nice title-bar should be integrated with the whole window, not as something attached to it.

Looks nice but it's less functional because it doesn't make it clear which area is draggable. Also, color matching is pain to set up if there is a mismatch. Some programs don't follow the KDE color theme at all, while some KDE themes make color matching next to impossible (like adapta and materia, the only ones that look fine on both GTK and QT).

For real color matching, it would make sense to write a script that makes it write a script that probes the color under under the titlebar (maybe once, at first launch) and colorizes the titlebar accordingly. I noticed that the color that should me matched is almost always located in the upper-left corner of the window, so it could be automated. Or one could write write a script relying on just user input.

It's beyond the scope of the project, but that would be the way to do it.

tsujan commented 5 years ago

Looks nice but it's less functional because it doesn't make it clear which area is draggable.

If you still drag windows from their title-bars, you might need to use a kwin title-bar that has that line. BreezeEnhanced was made because Breeze wasn't good enough with Kvantum. If it wan't for Kvantum, I'd have no reason to do so.

ripefig commented 5 years ago

Nah, I'll keep using this theme. The Breeze line is ugly as hell, and I don't like the default decor overall. :)

edit: kinda cheeky to ask KDE upstream to waste time on this, but I filed a report for color matching: https://bugs.kde.org/show_bug.cgi?id=401576