jnsh / arc-theme

A flat theme with transparent elements (actively maintained fork)
GNU General Public License v3.0
900 stars 77 forks source link

Discussion: Fixing the metacity theme #142

Closed nathan818fr closed 2 years ago

nathan818fr commented 3 years ago

I use cinnamon, and the window manager (muffin) uses metacity ("metacity-theme-3.xml") to render the windows.

But there are really small inconsistencies with the gtk theme, which becomes a bit annoying when comparing metacity and gtk CSD windows:

Gtk CSD window: screenshot_2021-06-21_14-24-28

Metacity window: screenshot_2021-06-21_14-25-10

So I would like to propose an update of the metacity theme to fix these inconsistencies and make it match the gtk theme, is it ok?

I would like to take this opportunity to clean up the code and avoid duplication of files between the light and dark variants (by using configure_file() or maybe m4 to allow me to add conditions).

Also, it might be time to stop supporting "metacity-theme-1.xml"? It seem no longer used by current distributions and LTS. I'm going to investigate further to see exactly which software are still using it.

jnsh commented 3 years ago

I use cinnamon, and the window manager (muffin) uses metacity ("metacity-theme-3.xml") to render the windows.

But there are really small inconsistencies with the gtk theme, which becomes a bit annoying when comparing metacity and gtk CSD windows:

Instead of CSD windows, it would be more appropriate to use the server-side decorations from the GTK3 theme as the reference for metacity theme: Screenshot from 2021-06-28 14-42-57

* border-radius: 1px for metacity, vs 3px/4px (dark/light) for gtk

If you compare the corners between metacity and GTK3 decorations, they look pretty much identical apart from the missing 1px border in metacity. So, as long as the metacity theme doesn't have the border, the current corner radius is correct.

* borders: no borders for metacity, vs a 1px border around the window for gtk

My assumption is that there's been e.g. a technical limitation or some other issue that prevented the addition of the 1px border to metacity. However I haven't noticed this before and therefore not investigated further. The decorations would certainly look more consistent with the border, so I'd be happy to have it added, if it can be done without any issues.

While you're working on the metacity theme, one thing that should be fixed is the padding around the window buttons and title, so that they would match the GTK3 SSD. It would be great to have this finally fixed, if you have any interest in looking at it.

I would like to take this opportunity to clean up the code and avoid duplication of files between the light and dark variants (by using configure_file() or maybe m4 to allow me to add conditions).

I not sure if there's any nice way to implement this, and I don't think this would really be that beneficial either. After all, there are only two separate files, that shouldn't really need much modifications in the future either. I absolutely won't allow adding another build dependency for this.

Also, it might be time to stop supporting "metacity-theme-1.xml"? It seem no longer used by current distributions and LTS. I'm going to investigate further to see exactly which software are still using it.

I can't remember if it's still being used either, at least with the latest versions of any WM. However I don't think there's any big reasons to not support it. It doesn't require any constant maintenance, and doesn't take much disk space.

astier commented 2 years ago

This is something that has been bothering me for a long time. I especially would appreciate the black 1px-border.

jnsh commented 2 years ago

I've pushed number of updates for the metacity-theme-3.xml. These include adding border for dark/darker themes, and updating the rounded corner radius to be as close as possible with the GTK decorations.

Please let me know if you happen to notice any issues after these, or if there's anything else that could still be improved.

I also investigated whether the metacity-theme-1.xml and metacity-theme-2.xml could be deprecated. Looks like Marco (MATE window manager) has supported metacity-theme-3.xml at least since version 1.21.1. Muffin has supported v3 themes since the initial commit, and original Metacity at least since this commit.

Some LTS distributions are still using Marco 1.20.*, so the older theme versions could still be useful to some users, and I've decided not to remove them yet. However it didn't seem worth the effort to try to port the updates to metacity-theme-3.xml for the older versions.

Closing, as things discussed here are now addressed.