theme dev talk #101

Closed
raveit65 opened this Issue Jan 24, 2016 · 127 comments

Projects

None yet

3 participants

@raveit65
Member

themes needs a rewrite to 3.20

@raveit65
Member

@ lukefromdc

OK, I counrt a total of 11 desktop themes that will have to be ported assuming we don't plan to drop any of them. Once you've done one it's about 8 hours work to rough port one, maybe 4 more to finish. The kicker is this: Mint will be updating to Ubuntu's 16.04 release this Spring, but that will be GTK3.18. I don;t know if Mint will then sit on Ubuntu LTS again for the next 4 years, but if they do they won't ever have to support this exact version of GTK3. Thus they might not port anything this time around. Between the two of us we can port a selection of themes, but we'll need more hands if 11 are to be supported. That's a lot of themes for just one or two developers to deal with. First port always takes the longest, the things I learn the hard way on my own theme are quickly reapplied to anything else I port. Should be the same for everyone else.

Yes, there are a lot of themes. But most of them are sister themes which are only different in color scheme.
Menta should be same as BlueMenta.
GreenLaguna is very similar to BlackMate but a bit different.
Traditional themes should be only different in color scheme
Submarine themes are different in colorscheme and some color definitions, but the structure is the same.
Contrast themes are different but they are very simple themes.
So, for half of the themes it is simply a copy/paste action.
Before gtk+-3.20 use a 2 or 3 in minor version it should be sufficient to have only 1 theme from every sister theme ready, because we don't know what will change in gtk+.
In general for me it is sufficient to have only one or 2 themes ready when 3.20.0 will release.

Well i like to port BlueMenta for myself because i want to learn what i have to change.
And doing it for myself is the best way to learn it.
But feel free to start with another theme if you have some free time.
If you catch the Submarine themes, please comment only out stuff which does not work anymore, we can delete the lines later.,.............Blue-Submarine is my real baby.

And thank you again for your efforts.

@lukefromdc
Member

I just added a mostly complete port of Green-Submarine. Basically usable but probably needs more work. Picked this one so you can fine-tune it for Blue-Submarine. OK, we've now got one light theme and one dark theme usable enough for GTK 3.19/20 testing if nothing else. I only use a limited set of apps, plus check them in gtk3-widget-factory and gtk3-demo, same as my own theme but without the long-term day to day use that always seems to turn up the minor issues.

@raveit65
Member

Phew, fist raw port for BlueMenta is done, now i can go in details to check if all stuff is working like it should.
Progressbar and Scale is quite broken. I didn't touch mate/gnome/others-application.css.
Looks like that all this settings are lost if we can't use specific 'app selectors'.....this is really a regression for me.
I will take a look at green-submarine over the weekend to find out the button jumping.
I guess it's a issue with .linked button logic.
Sadly, an important page is droped from gtk3-inspector where you could see the theme settings of a widget, with that tool it was easy to find out a padding or border issue for a button. ......another regression for me.
Also it looks like that not all widgets are ported to using nodes.
So i have to look for every widget how they did it with adwaita theme
I guess there will come more changes.
Ok, i didn't test BlueMenta port with Mate, need to set up a VM first with fedora-24.

@raveit65
Member

PS: i didn't remove the old obsolete selectors for the moment, so we can use this as references for other themes.

@lukefromdc
Member

I just added a new branch to my repo with some Green-Submarine fixes.

https://github.com/lukefromdc/mate-themes/tree/Green-Submarine-fixes-gtk3.20

Working on those toolbar.primary-toobar selectors right now, will then see if I can do anything about the jumping. The linked-button code is very complex so no guarantees. If you know the offending widgets though, new jumping on a gtk3.19 port is almost always caused by a border that is present in one widget state and absent in another, in a few cases by a missing minimum-width or minimum-height. Only with treeview separators was the latter the culprit in my work, the rest was borders

@lukefromdc
Member

A quick check of BlueMenta here shows it basically working but with some
issues. Images in some buttons don't show up, no text in switches and
progressbars look like they have only a border of the progressbar progress
portion. Only checked Caja and gtk3-widget-factory though and don't know
really what it's supposed to look like. I figure that out normally by installing the
gtk3.18 version, putting the gtk3.20 version in a gtk-3.20 folder in the theme
directory, and then changing gtk versions. I have multiple GTK 3 versions built
into single debian packages apiece so rolling back and re-updating is a one
package installation.

On 1/29/2016 at 3:46 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

Phew, fist raw port for BlueMenta is done, now i can go in details
to check if all stuff is working like it should.
Progressbar and Scale is quite broken. I didn't touch
mate/gnome/others-application.css.
Looks like that all this settings are lost if we can't use
specific 'app selectors'.....this is really a regression for me.
I will take a look at green-submarine over the weekend to find out
the button jumping.
I guess it's a issue with .linked button logic.
Sadly, an important page is droped from gtk3-inspector where you
could see the theme settings of a widget, with that tool it was
easy to find out a padding or border issue for a button.
......another regression for me.
Also it looks like that not all widgets are ported to using nodes.
So i have to look for every widget how they did it with adwaita
theme
I guess there will come more changes.
Ok, i didn't test BlueMenta port with Mate, need to set up a VM
first with fedora-24.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-176961961

@raveit65
Member

See mate-desktop/caja@5b56a80
Now we can style destktop canvas items independent from navigation-window with
.caja-desktop.caja-canvas-item { }
or
.caja-desktop EelEditableLabel.entry { }

Works well with 3.20, i think we need to add more style classes like this for old classes CajaNavigationWindow and CajaDesktopWindow at the top of the tree.
Than we can style caja independent from other applications.
Same for other mate applications which we need to style, ie mate-panel and pluma.

@lukefromdc
Member

Once toplevel windows are labelled this way, widgets within them are a lot easier to single out, only needing their own style class if it is necessary to distinguish between them in the same app, such as Caja navigation windows vs the Caja desktop.

@raveit65
Member
raveit65 commented Feb 1, 2016

I've added some more style classes , see latest commits at caja master.
.caja-navigation-window at top level
.caja-side-pane --> top level for sidebars

I noticed that the .view class for IconView (navigation-window) doesn't work with 3.20, but adding a class 'fm-icon-container' does not help.
Here 'scrolledwindow.frame helps, but this is a bit odd.
Any Ideas?

@lukefromdc
Member

The .view situation works like this: in gtk3.20, that custom icon-view widget is always transparent. If you look at it in gtk-inspector, the style class is in fact being applied but it is now a backgroundless, always transparent widget, possibly by becoming a "windowless" widget that simply draws its foreground over whatever is beneath. Thus a background cannot be set for it. Anything else set with .view still works, such as the rubberband theming if not otherwise explicitly themes.

Therefore, the only way to set the background is to set it on something underneath the iconview, the scrolled window is the first one underneath. This can put boxes over the scrollbars in list views, however. The only solution I can think of would be to put a frame or some such thing inside the scrolled window, then put the FMIconView inside that. Either leave it out for the desktop or use the navigation window theme class to override an otherwise transparent BG for it so as not to get an opaque background over the desktop background.

Right now I am using the scrolled window to take the background and putting up with the list view scrollbar white box on top.

@raveit65
Member
raveit65 commented Feb 2, 2016

OK, understand, we have to live with it for the momment.
I added some more style classes for caja.
.caja-pathbar
.caja-search-bar
.caja-location-entry
If we need some more , ie CajaTrashBar and others, please let me know.

@lukefromdc
Member

The Caja trashbar can be themed by the # widget name #caja-extra-view-widget ,
which covers the trashbar and I think covers other info bars, though I never see
any but the trashbar with my setup.

On 2/1/2016 at 8:02 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

OK, understand, we have to live with it for the momment.
I added some more style classes for caja.
.caja-location-entry
.caja-search-bar
.caja-location-entry
If we need some more , ie CajaTrashBar and others, please let me
know.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-178288533

@raveit65
Member
raveit65 commented Feb 2, 2016

