From maxim.kartashev at jetbrains.com Wed Apr 16 15:11:01 2025 From: maxim.kartashev at jetbrains.com (Maxim Kartashev) Date: Wed, 16 Apr 2025 19:11:01 +0400 Subject: Client-side decorations and libdecor Message-ID: Hi, All! I am currently looking at a way to achieve a "native" look for Wakefield's windows. There's GTK Look-and-feel for Java and X11 that leverages GTK API for painting various widgets and parts thereof, but that doesn't extend to the top-level window decorations. Besides, it does not solve the problem for KDE and others. Then there's libdecor, which demo looks promising, so I wanted to ask a few questions about it before I commit to using the library: 1. How stable/feature-complete is version 0.1.0, included with the older Ubuntu 22.04 LTS? 2. libdecor is licensed under MIT; would it be theoretically possible to include it into the OpenJDK source tree? 3. Does libdecor work with Vulkan surfaces? If not, are there plans to support Vulkan? There are demos and comments in the code, but I can't seem to find a dedicated documentation for libdecor. Is there any at this point? Thanks, Maxim. -------------- next part -------------- An HTML attachment was scrubbed... URL: From philip.race at oracle.com Wed Apr 16 17:52:12 2025 From: philip.race at oracle.com (Philip Race) Date: Wed, 16 Apr 2025 10:52:12 -0700 Subject: Client-side decorations and libdecor In-Reply-To: References: Message-ID: <273b48de-de82-4fd6-8f86-e7d74cfbb951@oracle.com> On 4/16/25 8:11 AM, Maxim Kartashev wrote: > Hi, All! > > I am currently looking at a way to achieve a "native" look for > Wakefield's windows. > > There's GTK Look-and-feel for Java and X11 that leverages GTK API for > painting various widgets and parts thereof, but that doesn't extend to > the top-level window decorations. Swing GTK L&F uses the theming engine including for the decoration of internal frames So I'd expect we could use that for the top-level decoration too. > Besides, it does not solve the problem for KDE and others. We only support Gnome. We do try (somewhat) to have things work on other desktops but only if the cost is not too high and this sounds like it might be. -phil. > > Then there's libdecor, which demo looks promising, so I wanted to ask > a few questions about it before I commit to using the library: > 1. How stable/feature-complete is version 0.1.0, included with the > older Ubuntu 22.04 LTS? > 2. libdecor is licensed under MIT; would it be theoretically possible > to include it into the OpenJDK source tree? > 3. Does libdecor work with Vulkan surfaces? If not, are there plans to > support Vulkan? > > There are demos and comments in the code, but I can't seem to find a > dedicated documentation for libdecor. Is there any at this point? > > Thanks, > > Maxim. From jadahl at redhat.com Wed Apr 16 18:34:46 2025 From: jadahl at redhat.com (Jonas =?iso-8859-1?Q?=C5dahl?=) Date: Wed, 16 Apr 2025 20:34:46 +0200 Subject: Client-side decorations and libdecor In-Reply-To: References: Message-ID: On Wed, Apr 16, 2025 at 07:11:01PM +0400, Maxim Kartashev wrote: > Hi, All! > > I am currently looking at a way to achieve a "native" look for Wakefield's > windows. > > There's GTK Look-and-feel for Java and X11 that leverages GTK API for > painting various widgets and parts thereof, but that doesn't extend to the > top-level window decorations. Besides, it does not solve the problem for > KDE and others. > > Then there's libdecor, which demo looks promising, so I wanted to ask a few > questions about it before I commit to using the library: > 1. How stable/feature-complete is version 0.1.0, included with the older > Ubuntu 22.04 LTS? 0.1.0 does not have the GTK plugin, so it will not look "native" in that sense. > 2. libdecor is licensed under MIT; would it be theoretically possible to > include it into the OpenJDK source tree? > 3. Does libdecor work with Vulkan surfaces? If not, are there plans to > support Vulkan? libdecor works using Wayland subsurfaces and relies on Wayland protocol semantics to structure the toplevel window. Whether the app itself is using shared memory, OpenGL/GLES or Vulkan for its surface's content does not matter. > > There are demos and comments in the code, but I can't seem to find a > dedicated documentation for libdecor. Is there any at this point? The documentation is mostly the libdecor.h file, there isn't much else at this point. Jonas > > Thanks, > > Maxim.