diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index fc776eaf..e50ab87c 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -281,6 +281,16 @@ dependencies { compose.desktop { application { mainClass = "com.nuvio.app.DesktopAppKt" + nativeDistributions { + macOS { + infoPlist { + extraKeysRawXml = """ + NSRequiresAquaSystemAppearance + + """.trimIndent() + } + } + } } } diff --git a/composeApp/src/desktopMain/kotlin/com/nuvio/app/DesktopApp.kt b/composeApp/src/desktopMain/kotlin/com/nuvio/app/DesktopApp.kt index f9c397b3..8209a362 100644 --- a/composeApp/src/desktopMain/kotlin/com/nuvio/app/DesktopApp.kt +++ b/composeApp/src/desktopMain/kotlin/com/nuvio/app/DesktopApp.kt @@ -1,13 +1,33 @@ package com.nuvio.app +import androidx.compose.runtime.DisposableEffect import androidx.compose.ui.window.Window import androidx.compose.ui.window.application +import java.awt.Color as AwtColor -fun main() = application { - Window( - onCloseRequest = ::exitApplication, - title = "Nuvio", - ) { - App() +private val DesktopWindowBackground = AwtColor(0x0D, 0x0D, 0x0D) + +private fun configureMacOsNativeAppearance() { + val osName = System.getProperty("os.name")?.lowercase() ?: return + if (!osName.contains("mac")) return + System.setProperty("apple.awt.application.appearance", "NSAppearanceNameDarkAqua") +} + +fun main() { + configureMacOsNativeAppearance() + application { + Window( + onCloseRequest = ::exitApplication, + title = "Nuvio", + ) { + DisposableEffect(window) { + window.background = DesktopWindowBackground + window.contentPane.background = DesktopWindowBackground + window.rootPane.background = DesktopWindowBackground + onDispose { } + } + + App() + } } } \ No newline at end of file