Thanks for the hint.
Btw, do you see that issue with mate-terminal on bare metal with 3.20 ?
mate-desktop/mate-terminal#111
My rawhide installation is in virtualbox.

@lukefromdc
Member

Yes I do, that has been going on since the beginning of GTK3.19, but I figured
at the time it was just another gtk3.19 bug. Now it looks like it may be here to
stay.

On 2/2/2016 at 12:32 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

Thanks for the hint.
Btw, do you see that issue with mate-terminal on bare metal with
3.20 ?
mate-desktop/mate-terminal#111
My rawhide installation is in virtualbox.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-178703510

@lukefromdc
Member

I just tested the latest BlueMenta, it's coming along nicely but some builtin icons
are still rendering either white on white or transparent in gtk3-widget-factory and
in GtkInspector. Also, you need to set a min-width on menu items containing
checks or radios, as that is defaulting to zero and removing the images.

On 2/2/2016 at 12:32 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

Thanks for the hint.
Btw, do you see that issue with mate-terminal on bare metal with
3.20 ?
mate-desktop/mate-terminal#111
My rawhide installation is in virtualbox.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-178703510

@raveit65
Member
raveit65 commented Feb 3, 2016

I added min-witdh for check/radio buttons, i never known that, thx.
And yes, some symbolic icons don't render very well on selected button state.
Normal symbolic icons change to white fg for a dark bg, i don't know why this doesn't work, maybe the contrast is too low for this bg color.
The missing icon in headerbar button of gtk3-inspector is a result of replacing symbolic icons in windows-control.css with regular icons.
With this line https://github.com/mate-desktop/mate-themes/blob/master/desktop-themes/BlueMenta/gtk-3.0/window-controls.css#L274
i revert the replacement for the menu button. I need to know the exact button name to do the same for this button.

@lukefromdc
Member

I do not know the name of the one in gtk3-widget-factory, it does not come up
with a name in gtk3-inspector. It has the style class .image-button.popup.toggle
but the problem with fixing buttons by name in test programs like this is that they
are symptoms of larger problems that these programs are designed to reveal.

One tip: I find that different themes with the same icon theme give different results,
I don't get this issue with my theme at all, but in that case the symbolic icons are
rendered white on a dark background in both programs. Most symbolic icons are
disabled in my theme but these still come up as symbolics, perhaps they are
hardcoded as such?

On 2/3/2016 at 11:20 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

I added min-witdh for check/radio buttons, i never known that, thx.
And yes, some symbolic icons don't render very well on selected
button state.
Normal symbolic icons change to white fg for a dark bg, i don't
know why this doesn't work, maybe the contrast is too low for this
bg color.
The missing icon in headerbar button of gtk3-inspector is a result
of replacing symbolic icons in windows-control.css with regular
icons.
With this line https://github.com/mate-desktop/mate-
themes/blob/master/desktop-themes/BlueMenta/gtk-3.0/window-
controls.css#L274
i revert the replacement for the menu button. I need to know the
exact button name to do the same for this button.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-179320917

@lukefromdc
Member

Be advised that there were enough changes in today's version (2-4-2016) of
gtk3.19.8 to force me to explicitly theme the wnck workspace switcher in my
own theme, something which had not previously been necessary. Nothing
else seemed to break except Adwaita and only Adwaita forced the panel to
a much larger default height which could not be changed, no doubt due to
accidently matching some selector in Adwaita.

BlueMenta, Green-Submarine, and BlackMATE didn't get any new panel issues,
so an accidental match may have overridden the workspace switcher in my
theme.

The big change was that all those widgets with no name now get a css node name
of widget by default.

EDIT: This selector works for singling out the panel drag handles/grips without matching anything else it seems:

#PanelPlug>#PanelApplet>widget>widget

@lukefromdc
Member

The panel tray and window list grips were also made transparent by today's
gtk3 change, but the added "widget" name made them a bit easier to
explicitly theme. I used this selector but a style class added to the trays
and window list move grips would probably be a better idea:

window.mate-panel-menu-bar>widget>widget>widget.mate-panel-menu-bar>widget

These selectors work ONLY with gtk3.19.8 built after today's changes but were
not needed in my theme before today. The "widget" css node name is applied
to any widget that otherwise would not have a css node name, so it matches
only deprecated and custom widgets.

On 2/3/2016 at 11:20 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

I added min-witdh for check/radio buttons, i never known that, thx.
And yes, some symbolic icons don't render very well on selected
button state.
Normal symbolic icons change to white fg for a dark bg, i don't
know why this doesn't work, maybe the contrast is too low for this
bg color.
The missing icon in headerbar button of gtk3-inspector is a result
of replacing symbolic icons in windows-control.css with regular
icons.
With this line https://github.com/mate-desktop/mate-
themes/blob/master/desktop-themes/BlueMenta/gtk-3.0/window-
controls.css#L274
i revert the replacement for the menu button. I need to know the
exact button name to do the same for this button.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-179320917

@lukefromdc
Member

Got the panel tray icon padding working again for gtk3.19.8 with this code:
#PanelPlug>#PanelApplet {
-NaTrayApplet-icon-padding: 1px;
}

@raveit65
Member
raveit65 commented Feb 5, 2016

Do you see the name 'widget' in gtk3-inspector?
I don't see that with gtk3-3.19.8-2.fc24.
I agree with adding a style class for na-try-applet. Maybe we should add style classes for all applets?

Btw., what's the different of using (>)

#PanelPlug>#PanelApplet { }

and

#PanelPlug #PanelApplet { }

in general for theming?

I noticed also a change with spinbuttons. 'spinbutton entry' is working again. See changes in BlueMenta from today.

@raveit65
Member
raveit65 commented Feb 5, 2016

I forgot to say the 'grips' i can style in BlueMenta with

MatePanelAppletFrameDBus {
    background-image: -gtk-scaled(url("assets/panel-grid.svg"));
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: left;
}
@lukefromdc
Member

The difference between #PanelPlug>#PanelApplet { } and #PanelPlug #PanelApplet { }
is that the former cannot accidently match anything else that has something between
those two selectors. In "widget chain" selectors I always seek to use the > character to
limit the match to the exact widget chain I am trying to theme and avoid unwanted
matches.

The "widget" css node works ONLY with versions of gtk3.19.8 built after a commit that
came out yesterday, I buiid gtk3.19 from source each day if anything important
has changed.

https://git.gnome.org/browse/gtk+/commit/?id=f7ec9c98ef0ef8740c93f96af9d971b0211118c1

"Now selecting a widget by class name no longer works.

This is probably most relevant for users outside of GTK that want to
style their own widgets. Those widgets should now either add their own
style classes (if they want to adjust existing CSS) or use
gtk_widget_class_set_css_name() themselves (if they want to get rid of
all "upstream" styling)."

On 2/5/2016 at 11:48 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

Do you see the name 'widget' in gtk3-inspector?
I don't see that with gtk3-3.19.8-2.fc24.
I agree with adding a style class for na-try-applet. Maybe we
should add style classes for all applets?

Btw., what's the different of using (>)

#PanelPlug>#PanelApplet { }

and

#PanelPlug #PanelApplet { }

in general for theming?

I noticed also a change with spinbuttons. 'spinbutton entry' is
working again. See changes in BlueMenta from today.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-180435551

@raveit65
Member
raveit65 commented Feb 6, 2016

Ahh, understand the different now, thx.
I added new style clases:
pluma-window
pluma-print-preview
atril-window
eom-window

@lukefromdc
Member

GTK Inspector just got harder to use. The no longer used widget names are now
no longer displayed, the css name "widget" plus any style class being all you are
shown now for a custom widget. This may increase the importance of the style
classes for debugging.

While it is also possible to add css node names directly, that is a gtk3.20 and later
only solution, though the older GTK versions would just ignore them and use the
widget names.

Basically, old stuff no longer used withing gtk3.19 is being cleaned out it seems,
hopefully it will stablize soon because GNOME will have to be finalized against
a stable GTK version prior to its own release.

On 2/6/2016 at 1:52 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

Ahh, understand the different now, thx.
I added new style clases:
pluma-window
pluma-print-preview
atril-window
eom-window


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-180708054

