You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GTK4 support for Linux with GirCore - seeking feedback on integration approach
Context & Motivation
I have developed GTK4 support for the SkiaSharp.Views ecosystem built on GirCore .NET bindings. Gir.Core provides C# bindings for several GObject based libraries like GTK for user interfaces.
The motivation: Modern Linux desktops primarily target GTK4, and there's a need for a native, Skia-based solution that fits the SkiaSharp.Views.* family pattern.
What I've Built
The SkiaSharp.Views.GirCore package provides:
Native GTK4 + Cairo rendering
100% compatibility with SkiaSharp.Views.Desktop patterns
Linux x64 and ARM64 support (only x64 tested so far)
Implementation Details
Main Components:
SKDrawingArea widget (based on GTK4 DrawingArea)
Cairo backend integration
Locale fix module (LC_NUMERIC setting required for SVG Path)
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
GTK4 support for Linux with GirCore - seeking feedback on integration approach
Context & Motivation
I have developed GTK4 support for the SkiaSharp.Views ecosystem built on GirCore .NET bindings. Gir.Core provides C# bindings for several GObject based libraries like GTK for user interfaces.
The motivation: Modern Linux desktops primarily target GTK4, and there's a need for a native, Skia-based solution that fits the SkiaSharp.Views.* family pattern.
What I've Built
The SkiaSharp.Views.GirCore package provides:
Implementation Details
Main Components:
SKDrawingArea
widget (based on GTK4 DrawingArea)Technical Stack:
Testing & Real-World Usage
Tested on Platforms:
Arch Linux (latest), Debian Bookworm (12), Ubuntu Plucky Puffin (25.04), Fedora Adams (42), OpenSUSE Tumbleweed (latest), Ubuntu Noble Numbat (24.04), CentOS Stream 10
Production Applications (with full AOT support):
Sample Programs:
Multiple working examples demonstrate the integration capabilities:
Current Availability
SkiaSharp.Views.GirCore
3.119.0-preview.6 https://www.nuget.org/packages/SkiaSharp.Views.GirCore/What I'd Like to Discuss
I'm interested in contributing this to the official SkiaSharp repository and would like feedback on:
SkiaSharp.Views.GirCore
or be renamed toSkiaSharp.Views.Gtk4
? I recommend keeping the current name.The package has been stable in production use and I believe it fills an important gap for Linux desktop application development with SkiaSharp.
Looking forward to your thoughts and feedback!
Beta Was this translation helpful? Give feedback.
All reactions