Runic.Platform.Linux
0.11.0
See the version list below for details.
dotnet add package Runic.Platform.Linux --version 0.11.0
NuGet\Install-Package Runic.Platform.Linux -Version 0.11.0
<PackageReference Include="Runic.Platform.Linux" Version="0.11.0" />
<PackageVersion Include="Runic.Platform.Linux" Version="0.11.0" />
<PackageReference Include="Runic.Platform.Linux" />
paket add Runic.Platform.Linux --version 0.11.0
#r "nuget: Runic.Platform.Linux, 0.11.0"
#:package Runic.Platform.Linux@0.11.0
#addin nuget:?package=Runic.Platform.Linux&version=0.11.0
#tool nuget:?package=Runic.Platform.Linux&version=0.11.0
Runic.Platform.Linux (GTK 3)
The GTK 3 window services for Linux x64: portal file dialogs and file handoff with
GTK 3 parenting, the GTK 3 clipboard, and message boxes. The package has
no public API. Runic.Application.Views.Desktop selects it for GTK 3 windows from
DesktopPlatformServices.ForWindow and services.AddRunicPlatformServices(), and never in a
GTK 4 process, which Runic.Platform.Linux.Gtk4 serves. The package references the
shared runtime and no Desktop, ASP.NET Core, Windows or macOS assemblies; creating its
services does not initialize GTK or load native libraries.
The file dialogs are direct XDG portal dialogs with GTK 3 X11/Wayland parent export. The desktop chooses the portal backend, so Plasma can show KDE's picker. A failed parent export never opens an unparented window, and a missing portal never triggers an implicit toolkit fallback.
The portal dialogs also serve Flatpak and Snap applications. Saves are atomic, including through a Flatpak document view; see portal behavior. A session bus, GTK3, a display and the appropriate portal backend must be installed.
Message boxes are GtkMessageDialogs, modal, transient for the window and destroyed
with it, shown with gtk_widget_show and answered through their response signal
(never gtk_dialog_run, so the window's loop keeps running). The message and detail
are the dialog's text and secondary text, the kind its message type, Title its title,
and the window's text direction becomes the dialog's. Buttons are added in GNOME's
order (others, then Cancel, then the default button) with _ mnemonics; the default
button is the default response with the suggested-action style, a destructive one
has destructive-action, and the cancel button answers GTK_RESPONSE_CANCEL. Esc and
the close button choose the cancel button, or answer null without one. A box without
buttons shows GTK's OK button. Cancellation destroys the dialog. GTK runs in the
application's process, also inside Flatpak: there is no portal for message dialogs.
The NativeMessageBoxes category of tests/dotnet/Runic.Platform.Linux.Tests checks
them under Xvfb with JIT and NativeAOT.
The clipboard serves UTF-8 text with GTK selection ownership. Read limits bound managed decoding and string allocation; GTK itself receives the native selection before reporting its byte length. No offered UTF8_STRING target returns null, while an offered empty target returns an empty string. A failed advertised transfer reports Other. GTK does not expose a separate permission code for transfer refusal. Concurrent access reports ResourceBusy. A successful write means GTK acquired ownership; it does not promise clipboard-manager persistence when the application exits. Write cancellation is checked before acquisition and cannot replace the actual result once acquisition starts.
The clipboard is also an IDesktopClipboard: text/html, text/rtf (with
application/rtf; text/richtext is read too), image/png and, for files,
text/uri-list with x-special/gnome-copied-files. A read asks for the targets,
then for the one it names, bounded before managed copying; an image in another
format that gdk-pixbuf reads is converted to PNG. A write takes the selection's
ownership once with every target. The watch is the clipboard's owner-change
signal, which X11 delivers through XFixes; on Wayland it arrives when a window of
the application gains focus. GTK 3's handling of the FileTransfer portal for file
lists inside Flatpak is not verified; GTK 4's provider handles it.
Dispose the clipboard while the presentation dispatcher still runs. Disposal drains pending selection callbacks and releases only this instance's current ownership. Cancellation drains GTK's callback before completing; it does not revoke native callback memory. The embedding host must keep its GTK event loop alive until drain finishes. External clipboard owners can delay responses according to GTK's native selection timeout.
Xvfb tests cover X11 mechanics only. Actual selected-file, Wayland/portal, keyboard, Orca, IME, scaling and installed-app evidence is required separately; this package does not claim those gates passed from a headless test. Directory selection and persisted portal grants are outside the preview contract.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Runic.Platform.Linux.Portal (= 0.11.0)
- Runic.Platform.Runtime (= 0.11.0)
- Tmds.DBus.Protocol (>= 0.95.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Runic.Platform.Linux:
| Package | Downloads |
|---|---|
|
Runic.Application.Views.Desktop
Runic Window and View host adapter for Runic Desktop. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.12.1 | 89 | 10/27/2026 |
| 0.12.0 | 223 | 10/27/2026 |
| 0.11.0 | 2,522 | 10/25/2026 |
| 0.10.0 | 4,791 | 10/22/2026 |
| 0.9.1 | 866 | 10/21/2026 |
| 0.9.0 | 204 | 10/21/2026 |
| 0.8.0-preview.6 | 1,340 | 10/19/2026 |
| 0.8.0-preview.5 | 389 | 10/17/2026 |
| 0.8.0-preview.4 | 967 | 10/17/2026 |
| 0.8.0-preview.3 | 877 | 10/15/2026 |
| 0.8.0-preview.2 | 135 | 10/15/2026 |
| 0.8.0-preview.1 | 192 | 10/15/2026 |
| 0.7.0-preview.9 | 574 | 10/14/2026 |
| 0.7.0-preview.8 | 111 | 10/12/2026 |
| 0.7.0-preview.7 | 63 | 10/12/2026 |
| 0.7.0-preview.6 | 1,110 | 10/9/2026 |
| 0.7.0-preview.5 | 155 | 10/9/2026 |
| 0.7.0-preview.4 | 80 | 10/8/2026 |
| 0.7.0-preview.3 | 226 | 10/8/2026 |
| 0.7.0-preview.2 | 85 | 10/7/2026 |