@lukefromdc
Member

What version of Nemo were you using for this commit?
a66c234

.nemo-window does not work with the 2.8.6-1 version in Debian Unstable, and on the Nemo github page I could not find any reference to a commit adding this style class. I suspect it will work in the future though, as Nemo/Cinnamon devs will encounter GTK 3.20 with Debian Unstable probably in May and Ubuntu 16.10 development versions at a similar time. If Mint goes with the Ubuntu LTS again though, they won't actually NEED it to work in their own distro for two years.

The version of Nemo I have can be styled-but only with the long widget chains. EDIT: gtk inspector confirms this style class not present on Nemo 2.8.6-1 from Debian Unstable.

@lukefromdc
Member

Noticed a Fixme in BlueMenta for progressbar minimum height and widgth:
-GtkProgressBar-min-horizontal-bar-height: 16;
becomes simply
min-height: 16 px

within the relevant selectors. Had to read the actual gtkprogressbar.c source to find this out!

@raveit65
Member

As linuxmint does not have a focus for gtk+ > 3.18, i helped out with a patch for fedora rawhide.
http://pkgs.fedoraproject.org/cgit/rpms/nemo.git/commit/?id=b65f56bf2343f821229c967bbb734962c3f0490c .
You need to patch nemo-2.8.6.
I guess sooner or later fedora's nemo maintainer will send the patch to linuxmint upstream.

Thanks for the hint for progressbars.

@lukefromdc
Member

I applied just the nemo_style-classes.patch from there to nemo 2.8.6, it works. Adjusted my theme to it to prevent accidental matches to anything else, figuring it's better to tell users to use a patched build Nemo from the same website (it will go there when the next theme version does) than to have to deal with accidental matches to anything else. Hope that patch goes upstream, I don't want to have to bring those widget chains back. For now I just dumped the modded files into /usr/src and the origin of both the patch and the source download into the changelog so distribution of the Debian package will meet GPL requirements.

EDIT: I just set up this github fork to make the finished code more accessable and easier to maintain:
https://github.com/lukefromdc/nemo/tree/gtk3.20-theme-support

@raveit65
Member

I noticed that .caja-notebook .view { } styles now icon view again with 3.19.8-4.
Can you confirm?
And maybe we can revert mate-desktop/caja@e5c2965 ?
What do you think?

@lukefromdc
Member

I just did some tests with today's gtk 3.19.9 and here's what I found: caja-notebook .view { } is styling the very scrolledwindow I attached the .view class to, and that is what you are seeing. The icon view itself also catches it but applies it only to the rubberband, theming it solid color unless explicitly re-themed. The icon view widget (icon container) remains transparent. I don't normally get the rubberband issue because the main .view and rubberband are themed together in my theme so that's all the .view style class on the icon container catches unless it is explicitly overridden as your code will do.

I proved this by using .caja-navigation-window scrolledwindow.view {} to set the scrolledwindow transparent explicitly, equivalent to reverting the commit so far as icon views are concerned. The result was the background window color (gray in my theme) showing through plus the rubberband being themed solid white (the theme base color) since the explicit theming of that one view overrode the general .view rubberband style and wasn't included in the test. GTK inspector still shows the "background-color" as white (in my theme) but it is not actually applied to the overall background in this widget-not in Caja, not in Nemo, not in Nautilus 3.19.2 even.

Nothing has changed for the better concerning this in any GTK 3.19 version I've gotten from git master since the problem first started. GNOME's Adwaita themes always use similar base and background colors, so it doesn't seem to bother them.

Reverting this commit would thus once again force an unconditional theming of the scrolledwindow, bringing back the unremovable white squares at the top of list view scrollbars in themes with white views and dark background colors. The point to my commit was to theme the scrolledwindow when and only when it contains an icon view.

You didn't get a patched version of GTK 3.19 by any chance? I've not seen any version 3.19.8 dash anything in GIT master, so I am assuming this was a binary build from someone else.

@lukefromdc
Member

These two screenshots show the effect of being able to single out scrolledwindows containing icon views/compact views only. In Caja my commit attaches the style class only to scrolled windows containing icon/compact views, so when a list view is selected the scrolled window looks as it should. Nautilus does not have this, so to put the white background in the icon view it must be applied unconditionally to the scrolled window or a widget containing that scrolled window. Thus with my white icon views and medium gray background color, you get the white squares. The only fixes are to either use overlay scrolling (ugh!) or patch Nautius too. Were I putting out a public distro using Nautilus I would still have to do exactly that. This is GTK 3.19.9 just built today(Feb 18) from unmodified GIT master, Nautilus 3.19.2 also from GIT master a couple days ago, and Caja from GIT master as of yesterday (Feb 17).

reverting mate-desktop/caja@e5c2965 would either put the white squares seen over the Nautilus scrollbars on Caja too in any similar theme using white views, or force use of views the same color as the background color

nautilus_scrollbars

caja-scrollbars

@lukefromdc
Member

Here's what GNOME just did for Nautius, and yes, it leaves the white scrollbar tops in list views when dropped into my theme. Those are also visible in Adwaita, though the difference is faint there. They said they got a white window "by luck" into now.

.nautilus-window notebook,
.nautilus-window notebook > stack {
    background: white;
}

This does have the advantage for them that these widgets are explicily set transparent for the desktop, so they don't have to theme it back out again for the desktop icon view. They've had a lot of issue with widgets that draw their color on the desktop, making Nautilus very tricky to theme.

Wonder if I should fork Nautilus with the same patch, it would solve their problem...

@lukefromdc
Member

Here's what GNOME just did for Nautius, and yes, it leaves the white scrollbar tops in list views when dropped into my theme. Those are also visible in Adwaita, though the difference is faint there. They said they got a white window "by luck" into now.

.nautilus-window notebook,
.nautilus-window notebook > stack {
    background: white;
}

This does have the advantage for them that these widgets are explicily set transparent for the desktop, so they don't have to theme it back out again for the desktop icon view. They've had a lot of issue with widgets that draw their color on the desktop, making Nautilus very tricky to theme.

Just submitted this PR for Nautilus since they are now using a workaround that only helps Adwaita:

GNOME/nautilus#12

@raveit65
Member

You're right, i was a bit confused that the bg color was fine with blue-submarine out of box, without porting mate-applications.css to 3.20.
Of course with your commit the setting for .view in gtk-widget.css will apply to caja.
Sorry for that noise.

@raveit65
Member

I' ve add more style classes and css names to code:
mate-media --> css name GvcMixerDialog
eom & atril --> css name EggToolbarEditor
atril --> atril-window style class at top level
eom --> eom-window style class at top level
mate-terminal --> mate-terminal style class at top level
pluma --> style class pluma-window and pluma-print-preview
caja --> style class caja-property-browser
mate-panel --> style class wnck-pager
mate-panel --> css names MatePanelAppletFrameDBus, PanelSeparator and PanelToplevel

@raveit65
Member

Well, i finished porting Blue-Submarine for now, i think most stuff works now with gtk+-3.19.10.
I expect more adjustments until gtk+ is stable or later, but B-S is good at this point.
So, my question, should i sync Green-Submarine with Blue-Submarine, or do you want to maintain Green-Submarine as independent theme ?
I don't want to break your nice work.
Maybe you want to mantain BlackMate which will help me a lot and we let B-S and G-S as sister themes only different in colors?
I will start now with porting TraditionalOk (clearlooks).
Anyway, thanks for your help here and in other packages.

@lukefromdc
Member

Go ahead and sync it up, I've got my hands full mantaining one theme and a whole
bunch of Debian packages that are published on Archive. It will be easier to mantain
the two themes if they are based on the same code, and my version has gotten a
little old.

BlackMATE I should be able to handle, though since I only do work other than
theme work in my own theme I will need to get reports of issues with it. I will go
over it for any obvious issues with the current GTK 3.19 and again at release of 3.20.

On 2/26/2016 at 5:07 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

