Nucleus
OS integration

Intégration OS

Modules Kotlin qui exposent les capacités natives de macOS, Windows et Linux : notifications, system tray, raccourcis globaux, contrôles média, mode sombre et couleurs système.

Les modules d'intégration OS exposent depuis Kotlin les capacités natives du bureau : notifications, system tray, raccourcis globaux, contrôles média, mode sombre et couleurs système. Chaque capacité est un artefact Gradle distinct : vous ne dépendez que des modules que vous utilisez.

Couverture

FonctionnalitéModulemacOSWindowsLinux
Notifications cross-plateformenotification-commonouiouioui
Notifications natives (par OS)notification-macos / notification-windows / notification-linuxouiouioui
System tray et apps ancrées au traycomposenativetrayouiouioui
Raccourcis globauxglobal-hotkeyouiouioui
Contrôles médiamedia-controlouiouioui
Mode sombredarkmode-detectorouiouioui
Couleur d'accent et contraste élevésystem-colorouiouioui
Infos matériel et OSsystem-infoouiouioui
Barre de menus macOSmenu-macosoui
Noms d'icônes FreeDesktopfreedesktop-iconsoui

Les modules publiés par Nucleus utilisent le groupe dev.nucleusframework et le nom d'artefact nucleus.<nom-du-module>. Le module composenativetray provient d'un dépôt distinct, sous le même groupe mais sans le préfixe nucleus..

Modules cross-plateforme et modules par plateforme

Certaines capacités existent sous deux formes. Les modules cross-plateforme — notification-common, media-control et darkmode-detector — exposent derrière une seule API l'intersection de ce que les trois systèmes prennent en charge. Les modules par plateforme, comme notification-macos, notification-windows et notification-linux, exposent directement l'API native de chaque système : leur surface diffère donc d'une plateforme à l'autre. Dépendez d'un module par plateforme quand vous avez besoin d'une fonctionnalité propre à une plateforme, comme les barres de progression des toasts Windows, les niveaux d'interruption macOS ou le volume MPRIS sous Linux.

Fonctionnement

Chaque module encapsule l'API native de sa plateforme via un pont JNI que Nucleus fournit et charge pour vous. Les notifications s'appuient sur le framework UserNotifications (UNUserNotificationCenter) sur macOS, sur les toasts WinRT sur Windows et sur la spécification de notifications FreeDesktop (org.freedesktop.Notifications) via D-Bus sous Linux. Les contrôles média utilisent SMTC sur Windows et MPRIS sous Linux. Le mode sombre et la couleur d'accent se lisent de manière réactive via des fonctions @Composable : ils participent à la recomposition Compose quand l'état du système change.

Et ensuite