Runic.Platform.Linux 0.12.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package Runic.Platform.Linux --version 0.12.0
                    
NuGet\Install-Package Runic.Platform.Linux -Version 0.12.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Runic.Platform.Linux" Version="0.12.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Runic.Platform.Linux" Version="0.12.0" />
                    
Directory.Packages.props
<PackageReference Include="Runic.Platform.Linux" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Runic.Platform.Linux --version 0.12.0
                    
#r "nuget: Runic.Platform.Linux, 0.12.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Runic.Platform.Linux@0.12.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Runic.Platform.Linux&version=0.12.0
                    
Install as a Cake Addin
#tool nuget:?package=Runic.Platform.Linux&version=0.12.0
                    
Install as a Cake Tool

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 (OpenDirectoryAsync, OpenDirectoriesAsync) goes through the same portal provider for GTK 3 windows; see directory selection in the portal README and the provider table in Runic.Platform. The portal's permission store owns persistent document grants: disposing a lease does not revoke them, and a document bookmark reopens a file across launches.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
Loading failed