dirruk1 / gnome-breeze

Attempt to create a Breeze gtk-3 theme. GTK2 theme made by scionicspectre
https://github.com/scionicspectre/BreezyGTK
GNU Lesser General Public License v2.1
129 stars 16 forks source link

Broken in GTK+ v3.20 #56

Closed Kwpolska closed 8 years ago

Kwpolska commented 8 years ago

The theme is completely broken in GTK 3.20. Lists and menus have no padding, checked checkboxes don’t display their captions, and there are almost no visual components (button/combobox/checkbox borders). All GTK3 programs provide 1762 lines of error output.

The breakage is caused by CSS changes:

  • The CSS machinery now uses element names for widgets and their components
  • CSS margins, borders, padding and min-width and min-height are now much more consistently supported
  • CSS features that have been added: radial gradients, recoloring symbolic icons, image(), calc(), rem

image

ghost commented 8 years ago

Thank you for creating an issue. Unfortunately, due to a lack of resources, we weren't able to create the new theme in time for GTK 3.20's release. Hopefully one of us can find the time, but if anyone reading this bug is motivated to work on the theme, please feel free to contact any of the authors- your help would be much appreciated.

Since GTK's CSS syntax will remain stable in the future, this should be the last time until GTK 4 that we have such massive breakage. I'll return to this bug with information when significant progress is made in porting to 3.20.

magnific0 commented 8 years ago

@scionicspectre @Kwpolska I have made a small start with porting the theme, see #57 . Although there is much more work to be done, it makes the theme somewhat usable under v3.20.

ghost commented 8 years ago

We've just merged Jacco's initial patches for GTK 3.20 so this issue should be remedied somewhat. There are still plenty of broken visuals at the moment but it should look a good deal better than before. Keeping this bug open until the rest of the loose ends are tied up, of course.

ceribik commented 8 years ago

Has the scrollbar been fixed yet? Just checking as that is still broken on my end.

magnific0 commented 8 years ago

Working on this end, can you elaborate what's wrong? Maybe post a screencap?

ceribik commented 8 years ago

The scrollbar works, but the slider is invisible:

http://i.imgur.com/Br74al3.jpg

FadeMind commented 8 years ago

Highlight selection on menu entries is missing GNOME Disks zaznaczenie_001 Corebird zaznaczenie_005

But NORMAL menu entries are highlighted GNOME Disks zaznaczenie_002

Scrollbar have additional gray border Bluefish settings: zaznaczenie_003 Corebird zaznaczenie_004

dirruk1 commented 8 years ago

I've done some updates here, would be great if poeple could test it. There are still some problems (mainly scrollbars) but most is solved I think.

ghost commented 8 years ago

@dirruk1 Oh, a shiny new restructured theme, eh? I'll have to dig in and read up on the new code and try it out soon. It's exciting to see you back with some awesome updates.

Quick question- are the color themes in 'schemes' directly from KDE, or did you have to modify them somewhat? Does this mean we can already merge color-effects directly into the main theme?

dirruk1 commented 8 years ago

they are from kde but I haven't tried any other color-schemes

ghost commented 8 years ago

@dirruk1 So, from what I gather, a different theme is built for every color scheme mentioned in the 'colors' array at the top of the build_theme.sh script, correct?

I imagine it wouldn't be too far of a step to 'grab' the user's currently applied color scheme instead and throw the built theme into the local XDG user .themes directory as 'Breeze' regardless of the color scheme used. This would automatically override the system-wide Breeze theme if it's selected in System Settings, allowing instant use much like Oxygen-GTK did.

In this case, you could simply throw out the static 'colors' variables (aside from the default color scheme for /usr/share/themes) if there's a reliable way to point to the .colors file in use by Qt Breeze. Or am I oversimplifying things?

Either way, I'm not saying we should do that now, but this all looks very promising. Thank you for putting so much work into this.

EDIT: Ah, it looks like you're already moving it to the local themes directory with that script, so we'd only need to reference the locally selected kcolors after all.

dirruk1 commented 8 years ago

