Hey folks, it seems `val isDarkTheme = isSystemInD...
# compose-desktop
s
Hey folks, it seems
val isDarkTheme = isSystemInDarkTheme()
does not recompose when the theme changes from light to dark and back on macos. Am I missing some configuration or is this a known issue? Is there any way to get it working?
u
I don't know if it's a know issue but you can achieve it with https://github.com/Dansoftowner/jSystemThemeDetector
Copy code
import com.jthemedetecor.OsThemeDetector

/*
Use like this :
    var isDarkTheme by mutableStateOf(ThemeDetector.isDarkThemeUsed)
    ThemeDetector.registerListener { isDarkTheme = it }
    MaterialTheme(
        colorScheme = if (isDarkTheme) darkColorScheme() else lightColorScheme()
    )
*/

object DarkModeDetector {
    private val detector = OsThemeDetector.getDetector()

    val isDarkThemeUsed: Boolean
        get() = detector.isDark

    fun registerListener(listener: (Boolean) -> Unit) {
        detector.registerListener { isDark -> listener(isDark) }
    }
}