Back to Slint

Desktop

docs/astro/src/content/docs/guide/platforms/desktop.mdx

1.16.13.7 KB
Original Source

import { Tabs, TabItem } from '@astrojs/starlight/components';

Generally, Slint runs on Windows, macOS, and popular Linux distributions. The following tables cover versions that we specifically test. The general objective is to support the operating systems that are supported by their vendors at the time of a Slint version release.

<Tabs syncKey="dev-platform"> <TabItem label="Windows" icon="seti:windows">
Operating SystemArchitecture
Windows 10x86-64
Windows 11x86-64, aarch64

Handle the Console Window

When you running an application a console window will show by default.

Disable the console by specifying a WINDOWS subsystem.

When running the application from the command line, if the subsystem is set to windows it will no longer output stdout. To get it back consider using FreeConsole().

See more details at #3235

<Tabs syncKey="dev-language"> <TabItem label="Rust">

Add the code to the top of .rs file which contains fn main():

rust
#![windows_subsystem = "windows"]

Or if you want to keep console output in debug mode:

rust
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
</TabItem> <TabItem label="C++">

Select the WINDOWS subsystem by setting the WIN32_EXECUTABLE target property on your executable target:

cmake
add_executable(my_program ...)
set_property(TARGET my_program APPEND PROPERTY WIN32_EXECUTABLE TRUE)
</TabItem> <TabItem label="Python"> Change the extension of your Python script from `.py` to `.pyw`, the default Python interpreter associated with Python files will launch without a console window. Alternatively, use `pythonw.exe` instead of `python.exe` to launch your Python script. </TabItem> </Tabs>

Rust: Stack Overflows

When developing Rust applications on Windows, you might sooner or later observe the program aborting with STATUS_STACK_OVERFLOW, especially in debug builds. This is a known issue that's a combination of a high demand for stack space and MSVC defaulting to a stack size for the main thread that's significantly smaller compared to other operating systems.

This is fixed by configuring the linker. Create a .cargo\config.toml file in your project (note the .cargo sub-directory) with the following contents:

toml
[target.x86_64-pc-windows-msvc]
# Increase default stack size to avoid running out of stack
# space in debug builds. The size matches Linux's default.
rustflags = ["-C", "link-arg=/STACK:8000000"]
[target.aarch64-pc-windows-msvc]
# Increase default stack size to avoid running out of stack
# space in debug builds. The size matches Linux's default.
rustflags = ["-C", "link-arg=/STACK:8000000"]
</TabItem> <TabItem label="macOS" icon="apple">
Operating SystemArchitecture
macOS 14 Sonomaaarch64
macOS 15 Sequoiaaarch64
macOS 26aarch64
</TabItem> <TabItem label="Linux" icon="linux">

Linux desktop distribution present a diverse landscape, and Slint should run on any of them, provided that they are using Wayland or X-Windows, glibc, and d-bus. If a Linux distribution provides Long Term Support (LTS), Slint should run on the most recent LTS or newer, at the time of a Slint version release. </TabItem> </Tabs>

Other Platforms

Contact us if you want to use Slint on other platforms/versions.