Bug 461593

Summary: Aurorae SVG doesn't seem to have the concept of "title bar"
Product: [Plasma] kwin Reporter: Kunshan Wang <wks1986>
Component: auroraeAssignee: KWin default assignee <kwin-bugs-null>
Status: REPORTED ---    
Severity: normal    
Priority: NOR    
Version First Reported In: 5.26.3   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:
Attachments: Previews of various Aurorae themes

Description Kunshan Wang 2022-11-08 14:48:23 UTC
Created attachment 153587 [details]
Previews of various Aurorae themes

SUMMARY

As shown in the attached image, some existing Aurura themes (downloadable from store.kde.org) have title bars.  However, the height of the title bars are wrong, unless I set the text size and button size to a specific value that matches the theme.

I looked at the source code of `kwin/src/plugins/kdecorations/aurorae/src/qml/aurorae.qml`, and found there is no specific place to fit an SVG image into the place of a "title bar".  The designers of those themes, such as "CDE", "Windows 3.1", "Reactionary" and "Reactionary-KDE1", seem to make the title bar part of the top border.  The Aurorae engine simply puts the border on the top, using the exact size specified in decoration.svg, regardless of the font size of the caption (there is a Text with id =  "caption" in aurorae.qml) or the button sizes.  I think with this design, it is impossible to make an SVG theme that can adjust its "title bar" height dynamically.

On the other hand, themes without an obvious "title bar, such as "Endless", "Gently-Light-Color-Aurorae", "Materia", "Sweet-ambar-blue", look good.  This makes me think maybe Aurorae is never designed with title bars in the first place, and Aurorae themes should not have an explicit title bar.

For Plastik, as in `plastik/package/contents/ui/main.qml`, the top-level Rectangle in the Decoration is filled with root.titleBarColor, and anchored to the parent.  Although `main.qml` does have a titleRow, it does not have its own background image or color.

So should we add a way for SVG themes to fit an SVG element into the "title bar" so that themes like "CDE" can be implemented better on Aurorae?  I suppose Aurorae can recognize elements of id = "decoration-titlebar" and, if that exists, it is placed as the background of the title bar, and buttons and the caption are placed over it; if it doesn't exist, the theme will be interpreted in the old way.

STEPS TO REPRODUCE
1.  Install an Aurorae theme, with an obvious title bar, such as "CDE".
2.  Switch to that theme
3.  Enlarge title font size, font DPI, or button sizes
4.  Do not maximize the window

OBSERVED RESULT
The title bar image is not tall enough to cover the entire area for the title bar, as shown in the attachment

EXPECTED RESULT
The title bar image should cover the entire title bar height.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: ArchLinux
(available in About System)
KDE Plasma Version: 5.26.2
KDE Frameworks Version: 5.99.0
Qt Version: 5.15.7

ADDITIONAL INFORMATION