diff --git a/ui/src/jvmMain/kotlin/moe/lava/neon/main.kt b/ui/src/jvmMain/kotlin/moe/lava/neon/main.kt index 27c77b5..0db2ea1 100644 --- a/ui/src/jvmMain/kotlin/moe/lava/neon/main.kt +++ b/ui/src/jvmMain/kotlin/moe/lava/neon/main.kt @@ -1,14 +1,29 @@ package moe.lava.neon +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.ui.platform.LocalDensity +import androidx.compose.ui.unit.Density import androidx.compose.ui.window.Window import androidx.compose.ui.window.application import moe.lava.neon.ui.App +// The UI is designed with touchscreens in mind; on desktop elements may look gigantic +// So scale them down a bit +const val scaleFactor = 0.75f + fun main() = application { Window( onCloseRequest = ::exitApplication, title = "Neon", ) { - App() + val systemScale = System.getenv("GDK_SCALE")?.toFloatOrNull() ?: 1f + val systemDpiScale = System.getenv("GDK_DPI_SCALE")?.toFloatOrNull() ?: 1f + val density = Density( + density = LocalDensity.current.density * systemScale * scaleFactor, + fontScale = systemDpiScale + ) + CompositionLocalProvider(LocalDensity provides density) { + App() + } } }