Well, i'm finished with porting Blue-Submarine for now, ithink
most stuff works now with gtk+-3.19.10.
I expect more adjustments until gtk+ is stable or later, but B-S
is good now.
So, my question, should i sync Green-Submarine with Blue-
Submarine, or do you want to maintain Green-Submarine as
independent theme ?
I don't want to break your nice work.
Maybe you want to mantain BlackMate which will help me a lot and
we let B-S and G-S as sister themes only different in colors?
I will start now with porting TraditionalOk (clearlooks).
Anyway, thanks for your help here and in other packages.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-189503716

@lukefromdc
Member

Ugly breakage to scrollbars and scales sliders today (2-29-2016) caused by a very late sequence change to gtk3.19.10 from git master. Lots of work to fix in first my theme, then BlackMATE. Results at
https://github.com/lukefromdc/mate-themes/tree/BlackMATE-gtk3.20

Mostly works except that arrows on scrollbars (not used in Adwaita) point the wrong way. Fixed that in my own theme with force-loaded icons on the buttons but should be able to revert it if GNOME fixes that bug. Had to leave that out of BlackMATE after github didn't take the svg images for it.

To raveit65: Blue-Submarine et all now need more work as soon as you get this update, you may have to wait a while for it if not building gtk3.19 yourself, may WANT to wait a while in case more of this bullshit is coming down the line. Many more items concerning sliders and troughs needed to have min-width and min-height explicitly set and background handling also changed. Bunch of scale, range, and "gadget" changes that should have been done much earlier as GTK3.20 is getting close to release time!

@raveit65
Member
raveit65 commented Mar 1, 2016

Well, as expected damage.inc breaks more stuff which they dont use for their own theme.
I noticed that GtkArrow is gone in several places, ie. menuitems.
If you want use symbolic arrows you can use first - last-child logic to terminate the scrollbar button.
Ie. scrollbar.vertical button:first-child --> top button
scrollbar.vertical button:last-child --> bottom button

BlackMATE I should be able to handle, though since I only do work other than theme work in my own theme I will need to get reports of issues with it.

Thank you, i will ask Clem or Stefano to give you commit rights for mate- themes.
Than you should receive a mail if someone report a issue and you can commit directly.

@raveit65
Member
raveit65 commented Mar 1, 2016

Upps, i see you use scrollbar.vertical button.up/down

@lukefromdc
Member

I actually HAD to do that, because I found GTK using up and down for left and right scrollbar buttons too. This is probably a GTK bug, and probably related to the arrows pointing the wrong way. I had to force a temporary solution in my own them and this is part of how I did it. Thanks for allowing me to work on BlackMATE directly, it will make things easier.

@raveit65
Member
raveit65 commented Mar 1, 2016

You're welcome,
....not only for mate-themes, you're member of artwork-maintainer team
https://github.com/orgs/mate-desktop/teams/artwork-maintainers
which include also access to icon-themes.
Maybe you visit us as mate-dev irc chanel at freenode.

@raveit65
Member
raveit65 commented Mar 1, 2016

I forgot to say, please keep 3.20 branch in sync with master.
Because we create tarballs not from master.
I created branches for every gtk+ version, which is the only way to handle the differents.
For this reason i mention in every commit header if a commit is only good for a specific gtk+ version.
If a commit is good for all branches than feel free to cherry-pick them to all branches (include master).
Syncing is easy with the git cherry-pick command.

  1. 'git clone git@github.com:mate-desktop/mate-themes.git'
  2. 'git log' , which gives you the commit id.
  3. 'git checkout gtk3.20' , to switch to 3.20 branch
  4. git cherry-pick command-id , from the commit from master shown by git log
  5. 'git push' , if all is fine.

That's all......feel free to ask me if you need help with git.
If you add an image or any other file, you need to add it to the Makefile.am file in folder,
otherwise the file won't get in the tarball.
But i can do that for you, np, only inform me.

@lukefromdc
Member

For some reason #106 to sync up GTk 3.20 with master cannot be auto merged. I don't have the bandwidth available where I am sitting right now (at home) to clone the repo thus cannot use the command line instructions. I will clone it sometime when I am on the road and can use wifi. I don't have a landline at home at all. All changes are to BlackMATE only but there is a conflict somewhere.

@raveit65
Member
raveit65 commented Mar 1, 2016

Ok, i will look into it , np

@raveit65
Member
raveit65 commented Mar 1, 2016

Ok, all cherry-picked to 3.20 branch, hope i did not forget something.
I 've no clue why some commit didn't clean apply, i guess it comes from the PR.
The order of the commits are different but the context should be the same, please check this.
Anyways, i suggest to work directly on the upstream repo to avoid using PRs and having the merge commits when you update your githup repo with upstream repo.
Normal i use PRs only if i make a bunch of changes which are critical and i want that other people test this, ie. caja desktop flash fix PR.
But this should not be needed for themes.

A hint, before you change and commit something use 'git pull' to keep you local repo up to date, to avoid a resulting merge commit.
And simply cherry-pick one commit to another branch before you commit more, this makes it simple.
Git-gui is a nice GUI to work on git repos, very useful for the beginning.

Don't worry, you will learn that....everything is fine 😄

@lukefromdc
Member

At least I've now got the local repo to work with

On 3/1/2016 at 5:28 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

Ok, all cherry-picked to 3.20 branch, hope i did not forget
something.
I 've no clue why some commit didn't clean apply, i guess it comes
from the PR.
The order of the commits are different but the context should be
the same, please check this.
Anyways, i suggest to work directly on the upstream repo to avoid
using PRs and having the merge commits when you update your githup
repo with upstream repo.
Normal i use PRs only if i make a bunch of changes which are
critical and i want that other people test this, ie. caja desktop
flash fix PR.
But this should not be needed for themes.

A hint, before you change and commit something use 'git pull' to
keep you local repo up to date, to avoid a resulting merge commit.
And simply cherry-pick one commit to another branch before you
commit more, this makes it simple.
Git-gui is a nice GUI to work on git repos, very useful for the
beginning.

Don't worry, you will learn that....everything is fine 😄


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-190935178

@raveit65
Member
raveit65 commented Mar 5, 2016

gtk+-3.19.11 was landed in fedora 24 and could fix notebooks, srollbars, scales and spinbuttons in Submarine themes.
But GtkSale and GtkColorScale is a little bit weird, without using margins and paddings you see no sliders, here i expect more changes from gtk+.

@lukefromdc
Member

You have to use the min-width and min-height CSS properties to make more and
more widgets show up, as they increasingly default to zero and disappear.

On 3/5/2016 at 7:49 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

gtk+-3.19.11 was landed in fedora 24 and could fix notebooks,
srollbars, scales and spinbuttons in Submarine themes.
But GtkSale and GtkColorScale is a little bit weird, without using
margins and paddings you see no sliders, here i expect more
changes from gtk+.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-192638929

@raveit65
Member
raveit65 commented Mar 5, 2016

I did 😄
All that padding/margin hell comes from gtk+ upstream.
https://git.gnome.org/browse/gtk+/tree/gtk/theme/Adwaita/gtk-contained.css#n2708

@raveit65
Member
raveit65 commented Mar 6, 2016

As workaround for mate-terminal issue i set a min height/width for the vbox at top level.
I did that for all themes.
I hope you agree with me to do that with BlackMATE ;)
I think we should add a prefered height/width directly in mate-terminal code.

@lukefromdc
Member

I most certainly DO agree with that and will add it right away to my own theme
as well. This issue with the terminal has been a serious nuisance to me but I've
been busy with other issues and other things.

On 3/6/2016 at 12:01 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

As workaround for mate-terminal issue i set a min height/width for
the vbox at top level.
I did that for all themes.
I hope you agree with me to do that with BlackMATE ;)
I think we should add a prefered height/width directly in mate-
terminal code.


Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-192934319

@monsta
Member
monsta commented Mar 10, 2016

@lukefromdc: BTW, if you wish, you can change your status to "Public" on https://github.com/orgs/mate-desktop/people page, and it will be indicated in your public GitHub profile 😄

@lukefromdc
Member

