From 462b81f8ad40192da39fea98dbab1319568c0e92 Mon Sep 17 00:00:00 2001
From: tapframe <85391825+tapframe@users.noreply.github.com>
Date: Sat, 18 Apr 2026 01:18:28 +0530
Subject: [PATCH] feat(macos):add background color for desktop app
---
composeApp/build.gradle.kts | 10 ++++++
.../kotlin/com/nuvio/app/DesktopApp.kt | 32 +++++++++++++++----
2 files changed, 36 insertions(+), 6 deletions(-)
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