in skiko/src/awtMain/cpp/linux/theme.cc [212:238]
JNIEXPORT jint JNICALL Java_org_jetbrains_skiko_SystemThemeHelper_getCurrentSystemTheme(JNIEnv *env, jobject topLevel)
{
int systemTheme = 0;
DBusError error;
if(!dbus_error_init_dynamic(&error)) return 2; // Unknown.
DBusConnection *connection = dbus_bus_get_dynamic(DBUS_BUS_SESSION, &error);
if(!connection) return 2; // Unknown.
if (dbus_error_is_set_dynamic(&error)) return 2; // Unknown.
DBusMessage *valueMessage = getSetting(connection, "org.freedesktop.appearance", "color-scheme");
if (!valueMessage) return 2; // Unknown.
parseSettingValue(valueMessage, DBUS_TYPE_UINT32, &systemTheme);
if(!dbus_message_unref_dynamic(valueMessage)) return 2; // Unknown.
switch (systemTheme) {
case 1:
return 1; // Dark.
case 2:
return 0; // Light.
default:
return 2; // Unknown.
}
}