Just fixed a bug on where Cpufreq-applet labels came up incomplete in BlackMATE in the GTK 3.14, GTK3.16, GTK 3.18, and master branches. Same fix also fixed the panel rendering 1px above the bottom of the screen. In Master also fixed jumping buttons, and matched the tasklist buttons to the GTK 3.18 behavior with the current panel.

Only thing is, the GTK 3.20 branch is far enough out of sync with master that it could not be automatically merged. I still can't log in over the terminal, do you want to deal with this or for me to manually update mate-applications.css in the GTK 3.20 branch?

@raveit65
Member

In gtk+-3.20 branch, try
'git cherry-pick commit-id'
commit-id = the commit you want to pick from master (or any other branch),
than 'git push'.
The commit-id you get with 'git log' in master branch.
This is how i work with master and gtk-3.20 branch and should work.
The merge command try to sync all commits between both branches.
With cherry-pick only one commit goes into the other branch.
And yes, i know for some reasons both branches have differences,.....dunno why...to much commits.
Let me know if it does not work , than i can help out.

@raveit65
Member

Btw, i will try so sync the branches if i have a bit free time

@lukefromdc
Member

The error I get is not being recognized by the remote-I cannot log in over the
terminal at all. As is usual throughout Linux, the GUI used by the website
is rather limited in what it can do.

On 3/30/2016 at 6:03 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

In gtk+-3.20 branch, try
'git cherry-pick commit-id'
commit-id = the commit you want to pick from master (or any other
branch),
than 'git push'.
The commit-id you get with 'git log' in master branch.
This is how i work with master and gtk-3.20 branch and should work.
The merge command try to sync all commits between both branches.
With cherry-pick only one commit goes into the other branch.
And yes, i know for some reasons both branches have
differences,.....dunno why...to much commits.
Let me know if it does not work , than i can help out.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-203658365

@raveit65
Member

Done.

[rave@mother mate-themes]$ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
[rave@mother mate-themes]$ git log
commit 6ea810a2f9442eb929b8d455593ad99f0679b118
Author: lukefromdc <lukefromdc@hushmail.com>
Date:   Wed Mar 30 17:22:19 2016 -0400

    GTK 3.20 correct for recent mate-panel changes

    Fix cpufreq applet unit labels not showing up when panel restarted-must use 0px padding
    Fix panel rendering 1px above bottom of screen-must use padding 0px as panel default
    BlackMATE is one of the few themes using a non-zero default padding value, I had to fix some wierd bugs in the panel with all GTK versions

    GTK 3-20 specific fixes:
    Stop jumping panel buttons
    Match tasklist and calendar buttons to  GTK 3.16 and 3.18  results with current panel versions, highlight only active/checked window's button

commit 177c67e0896e6cf7ac9822a60a3ccbd9ace00778
Author: raveit65 <chat-to-me@raveit.de>
Date:   Sun Mar 27 18:00:49 2016 +0200

    ship a HighContrast metacity-theme-1.xml

commit 27472adb8e7a74f12b7a99a86dc03d1ede84865c
Author: raveit65 <chat-to-me@raveit.de>
Date:   Wed Mar 30 14:16:50 2016 +0200

    drop ContrastHigh theme, gtk+ ship that already

commit f2349e078cdddc4f0fc04d1ed4942d48bdb4e3bb
Author: raveit65 <chat-to-me@raveit.de>
Date:   Mon Mar 28 12:40:26 2016 +0200

    fix POTFILES.in

commit 406802bc6f8939415ffc51a429aab948ce216571
[rave@mother mate-themes]$ git checkout gtk3.20 
Switched to branch 'gtk3.20'
Your branch is up-to-date with 'origin/gtk3.20'.
[rave@mother mate-themes]$ git cherry-pick 6ea810a2f9442eb929b8d455593ad99f0679b118
[gtk3.20 2663ab9] GTK 3.20 correct for recent mate-panel changes
 Author: lukefromdc <lukefromdc@hushmail.com>
 Date: Wed Mar 30 17:22:19 2016 -0400
 1 file changed, 29 insertions(+), 32 deletions(-)
[rave@mother mate-themes]$ git push
Counting objects: 6, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 1.14 KiB | 0 bytes/s, done.
Total 6 (delta 5), reused 0 (delta 0)
To git@github.com:mate-desktop/mate-themes.git
   b540f5d..2663ab9  gtk3.20 -> gtk3.20
[rave@mother mate-themes]$ 

😄

@raveit65
Member

I use a ssh key in my git configuration, so i don't need to login from panel.
Anyways, commit on master, give me a notice and i will cherry-pick the commits to gtk-3.20 branch.
Np, i'm very happy that you maintain BlackMate.

@raveit65 raveit65 changed the title from port to gtk+-3.20 to theme dev talk Apr 1, 2016
@raveit65
Member
raveit65 commented Apr 1, 2016

I've renamed this topic as port to gtk+-3.20 is mainly done and on 100% in our roadmap.
http://wiki.mate-desktop.org/roadmap
So we can use this topic to communicate.
Only port of GreenLaguna is missing but i'm to tired now after all this action to start with this theme.
I added a configure flag (default =disable) for this theme for 3.20 and master branch.
Maybe i will find my motivation again to port it or it will be dropped in future.

@raveit65
Member
raveit65 commented Apr 1, 2016

@lukefromdc
Hi Luke,
i create a diff between master and 3.20 branch.
Most differences are in BlackMate, can you pls take a look into it?
https://dl.dropboxusercontent.com/u/49862637/Mate-desktop/Bugs/diff-matethemes.patch
I will fix the few po files which differ.
This should be the course of the merge problem.

@raveit65
Member
raveit65 commented Apr 1, 2016

well, i guess master branch have the right settings ;)

@raveit65
Member
raveit65 commented Apr 1, 2016

this commit was missing in3.20 branch
f9800e9
I cherry-picked it, hope that i didn't break anything.
Now only mate-application and other-applications differs.
Looks like another commit is missing.

@raveit65
Member
raveit65 commented Apr 1, 2016

Hmm, the changes are here
a1dedb7
but i can't cherry-pick the commit because this will change other files.
So we need to fix those files with a new commit.
This means the branches are same but differ from commits, in result a merge is not possible anymore.
But i see no other solution.
So i leave that for you. Please fix those files and do a new commit on 3.20 branch for this.

@lukefromdc
Member

I can fix this manually by simply replacing the text of each .css file
in BlackMATE with that of the same text from the files in master
from the website if that is OK by you.

On 4/1/2016 at 1:12 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

@lukefromdc
Hi Luke,
i create a diff between master and 3.20 branch.
Most differences are in BlackMate, can you pls take a look into it?
https://dl.dropboxusercontent.com/u/49862637/Mate-
desktop/Bugs/diff-matethemes.patch
I will fix the few po files which differ.
This should be the course of the merge problem.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-204474864

@raveit65
Member
raveit65 commented Apr 1, 2016

sure :)

@lukefromdc
Member

Two missing BlackMATE commits found, fixed by manual file edit, followed
by merge from Master.

On 4/1/2016 at 4:25 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

sure :)


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-204555590

@raveit65
Member
raveit65 commented Apr 1, 2016

Fine master and gtk+-3.20 is in sync :)
Btw. i plan to do a new release in 10 days or so, to have a new tarball for fedora beta release.

@raveit65
Member
raveit65 commented Apr 2, 2016

You don't like to use the mate logo for spinner animation for BlackMate?
See, other themes how it works.

@raveit65
Member
raveit65 commented Apr 2, 2016

And there is a double image on close button from CSD applications.
Should i adjust window-controls.css for 3.20?

@lukefromdc
Member

Go for it

On 4/2/2016 at 5:44 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

And there is a double image on close button from CSD applications.
Should i adjust window-controls.css for 3.20?


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-204682941

@lukefromdc
Member

More likely I was just using something I knew to work, not a matter of
not liking something. Probably I didn't know that was even used in an
older version. If you want to change it that's fine by me and a rather
nice touch for it. Spinner code is one of those things that GTK tends
to change from version to version.

On 4/2/2016 at 5:37 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