That is the plan but I first wan't to test how well the other schemes work with this theme

poofleesni commented 8 years ago

I have following error when try to execute build_theme.sh :

Traceback (most recent call last): File "render_assets.py", line 641, in <module> border_color = Color(_colors,'WindowBackgroundNormal','WindowForegroundNormal', 0.75) File "render_assets.py", line 48, in __init__ self.html = '#%02x%02x%02x' % self.rgb255 TypeError: %x format: an integer is required, not float

After that colours are not applied properly (background is always dark)

dirruk1 commented 8 years ago

I think its fixed now, could you try again? Are you using python3, I could only reproduce this with python3

poofleesni commented 8 years ago

Yes, I'm using python 3. Now it works, thank you.

ghost commented 8 years ago

@dirruk1 I've tested the theme with various applications and color schemes (not only those included by default) and it seems to be working very well. There are some limitations it seems as GTK doesn't necessarily support as much specificity as is available in KDE color schemes, but I think the results are more than acceptable.

I'd definitely encourage you to merge it into master whenever you're comfortable doing so. It's certainly robust enough to make it into 5.7 with Breeze & Breeze Dark, and feature freeze is still about a month away so we have enough time to find help merging it into KDE proper. I think the theme-building script would be acceptable as an 'optional preview' you can run manually, as it would allow for widespread testing and possibly developing integration with the Colors KCM in time for 5.8.

The biggest issue I see remaining is CSDs (alpha doesn't appear to be respected), and that's something we'll probably need to coordinate with GTK and Kwin devs on to find a long-term solution. I see two possibilities:

  1. Kwin respects GNOME's implementation of CSDs further by supporting GTK 3's alpha transparency, much like other compositors.
  2. We find a way to disable CSDs directly, disabling window buttons and solely using Kwin's decorations. This option would also likely require theming headerbars like toolbars from the Qt theme to avoid a double-titlebar look.

I definitely prefer option 1 as it requires less coordination and allows CSD applications to look as intended alongside the inevitable Dynamic Window Decorations. It would also allow the theme to look gorgeous on GNOME 3 itself. Still, this should probably be given its own issue later and discussed with everyone involved. We could make the decoration edges flat again in the meantime if users find it too bothersome.

Mte90 commented 8 years ago

any news of that bug? is very annoying

shmerl commented 8 years ago

FYI: Scroll bars are still broken in Firefox with the latest update.

Mte90 commented 8 years ago

To fix the scrollbar I installed Stylish and picked one from https://userstyles.org/styles/browse?search_terms=scrollbar in my case https://userstyles.org/styles/76999/glow-scrollbar

For the checkbox/radio https://userstyles.org/styles/24068/comprehensive-kde3-and-qt3-firefox-ui-fixes

shmerl commented 8 years ago

Is there any progress with this, or it's on hold?

ghost commented 8 years ago

@shmerl The GTK 3.20 issues are already essentially fixed.

If you're referring to the Firefox stuff, it has been partially fixed and there are several bugs detailing those issues. It would be best for Mozilla to fix the GTK rendering in Firefox instead of us inventing a workaround, but that's probably what we'll do for pragmatic reasons.

In any case, it's undergoing active development- none of this has been on hold.

shmerl commented 8 years ago

@scionicspectre: Thanks. Can you please link to the Firefox bugs about it if you know what they are (I assume you mean in Mozilla bug tracker)? I'll keep an eye on them.

UPDATE: OK, I found this meta bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1264079 Here is a major one: https://bugzilla.mozilla.org/show_bug.cgi?id=1230955

Mte90 commented 8 years ago

perfect thank you @shmerl i will try to ping the Mozilla's developers for these!

shmerl commented 8 years ago

@Mte90: FYI, Firefix 48 beta already fixed the annoying missing scrollbars / checkboxes issue. You can use the beta for a while, until the next release.

The actual culprit was: https://bugzilla.mozilla.org/show_bug.cgi?id=1230955

Mte90 commented 8 years ago

I already use the beta but yeah now works very well!