Repository navigation
RDM-ARM 1.2.1
1.2.0 发布后收到一个很具体的反馈:接上电视,用 60 Hz 的 1080p 切过去,菜单里刚找到的那个分组就没了;随便改个分辨率,60 Hz 又不见了。
根子在两处。
标准分辨率子菜单按「快不快」决定去留。 上一版只在「某个标准模式比同尺寸 HiDPI 更快」时才单列标准模式。于是用户在 30 Hz 下靠着这个子菜单找到 60 Hz 的 1080p,切过去之后同尺寸 HiDPI 也有 60 了,标准模式不再「更快」,子菜单连同刚找到的入口一起消失。要不要显示是显示器的属性,能不能更快是当前时序的属性——两者不该绑在一起。
私有模式表绕过了可用性开关。 allModes(includeUnusable:) 在开关关着的时候仍然把私有表的模式并了进来。公开枚举那条路径有可用性判定,私有表这条没有——不是漏了门控,是那批记录根本没经过 CoreGraphics,也就不带判定。结果菜单里出现点不动的行:这台电视的链路只在 1× 1080p 下带得动 60 Hz,私有表却给出若干 60 Hz 的 HiDPI 尺寸,点下去 CoreGraphics 报 1001。
改了什么
- 「标准分辨率(非 HiDPI)」改为无条件生成,只要开着 HiDPI 过滤就存在,不再随当前时序忽隐忽现。当前停在 1× 模式时,打勾落在这个子菜单标题上(主列表里没有任何一条是当前)
- 分辨率行后缀该尺寸最快的刷新率,形如
1920 × 1080 ⚡️ · 30 Hz。两个并列子菜单的代价是挑分辨率时刷新率不在视野里,很容易落到一个只有 30 Hz 的尺寸上还以为面板做不到 60;点击也一定落到行上写的那个刷新率,否则标签就在骗人 - 刷新率菜单改用未过滤的模式表。HiDPI 过滤只决定一条记录进哪个列表;人已经坐在 1× 模式上时,他要的是当前几何的刷新率,过滤之后那个菜单会是空的
- 当前尺寸缺一档更高刷新率时,刷新率菜单底部给出可直接点的跨界条目,形如
60 Hz @ 1920 × 1080。刷新率和时序本来就绑在一起,把代价写进标题比让用户自己去找更直接。只在目标尺寸不比当前小时才出现——拿 2304 × 1296 换 1024 × 768 的 75 Hz 不算「同一块屏更快」 - 私有表改由「显示 macOS 隐藏的模式」把关。这个开关就叫这个名字,打开的人接受这批模式的代价,关着的人不该在菜单里看到点不动的行
命令行接口没有变化,所以按补丁号走。
装
- 把
RDM-ARM.app拖进「应用程序」 - 首次打开会被拦下(提示「已损坏」或「无法验证开发者」)——本应用没有 Apple 开发者签名与公证,只做了 ad-hoc 签名。终端里执行一次即可:
xattr -dr com.apple.quarantine /Applications/RDM-ARM.app- 打开后看屏幕顶部菜单栏的显示器图标——这是菜单栏应用,没有主窗口
校验
SHA-256 4ed8e24ce0556a9b6ad080f8f111f0abe2c4b9ab7ed765fb3c766f4386a569b6
架构 x86_64 arm64(通用二进制)
签名 ad-hoc
系统 macOS 13.0+
--selftest-timing 45 项全过;--selftest --roundtrip 真实切换一次模式并还原通过;CI(macos-14 干净机器)构建通过。GitHub 与 Gitee 两侧附件与本地构建产物哈希一致。