You don't like to use the mate logo for spinner animation for
BlackMate?
See, other themes how it works.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-204682640

@raveit65
Member
raveit65 commented Apr 2, 2016

More likely I was just using something I knew to work, not a matter of
not liking something. Probably I didn't know that was even used in an
older version. If you want to change it that's fine by me and a rather
nice touch for it. Spinner code is one of those things that GTK tends
to change from version to version.

yeah, spinner settings are changed, like everything :)
Ok, i will adjust those settings, i did that for the other themes already.
The idea was to use a symbolic icon from mate-icon-theme with the logo.
Because the mate logo is round, it is a perfect gimmick.

@raveit65
Member
raveit65 commented Apr 3, 2016

@lukefromdc
Here are some improvements for CSD settings.
https://dl.dropboxusercontent.com/u/49862637/Mate-desktop/Bugs/blackmate_csd.patch

  • using border radius 0px for solid-csd (w/o compositor) fixes the black corners from csd windows, which comes from shadows. (gtk+ or marco issue)
  • border color is the same like for other windows
  • missing selector messagedialog.csd
  • settings for backdrop state, testable in cinnamon.
  • new deprecation GtkComboBox-shadow-type which spams the terminal, i don't know if there is an replacement for it.
@lukefromdc
Member

Black corners in CSD issues don't occur with composition enabled in Marco, and
I use a patched version of compiz to eliminate it. Ubuntu refuses to apply the
patch to permit Compiz to be recognized by GTK as a compositor because it
creates a gap with tiled windows unless the theme sets the margin (and not the
box shadow apparently) to zero for a tiled window. I never use tiling, so for me the
patch is essential to my compiz builds.

Speaking of patches, will apply yours to BlackMATE

On 4/3/2016 at 11:24 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

@lukefromdc
Here are some improvements for CSD settings.
https://dl.dropboxusercontent.com/u/49862637/Mate-
desktop/Bugs/blackmate_csd.patch

  • using border radius 0px for solid-csd (w/o compositor) fixes the
    black corners from csd windows, which comes from shadows. (gtk+ or
    marco issue)
  • border color is the same like for other windows
  • missing selector messagedialog.csd
  • settings for backdrop state, testable in cinnamon.
  • new deprecation GtkComboBox-shadow-type which spams the
    terminal, i don't know if there is an replacement for it.

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-204995210

@lukefromdc
Member

Apparently one of the GTK 3.20 changes was that box shadows now control their own
space around the window, independent of the margin setting. I am hoping to hardcode
non-shadowed/1px margin CSD windows into compiz so Ubuntu can upstream Albert's
patch. It will have to use both the GTK 3.18 AND the GTK 3.20 selectors, letting the
unused ones silently be ignored.

On 4/3/2016 at 11:24 AM, "Wolfgang Ulbrich" notifications@github.com wrote:

@lukefromdc
Here are some improvements for CSD settings.
https://dl.dropboxusercontent.com/u/49862637/Mate-
desktop/Bugs/blackmate_csd.patch

  • using border radius 0px for solid-csd (w/o compositor) fixes the
    black corners from csd windows, which comes from shadows. (gtk+ or
    marco issue)
  • border color is the same like for other windows
  • missing selector messagedialog.csd
  • settings for backdrop state, testable in cinnamon.
  • new deprecation GtkComboBox-shadow-type which spams the
    terminal, i don't know if there is an replacement for it.

You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-204995210

@raveit65
Member
raveit65 commented Apr 9, 2016

I added a new style class for the lock-screen.
mate-desktop/mate-screensaver@e3d8ca4
See, latest git changes for examples.
Gtk3-inspector does not start on lock-screen.

@lukefromdc
Member

I've yet to build or install mate-screensaver as I use full disk
encryption rather than lock screens.

On 4/9/2016 at 5:00 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

I added a new style class for the lock-screen.
https://github.com/mate-desktop/mate-
screensaver/commit/e3d8ca494335bcea1aa776614ed17c75012e1f2b
See, latest git changes for examples.
Gtk3-inspector does not start on lock-screen.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-207853692

@raveit65
Member
raveit65 commented Apr 9, 2016

Ok, i will add some settings for BlackMate.

@lukefromdc
Member

Thanks, I appereciate that as I am in a very busy weekend right
now with another matter.

On 4/9/2016 at 6:38 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

Ok, i will add some settings for BlackMate.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-207866877

@raveit65
Member

Hi,
i re-created 3.20 branch from master because there was some double commits.
I don't know exactly why this could happen, but for the future i suggest not to merge master in 3.20 branch or or the other way around.
I will cherry-pick your changes between both branches, so commit only on one branch from them.
I suggest also to delete you repo and fork it new to have a new clean copy.

Thanks,
Wolfgang

@lukefromdc
Member

Good idea, I'tt take care of that and will commit to Master by default.

On 4/10/2016 at 4:50 PM, "Wolfgang Ulbrich" notifications@github.com wrote:

Hi,
i re-created 3.20 branch from master because there was some double
commits.
I don't know exactly why this could happen, but for the future i
suggest not to merge master in 3.20 branch or or the other way
around.
I will cherry-pick your changes between both branches, so commit
only on one branch from them.
I suggest also to delete you repo and fork it new to have a new
clean copy.

Thanks,
Wolfgang


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-208068612

@raveit65
Member

Do you understand what the user means with 'glitches' in other gtk+-3.20 report?

@lukefromdc
Member

Not really, but looks like he had trouble with the theme going to the wrong directory and with video drivers.

@lukefromdc
Member

Just found Libreoffice has issues over GTK 3.20 with ALL themes, Adwaita included. Custom widgets again almost for sure, don't know their porting status. At least with 3.20 in Debian Experimental right now, Debian will soon be building over GTK 3.20 in Unstable so their theme support code will get built.
More details at #92 which was reported against BlackMATE, I added a comment at the bottom after finding EVERY theme killed either the menus or else one column in the "Options/Application Colors" window,which I had never opened before. The menus are fine in dark themes, they look like BlackMATE or my own theme even in the Submarine themes. Libreoffice says they support Firefox themes, so they will probably always theme differently then most apps/

@raveit65
Member

Well, the libreoffice gtk2 version was well known for issues with dark themes.
I recall that i tried to fix something there some years ago, but i was impossible because because if you change something you change it in another place too.
Also they hardcoded some stuff, same as firefox.
The fact that they blocked gtk3-inspector too makes it impossible to support them.
How should i found out which selector i have to use?
And using try and error or copying parts of another theme which works in the theme cost to much time for people who get not paid for this.

@lukefromdc
Member

Heads up: first breakage in GTk 3.21 already-commit below breaks setting fonts in Pluma and in themes, causing them to render 5 sizes smaller than before. Setting them in pts for 3.21 works but doesn't work right in 3.20, ballooning them 5 sizes larger. Will see if this gets debugged or sticks around.

https://git.gnome.org/browse/gtk+/commit/?id=df08fc91bdc1d2e4c866122304fabe4dd298a7de

css: always get default font size in pixels
Fixes a couple bugs...

  • Pixel font sizes in css would render as point sizes.
  • For em font sizes, where the parent size was set and not default, we would
    incorrectly convert a pixel value from points to pixels.

We'll always grab the default font size in pixels so we don't keep confusing
things.

Worth noting that gtk css font-size will still behave differently than the
web. Pango interprets font-size differently.

@raveit65
Member

Good to know.
personal i won't install fedora rawhide before f24 release in june, so this is really future music for me.
But i can create a gtk-3.22 branch for m-t if you like.

@lukefromdc
Member

Good idea, we need to get ahead of this. So far I found breakage where a
theme specifies a font size, only got that in my own theme. Also found
breakage in Pluma, not sure how to fix that, probably there will be a Gedit
commit sometime that tells how to do this.

On 4/18/2016 at 7:51 PM, "NO NAME" notifications@github.com wrote:

Good to know.
personal i won't install fedora rawhide before f24 release in
june, so this is really future music for me.
But i can create a gtk-3.22 branch for m-t if you like.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-211636766

