HMCL icon indicating copy to clipboard operation
HMCL copied to clipboard

[Bug] macOS 下深/浅色模式 “跟随系统设置”失效

Open Calboot opened this issue 4 weeks ago • 4 comments

问题描述 | Bug Description

环境:macOS 26.1 zulujdk+fx 25 HMCL版本:3.9.0.311 & 3.9.SNAPSHOT 最新构建 如图

Image Image

重启后依然如此,系统设置中固定深色模式也如此

启动器崩溃报告 / 启动器日志文件 | Launcher Crash Report / Launcher Log File

None

Calboot avatar Dec 13 '25 13:12 Calboot

调试了一下,感觉是 JavaFX 的问题,不是 HMCL 的问题

Calboot avatar Dec 13 '25 13:12 Calboot

请提供启动器日志文件

burningtnt avatar Dec 13 '25 13:12 burningtnt

com.sun.javafx.application.preferences.PreferenceProperties

Image

背景和前景颜色还是默认值,说明 JavaFX 根本就没获取到这两个颜色的系统值

Calboot avatar Dec 13 '25 13:12 Calboot

请提供启动器日志文件

2025-12-13T21-42-01.log

尽管我认为这不会有用

Calboot avatar Dec 13 '25 13:12 Calboot

针对 macOS 其实有一个解决方法: 执行...

/usr/bin/defaults read -g AppleInterfaceStyle

如果返回 Dark 则系统处于暗黑模式 处于浅色模式则返回 The domain/default pair of (kCFPreferencesAnyApplication, AppleInterfaceStyle) does not exist,代表这个值没有被设置(直接不用管)

Windows 上也可以考虑注册表的方式: 在 Software\Microsoft\Windows\CurrentVersion\Themes\PersonalizeAppsUseLightTheme1 则为亮色,0 为暗色

WhatDamon avatar Dec 19 '25 13:12 WhatDamon

背景和前景颜色还是默认值,说明 JavaFX 根本就没获取到这两个颜色的系统值

我拿 jshell 测试了一下,JavaFX 在 jshell 里能获取到 macOS 的浅色和深色状态,但在 HMCL 里同样的 API 就检测不到了。很奇怪。

Glavo avatar Dec 19 '25 15:12 Glavo

背景和前景颜色还是默认值,说明 JavaFX 根本就没获取到这两个颜色的系统值

我拿 jshell 测试了一下,JavaFX 在 jshell 里能获取到 macOS 的浅色和深色状态,但在 HMCL 里同样的 API 就检测不到了。很奇怪。

你测试的时候 jshell 和 gradle 用的 jvm 是一个吗

Calboot avatar Dec 20 '25 03:12 Calboot