@raveit65
Member

Found a nice page for style selectors conversion.
https://wiki.gnome.org/Projects/GTK%2B/StyleClasses

@raveit65
Member
raveit65 commented Apr 26, 2016 edited

Menus in BlackMate needs a bit love ;)
There is a conflict with using a vertical background-image for menu and menuitem:hover.
Probably a gtk+ bug.
You can solve that with using horizontal direction for menu, after that it's possible to enable the transition effect for menuitem again.
Ie.

 menu,
 menubar  menu,
 menuitem  menu {
    background-color: shade(@theme_selected_bg_color, 0.8);
    background-image: linear-gradient(to left,
                                      @theme_selected_bg_color,
                                      shade(@theme_selected_bg_color, 0.5));
    border-style: none;
    border-width: 0px;
    border-radius: 0;
    padding: 1px;
}

Also i would use background-image and border-image: none for disabled state.
And menu arrows aren't visible.
There are wrong selectors in css, ie osd.and others.
For OSD we use .osd button and button.osd.
This is testable with gnome-weather or parole mediaplayer from xfce.

@raveit65
Member

Btw. i can fix that stuff if you agree.

@lukefromdc
Member

Go for it, I have no experience working with transitions. BTW, I've finally
got Firefox with GTK 3.20, pretty in my theme with a couple bugs:
sliders same color as trough, and I get bare checks for the checkboxes with
the usual theme ignored-in ALL themes.

One thing that helped my theme a lot in Firefox: a border around sliders will
make them visible in Firefox and a lot easier to use. In fact, of all themes I
have mine works best in FF-GTK3 even though it got no adjustments for it,
due to the slider issue.

On 4/26/2016 at 6:29 AM, "NO NAME" notifications@github.com wrote:

Btw. i can fix that stuff if you agree.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-214696455

@lukefromdc
Member

Someone on Phoronix linked to this article with a CSS file for Firefox that fixes invisible checkboxes etc on Firefox GTK 3 with dark themes and GTK 3.20:

http://forums.fedoraforum.org/showthread.php?t=304493

@raveit65
Member

The solution is simple, firefox use a mix of old and new theme syntax.
menu menuitem .radio
menu menuitem .check
I fixed this for Menta themes and BlackMate.

@raveit65
Member

btw. are there check and radio boxes at other places?

@raveit65
Member

And here is the explanation of it.
https://developer.gnome.org/gtk3/stable/GtkRadioButton.html#id-1.3.9.4.10.9
A GtkRadioButton without indicator changes the name of its main node to button and adds a .radio style class to it

@lukefromdc
Member

Check and radio boxes also appear in website content and in extension preference dialogs (notably NoScript). Used this code to fix them in my theme, had to split them out from two-part animated checkboxes used elsewhere as a background image can't be used under them in Firefox:

/*for Firefox (FIXME-will this cause unwanted matches?*/
.check:checked  {
    -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked.svg")); 
}

.check:checked:hover,
.check:active:hover  {
    -gtk-icon-source: -gtk-scaled(url("assets/checkbox-checked-glow.svg")); 
}

.radio:checked {
    -gtk-icon-source: -gtk-scaled(url("assets/radio-checked.svg"));
}

.button {
    border-image: url("assets/button-border-dark.svg") 3 / 3px stretch;
}

Got simliar results fixing scrollbars with .slider, now working on many other theme elements. When I get this done, I will then do the same for BlackMATE, and this will be a guide for fixing these in other themes

@raveit65
Member

Why .check:active:hover ?
I think this is a remnant from state conversion with gtk+-3.14.
and a hover:active state don't exists for check and radio.
I used only checked:hover in last commits.

@lukefromdc
Member

Simply copied from what I had been using before, the way many themes
evolve. It has not had a rewrite from scratch since GTK 3.12 when it was
rebased by modifying a different theme than before.

On 4/27/2016 at 3:56 PM, "NO NAME" notifications@github.com wrote:

Why .check:active:hover ?
I think this is a remnant from state conversion with gtk+-3.14.
and a hover:active state don't exists for check and radio.
I used only checked:hover in last commits.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-215209106

@lukefromdc
Member
lukefromdc commented Apr 27, 2016 edited

I just uploaded the updated version of UbuntuStudio_Legacy with support for GTK3 Firefox to my usual Archive repo at:

https://archive.org/download/DebianPackagesForMate-desktopWityGtk3AndCustomPanelTheme/gtk-theme-ubuntustudio-legacy-3.21.1git20160504-1_all.deb

When it is superseded and moved into Old_Versions the above link will break but the package will remain available in

https://archive.org/download/DebianPackagesForMate-desktopWityGtk3AndCustomPanelTheme/Old_versions

I would put this stuff on Github but I do not know how to set up makefiles for the normal build system, I might put it there anyway with an INSTALL file explaining that it is only necessary to copy the whole directory into /usr/share/themes and set the correct permissions.

@raveit65
Member

@monsta
Can you please give Luke a hint how to create a make file?

@monsta
Member
monsta commented Apr 28, 2016

I can try, but I don't know what should be built with it 😄

@lukefromdc
Member

The mate-themes include a makefile that guides the installation process.
No binaries are built, but some files get like index.theme get made from
files like index.theme.in, probably for localization reasons.

Without that, "make install" can't install the theme files, and more importantly
the packaging tools used by distros like Debian also break

On 4/28/2016 at 6:36 AM, "monsta" notifications@github.com wrote:

I can try, but I don't know what should be built with it 😄


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-215381619

@lukefromdc
Member
lukefromdc commented Apr 29, 2016 edited

I just found out why Yelp(help browser) is so hard to theme. Everything in the view contained in it gets hardcoded colors calculated from the base color, the text color-and indirectly from the link color. Yelp makes a temporary link button and uses it's style context to get the color for the text in the (usually)blue box. NOTHING else can theme it, as the application overrides the GTK defaults.

Works OK in all the MATE themes as it stands, though in Green-Submarine-the text in the inner box (blue in most themes) is too bright and could use some darkening as described below. On the other hand, I was getting white text in the light blue box in Ubuntustudio_Legacy. Until GNOME fixed a bunch of style context warnings I got the selected bg color on yelp and at least everything was readable. When that was fixed for 3.20 I had to do some digging. I found it uses the fg color set on a link button, but NOT the color set on a label on a link button, which is what you actually see on a link button! On a theme with dark backgrounds but light views, this will default to a light color and make Yelp nearly unusable unless you know where to fix it.

I set a "fake" link button color just for Yelp, which uses the fg color of the link button itself, then set the color for the label on a real link button to another, lighter value and everything worked. I get the link button labels I want, yet Yelp gets the darker color. For some reason color inheritance often fails for child widgets, but just in case it decided to work after an update, I themed button.link.text-button first, then themed button.link.text-button label, button.link label directly underneath it.

I learned all this digging through Yelp source code with the intention of fixing it there and forking it to my account, then submitting a PR that GNOME would be sure to ignore. Found it could be fixed in themes-and quite independently of what you really want to put on a real link button due to this phony style context. Needless to say, I never saw any documentation of this wierdness.

@lukefromdc
Member

Has anyone found a selector that works for the Firefox history menu that looks like a popover but ignores popover, .popover, .modelbutton, .menuitem etc?

@raveit65
Member
raveit65 commented May 2, 2016

The mate-themes include a makefile that guides the installation process. No binaries are built, but some files get like index.theme get made from files like index.theme.in, probably for localization reasons. Without that, "make install" can't install the theme files, and more importantly the packaging tools used by distros like Debian also break

You can try to use obsolete mate-themes-extras as template which is more simple and use index.theme files directly.
https://github.com/raveit65/mate-themes-extras
Every Makefile.am in directories is mentioned in configure.ac.
So, for one theme you don't need the dir desktop-themes, this you need to correct in configure.ac.
I suggest to upload your theme to github and i can help your there with a PR.

@raveit65
Member
raveit65 commented May 2, 2016

Has anyone found a selector that works for the Firefox history menu that looks like a popover but ignores popover, .popover, .modelbutton, .menuitem etc?

I guess you mean the context menu from * address bar*. Looks like a combobox for me, or old comboxentry which is dropped with 3.20.

@lukefromdc
Member

Yes, tthat's the one: the history menu from the ittle clock icon on the
toolbar that also includes the address entry(which does not follow the
entry theme).

On 5/2/2016 at 2:11 PM, "NO NAME" notifications@github.com wrote:

Has anyone found a selector that works for the Firefox history
menu that looks like a popover but ignores popover, .popover,
.modelbutton, .menuitem etc?

I guess you mean the context menu from * address bar*. Looks
like a combobox for me, or old comboxentry which is dropped with
3.20.


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-216314840

@raveit65
Member
raveit65 commented May 2, 2016 edited

Yes, tthat's the one: the history menu from the ittle clock icon on the toolbar that also includes the address entry(which does not follow the entry theme).

bildschirmfoto zu 2016-05-02 20-43-06
That one?
Looks like a dialog window.
........wtf......unusable with submarine themes.....

@lukefromdc
Member

That's ANOTHER one, and again the hovered item ignores the theme
except for using the color specified for that state. The one I was speaking
of is the "menu" made by clicking on the "clock" toolbar icon, one item
in which is "show all history" from which the dialog is launched.

On 5/2/2016 at 2:45 PM, "NO NAME" notifications@github.com wrote:

Yes, tthat's the one: the history menu from the ittle clock icon
on the toolbar that also includes the address entry(which does not
follow the entry theme).
![bildschirmfoto zu 2016-05-02 20-43-
06](https://cloud.githubusercontent.com/assets/961604/14964004/b673
2f26-10a6-11e6-87f7-eaeeecc821a5.png)
That one?
Looks like a dialog window.
........wtf......unusable with submarine themes.....


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-216324616

@raveit65
Member
raveit65 commented May 2, 2016

OK, got it :)
I didn't add the clock icon for history to menus here.
And yes this looks like a popup and isn't styled by ie. submarine themes.
...firefox is a mess.

@raveit65
Member
raveit65 commented May 2, 2016 edited
@lukefromdc
Member

As usual, the popover css node style is ignored in Firefox, and no
.popover style class is being set. It's supposed to get .menu but that
too is ignored with Firefox.

.menu:hover .menu menuitem:hover and even .menu *:hover are all
ignored

On 5/2/2016 at 3:25 PM, "NO NAME" notifications@github.com wrote:

Maybe you find a hind here
https://developer.gnome.org/gtk3/stable/GtkPopover.html


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/mate-desktop/mate-
themes/issues/101#issuecomment-216336038

@lukefromdc
Member
lukefromdc commented May 3, 2016 edited

I just added https://github.com/lukefromdc/gtk-theme-ubuntustudio-legacy to my repo containing the "UbuntuStudio_Legacy" GTK theme, which is an otherwise medium dark theme with white views.
Will work in GTK 3.14 through GTK 3.20 and in GTK 3.21 as of today's version due to versioned subdirectories.

For now no MakeFiles are present as I have yet to figure them out, but it can be installed by simply dragging the entire directory into /usr/share/themes and setting the permissions correctly.

Found these directions for getting around the GIT errors that had stopped me until now on StackOverflow:

git init
git config user.name "someone"
git config user.email "someone@someplace.com"
git add *
git commit -m "some init msg"

I hope the fact that the original UbuntuStudio theme was published under Creative Commons Attribution-ShareAlike 2.5 License Agreement and the later themes used to get things working under GPL v3 does not create compatablity issues that prevent redistribution by MATE or on Github. I have little understanding of that sort of thing and NO ability to resolve it beyond asking the UbuntuStudio development email list if anyone objects. I will continue to use the theme myself with or without redistributability.

Due to contributions from others under two different licenses I dual-licensed my own contributions (now the bulk of the code) under both licenses, but am NOT concerned about which license, any, or none my own contributions must be licensed under and have no objection to relicensing my own contributions. Very little is left of any of the GPLv3 themes I got help from, could resort to "fair use" for those cases if I need to relicense/dual license my own contributions. Public domain fine for my own part of the work. Most contributions from e17GTK are to GTK 3.18 and earlier, as GTK3.20 forced a radical rewrite.

@raveit65
Member
raveit65 commented May 3, 2016

Some questions:
For what you need the gtk-2.0-key dir?
'UbuntuStudio_Legacy' is the theme name and the name under /usr/share/themes/ ?
I'm not very good in license questions but here is a link to GPL.
https://www.gnu.org/licenses/licenses.en.html

@raveit65
Member
raveit65 commented May 3, 2016

I added the necessary make and configure files at the forked repo.
https://github.com/raveit65/gtk-theme-ubuntustudio-legacy
But i don't know how to handle the symlink 'assets' in make file.
The make command failed if i use it as folder or as file in make file.

@raveit65
Member
raveit65 commented May 3, 2016 edited

Done, feel free to ask me if you have questions.
Or visit us at irc freenode channel mate-dev

@raveit65
Member
raveit65 commented May 3, 2016 edited

Found these directions for getting around the GIT errors that had stopped me until now on StackOverflow:

git init
git config user.name "someone"
git config user.email "someone@someplace.com"
git add *
git commit -m "some init msg"

You should find now those settings in ~.gitconfig.
It's also possible to use a ssh key for connecting with github.
https://help.github.com/articles/generating-an-ssh-key/

@raveit65
Member
raveit65 commented May 3, 2016 edited

I forgot to tell, this is the explanation from gtk+ dev M.Clasen why we can't use gtk3-inspector for firefox.

<mclasen> raveit: GDK_BACKEND=x11 GTK_DEBUG=interactive firefox works here
<raveit65> mclasen, yes that works, but i can only select the main frame 'window.background widget'
<mclasen> raveit65: the toplevel may be all there is... firefox is not generally using gtk widgets, it just uses gtk for drawing
@lukefromdc
Member
lukefromdc commented May 3, 2016 edited

Thanks, I really appreciate this. Merged your changes back to my repo and got a successful buiild and install the same way I do the MATE themes, so that works. Debian package built and installed fine, it's at https://archive.org/details/DebianPackagesForMate-desktopWityGtk3AndCustomPanelTheme superseding previous versions due the the change to dual licensing my own contributions under both licenses used by others

As for the theme name, that's what I've always used in /usr/share/themes, didn't know of any other name to use. Future work might be to add a "blue" version with the original UbuntuStudio blue color and keep the "green" version in which case the internal names would have to reflect that. This would go well with the "Traditional" and "Submarine" themes which both have blue and green versions. I already have most of the needed image assets for this.

Bumped the version to 3.21.1 to match the maximum supported GTK version the way MATE themes are versioned-and because published versions on Archive had already reached 2.1.4 over the years. Versioning took over from UbuntuStudio's version 0.28 with an 0.3 back in March 2011 that was my first rough GTK3 port. New packages start with 0.1, but in this case that would have been UbuntuStudio's first theme experiments as this is a follow-on.

Next up: the UbuntuStudio-Legacy icon theme and more BlackMATE/Gedit experiments

@raveit65
Member
raveit65 commented May 4, 2016

I added a style class .tooltip to marco.
mate-desktop/marco@4ab26c4
Now min/max/menu/menu buttons are matched with that selector.

@raveit65
Member
raveit65 commented May 4, 2016

Et voila,
using .tooltip fixes firefox tooltips :)

@raveit65
Member
raveit65 commented May 4, 2016

Ok, i fixed that for BlackMATE too, feel free to adjust the settings.
I found out that tooltips match on .csd selector.

@lukefromdc
Member

Just found that GreenLaguna's window controls work in Gedit. The key is that GreenLaguna uses headerbar unconditionally, not headerbar.titlebar as the selector. I first themed all CSD controls in UbuntuStudio_Legacy to match SSD apps for the first time, then applied this to BlackMATE with
4a59477

@raveit65
Member
raveit65 commented May 5, 2016

I opened a new topic for communication.
#119

@raveit65 raveit65 closed this May 5, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment