Releases: leecdiang/EdgeControl
Release list
EdgeControl 1.7.3
EdgeControl 1.7.3
English
UI stability
- Continuous gesture updates now reuse the current HUD presentation instead of repeatedly resizing, repositioning, and bringing the panel forward. This reduces visible tint and brightness jumps.
- HUD colors, the menu accent, and the Settings preview now use the same palette definitions.
- Settings keeps the native popover glass and adds a light neutral scrim to make the material more consistent across backgrounds.
Reliability
- A user-level process lock ensures that only one EdgeControl instance owns the trackpad and related services. Duplicate launches exit quietly without interrupting the primary instance.
- A volume gesture now stays pinned to the output device on which it started. If that device disappears, the gesture ends instead of writing a value derived from the old device to a replacement device.
Verification
- 76/76 XCTest methods pass on the validation Mac.
- Repository validation and the Universal 2 Release build pass.
- The Release bundle contains
arm64andx86_64slices and passes deep, strict ad-hoc signature verification. - Ten rapid launches and a second app copy with the same bundle identifier both leave the original instance running as the sole service owner.
Downloads
- EdgeControl-1.7.3-macOS.dmg
SHA-256:52f70ba2f019313f3116270a1b5d8ef96d3b6344ad7d88a381a670fdf0d6abcb - EdgeControl-1.7.3-macOS.zip
SHA-256:45055b6eb3e7a69381c563642da5cde570e8a202179a6946a0ea5674bbd507b8 - appcast.xml
SHA-256:6f678dbe2b88dbd363e3faeab0961ae20f3e2c0a56dfc2b4094b1bd0576d8ab1
Known limitations
- External DDC remains experimental and off by default.
- Physical audio-device switching, Sparkle relaunch, sleep/wake, and the full light/dark visual matrix still require local hardware or workflow validation.
- External trackpads, Intel runtime, other macOS versions, and clean-machine Gatekeeper behavior remain unverified.
- This build is ad-hoc signed. No Developer ID signature or notarization is claimed.
中文
界面稳定性
- 连续手势期间会复用当前 HUD,不再随每一帧重复调整尺寸、位置和窗口层级,减少颜色与明暗跳变。
- HUD 配色、菜单强调色和设置预览统一使用同一套颜色定义。
- 设置窗口保留原生 popover 磨砂材质,并加入轻量中性遮罩,让不同背景下的玻璃效果更稳定。
可靠性
- 新增用户级进程锁,只允许一个 EdgeControl 实例占用触控板和相关服务。重复启动会安静退出,不影响已经运行的主实例。
- 音量手势会固定使用开始时的输出设备。如果该设备中途消失,本次手势会结束,不会把基于旧设备计算的音量写入替代设备。
验证
- 验证机上 76/76 个 XCTest 方法全部通过。
- 仓库检查和 Universal 2 Release 构建通过。
- Release 包含
arm64与x86_64,并通过完整、严格的 ad-hoc 签名校验。 - 连续快速启动十次,以及从另一份相同 Bundle ID 的应用副本启动,最终都只保留原主实例占用服务。
下载
- EdgeControl-1.7.3-macOS.dmg
SHA-256:52f70ba2f019313f3116270a1b5d8ef96d3b6344ad7d88a381a670fdf0d6abcb - EdgeControl-1.7.3-macOS.zip
SHA-256:45055b6eb3e7a69381c563642da5cde570e8a202179a6946a0ea5674bbd507b8 - appcast.xml
SHA-256:6f678dbe2b88dbd363e3faeab0961ae20f3e2c0a56dfc2b4094b1bd0576d8ab1
已知限制
- 外接显示器 DDC 仍为实验功能,默认关闭。
- 物理音频设备切换、Sparkle 重启、睡眠唤醒,以及完整的浅色/深色视觉矩阵仍需本地硬件或流程验证。
- 外接触控板、Intel、其他 macOS 版本和全新机器上的 Gatekeeper 行为尚未验证。
- 本版本使用 ad-hoc 签名,不宣称 Developer ID 签名或公证。
EdgeControl 1.7.2
EdgeControl 1.7.2
Highlights
- Restored the 1.4.0 false-touch protection baseline for edge-birth strips:
- Strong: 0.6% left / 1.2% right
- Standard: 0.8% left / 1.5% right
- Light: 1.0% left / 1.9% right
- Added Sparkle-based update checks and a manual Check for Updates menu action.
- Added signed appcast publishing support for GitHub Releases.
- Fixed ad-hoc release signing for Sparkle's nested framework, helper app, and XPC bundles.
Verification
- 68 XCTest cases pass.
- Repository validation passes.
- Release app bundle passes
codesign --verify --deep --strict.
EdgeControl 1.7.1
· 中文版
EdgeControl 1.7.1
A follow-up polish release on top of 1.7.0: it fixes the frosted Settings window (the glass now renders as the window's real background instead of showing through as transparent), widens the edge entry strips further, lightens the Morandi volume color to a soft baby blue, and polishes the Settings window UI with a borderless tab row and layered frosted cards.
Fixed
- Frosted Settings window renders correctly. The 1.7.0 window could show a fully transparent background because the visual effect lived inside SwiftUI's
.background, which does not paint reliably in a transparent titled window. The glass is now the window's actual base content view (anNSVisualEffectViewwithpopovermaterial behind the SwiftUI content), matching the menu-bar popover.
Added
- Borderless settings tab row. The four tabs (Controls / Feedback / Devices / About) are now independent capsule buttons in their own top area with a stable gap above the content cards — no enclosing segmented border or divider lines, so the tabs no longer appear to straddle a line. Keyboard navigation stays native: each tab is focusable, Tab moves between tabs, Space activates. Content cards keep their scroll state when switching.
- Layered frosted cards. Settings cards sit one step above the window glass (more solid fill, fine border, soft shadow) so the background keeps its real behind-window blur while cards read as a distinct layer. Reduce Transparency switches cards to a near-opaque fill.
Changed
-
Edge entry strips widened further. All three false-touch-protection presets get a larger birth range so deliberate edge ingresses trigger reliably:
Preset Left strip Right strip Strong 0.7% → 1.0% 1.4% → 1.8% Standard 0.9% → 1.2% 1.7% → 2.2% Light 1.2% → 1.5% 2.1% → 2.6% -
Morandi volume color lightened. The volume accent in the Morandi palette is now a soft baby blue (
#A3C1DE) instead of the darker dusty slate blue.
Tests
- 68 XCTest methods; false-touch strip assertions updated to the new widths and boundary cases.
Known limitations (unchanged)
- External DDC remains experimental and off by default; it must not be treated as a formally supported feature.
- If the default audio output device changes mid-gesture, volume changes can still be applied relative to the old device's initial value.
- External Magic Trackpad selection, Intel runtime, other macOS versions, and clean-machine Gatekeeper remain hardware/environment dependent.
SHA-256: ec2bd1a4c29ce3dcc3bd964139b461a0b1013724f55eebe0d3a90d5643b68177
中文版
EdgeControl 1.7.1
1.7.0 的跟进打磨版:修复磨砂设置窗口(玻璃现在作为窗口真实背景渲染,不再透底变透明)、进一步放宽边缘入口条、把莫兰迪配色的音量色提亮为柔和的婴儿蓝,并优化设置窗口 UI——无边框标签行 + 分层磨砂卡片。
修复
- 磨砂设置窗口正常渲染。 1.7.0 中窗口可能整体透底变透明:原因是视觉效果放在 SwiftUI 的
.background里,在透明标题窗口中渲染不可靠。现在玻璃是窗口真正的底层内容视图(popover材质的NSVisualEffectView垫在 SwiftUI 内容后面),与菜单栏弹窗一致。
新增
- 无边框设置标签行。 四个标签(Controls / Feedback / Devices / About)改为独立胶囊按钮,位于独立顶部区域,与下方内容卡片保持稳定间距——没有 segmented 的整条外框和分隔线,标签不再像跨在一条线上。键盘交互保持原生:每个标签可聚焦,Tab 切换、Space 激活;切换页面时内容卡片保留滚动位置。
- 分层磨砂卡片。 设置卡片比窗口玻璃高出一层(更实的填充、细描边、柔和阴影),背景保持真实的 behind-window blur,卡片是清晰的独立图层。开启「减弱透明度」时卡片自动切换为近实底。
变更
-
边缘入口条进一步放宽。 三档误触保护的出生范围再次加大,让有意的边缘手势更可靠地触发:
档位 左入口条 右入口条 强保护 0.7% → 1.0% 1.4% → 1.8% 标准 0.9% → 1.2% 1.7% → 2.2% 轻保护 1.2% → 1.5% 2.1% → 2.6% -
莫兰迪音量色提亮。 莫兰迪配色的音量强调色从偏深的灰蓝改为柔和的婴儿蓝(
#A3C1DE)。
测试
- 68 项 XCTest;入口条断言已按新宽度与边界用例更新。
已知限制(不变)
- 外接 DDC 仍为实验性且默认关闭,不应视为正式支持的功能。
- 手势中途切换默认音频输出设备时,音量仍可能按旧设备起始值应用。
- 外接 Magic Trackpad 选择、Intel 运行时、其他 macOS 版本与干净环境 Gatekeeper 仍依赖硬件/环境验证。
SHA-256: ec2bd1a4c29ce3dcc3bd964139b461a0b1013724f55eebe0d3a90d5643b68177
EdgeControl 1.7.0
· 中文版
EdgeControl 1.7.0
Adds a frosted-glass Settings window that matches the menu-bar popover, slightly wider edge entry strips for more forgiving activation, a new Morandi (muted slate blue) HUD palette, and a Homebrew cask so the app can be installed with brew install.
Added
-
Frosted Settings window. The Settings window now uses the same full-window material as the first-level menu-bar popover: a transparent title bar over a
popover-material backdrop with translucent cards. The window stays resizable and movable, and it respects the Reduce Transparency accessibility setting automatically. -
Morandi HUD palette. A fourth color style under Settings > Feedback > HUD: muted slate blues — a dusty blue for volume, a misty light blue for brightness — keeping the glass neutral like the other palettes.
-
Homebrew install. The app is published as a cask in the
leecdiang/edgecontroltap:brew tap leecdiang/edgecontrol brew install --cask edgecontrolBecause EdgeControl is ad-hoc signed and not notarized, Gatekeeper will quarantine the first launch; use
brew install --cask --no-quarantine leecdiang/edgecontrol/edgecontrolor right-click > Open on the first run.
Changed
-
Slightly wider edge entry strips. All three false-touch-protection presets widen the physical birth range a little so deliberate edge ingresses trigger more reliably:
Preset Left strip Right strip Strong 0.6% → 0.7% 1.2% → 1.4% Standard 0.8% → 0.9% 1.5% → 1.7% Light 1.0% → 1.2% 1.9% → 2.1% The asymmetry between left and right (and the palm-rejection rules: directionality, zero-cross cancellation, typing suppression) is unchanged.
Tests
- 68 XCTest methods (67 carried over plus a new Morandi palette persistence test; the false-touch strip assertions were updated to the new widths).
Known limitations (unchanged)
- External DDC remains experimental and off by default; it must not be treated as a formally supported feature.
- If the default audio output device changes mid-gesture, volume changes can still be applied relative to the old device's initial value.
- External Magic Trackpad selection, Intel runtime, other macOS versions, and clean-machine Gatekeeper remain hardware/environment dependent.
SHA-256: 2a7dd2b5c9416432f5aeb7aedde0cf85eca0eeb6832dddbe4ce101606bfd6ffb
中文版
EdgeControl 1.7.0
设置窗口改为与菜单栏一级弹窗一致的磨砂玻璃效果;两侧边缘出生条略微放宽,激活更宽容;新增莫兰迪蓝 HUD 配色;并发布 Homebrew cask,支持 brew install 安装。
新增
-
磨砂玻璃设置窗口。 设置窗口现在使用与菜单栏一级弹窗相同的整窗材质:透明标题栏 +
popover材质背景 + 半透明卡片。窗口仍可缩放、可拖动,并自动跟随系统「减弱透明度」辅助功能设置。 -
莫兰迪蓝 HUD 配色。 设置 > 反馈 > HUD 新增第四档配色:低饱和灰蓝系——音量用灰蓝、亮度用雾蓝,玻璃与文字保持中性,与其他配色一致。
-
Homebrew 安装。 应用以 cask 形式发布在
leecdiang/edgecontroltap 中:brew tap leecdiang/edgecontrol brew install --cask edgecontrol由于 EdgeControl 是 ad-hoc 签名且未公证,Gatekeeper 会隔离首次启动;可用
brew install --cask --no-quarantine leecdiang/edgecontrol/edgecontrol,或首次运行时右键 > 打开。
变更
-
两侧入口条略微放宽。 三档误触保护的物理出生范围都放宽了一点点,让有意的边缘手势更容易触发:
档位 左入口条 右入口条 强保护 0.6% → 0.7% 1.2% → 1.4% 标准 0.8% → 0.9% 1.5% → 1.7% 轻保护 1.0% → 1.2% 1.9% → 2.1% 左右不对称(以及防误触规则:方向一致性、过零取消、打字抑制)保持不变。
测试
- 68 项 XCTest(67 项延续 + 新增莫兰迪配色持久化测试;入口条宽度断言已更新为新值)。
已知限制(不变)
- 外接 DDC 仍为实验性且默认关闭,不应视为正式支持的功能。
- 手势中途切换默认音频输出设备时,音量仍可能按旧设备起始值应用。
- 外接 Magic Trackpad 选择、Intel 运行时、其他 macOS 版本与干净环境 Gatekeeper 仍依赖硬件/环境验证。
SHA-256: 2a7dd2b5c9416432f5aeb7aedde0cf85eca0eeb6832dddbe4ce101606bfd6ffb
EdgeControl 1.6.1
· 中文版
EdgeControl 1.6.1
A small reliability patch on top of 1.6.0: it fixes the experimental DDC brightness reply parsing, adds a complete ad-hoc bundle signature, guards stale touch frames across trackpad restarts, and syncs the documentation.
Fixed
- DDC/CI Get VCP Feature replies for brightness are now parsed with the correct field offsets (
maximumat +4/+5,currentat +6/+7 relative to the0x02command byte, per the VESA layout). The previous code read one byte late, which could corrupt the brightness range or current value on external monitors. The parser now also validates the result code and the message checksum, and a leading destination byte is still accepted. - The Release app now carries a complete ad-hoc bundle signature: both
arm64andx86_64slices are signed and_CodeSignature/CodeResourcesis present.Scripts/build_release.shre-signs the built app withcodesign --force --sign -when noDEVELOPMENT_TEAMis configured. - Touch frames queued before a trackpad stop/rescan/wake are dropped after the restart: each frame batch is tagged with a generation that is invalidated when the source is reopened, so stale frames can no longer enter a freshly reset gesture recognizer.
- Docs: Settings > System references updated to Settings > Devices, menu width updated to 304 pt, and released-version wording replaces pre-release wording.
Tests
- Six new byte-fixture tests cover the standard reply layout, a leading destination byte, non-zero result codes, corrupt checksums, wrong VCP codes, and truncated replies. The suite contains 67 XCTest methods.
Known limitations (unchanged)
- External DDC remains experimental and off by default; it must not be treated as a formally supported feature.
- If the default audio output device changes mid-gesture, volume changes can still be applied relative to the old device's initial value.
- External Magic Trackpad selection, Intel runtime, other macOS versions, and clean-machine Gatekeeper remain hardware/environment dependent.
SHA-256: b087b4768c1cc6f5c3f67fdf66af0dde6d90095bca4bf2cd23756c6a3d55df07
中文版
EdgeControl 1.6.1
1.6.0 之上的小型可靠性补丁:修复实验性 DDC 亮度应答解析、补完整 ad-hoc bundle 签名、在触控板重启后丢弃过期触摸帧,并同步文档。
修复
- DDC/CI 亮度(VCP 0x10)应答按正确字段偏移解析(相对
0x02命令字节,maximum 在 +4/+5、current 在 +6/+7,符合 VESA 布局)。旧代码整体偏一字节,可能导致外接显示器亮度范围或当前值解析错误。解析器同时校验结果码与消息校验和,仍兼容可选的前导目标地址字节。 - Release 应用现在带完整 ad-hoc bundle 签名:
arm64与x86_64两个 slice 均签名,且存在_CodeSignature/CodeResources。Scripts/build_release.sh在未配置DEVELOPMENT_TEAM时会对构建产物执行codesign --force --sign -重签。 - 触控板停止/重扫/唤醒前排队的触摸帧,在重启后会被丢弃:每批帧带代数标记,源重新打开时代数失效,过期帧不再进入新识别的识别器。
- 文档:Settings > System 更新为 Settings > Devices,菜单宽度更新为 304 pt,“发布前”措辞改为已发布状态。
测试
- 新增 6 项字节级测试,覆盖标准应答布局、前导目标字节、非零结果码、校验和损坏、VCP 码不符与截断应答。测试集共 67 项 XCTest。
已知限制(不变)
- 外接 DDC 仍为实验性且默认关闭,不应视为正式支持的功能。
- 手势中途切换默认音频输出设备时,音量仍可能按旧设备起始值应用。
- 外接 Magic Trackpad 选择、Intel 运行时、其他 macOS 版本与干净环境 Gatekeeper 仍依赖硬件/环境验证。
SHA-256: b087b4768c1cc6f5c3f67fdf66af0dde6d90095bca4bf2cd23756c6a3d55df07
EdgeControl 1.6.0
· 中文版
EdgeControl 1.6.0
A visual refinement release with a compact custom menu, reorganized Settings, and three HUD color styles. It includes all reliability fixes from 1.5.1.
New interface
- The plain system menu is replaced by a lightweight 304-point frosted popover with live touch status, a master switch, two edge-action cards, Haptic/HUD/Login quick toggles, Settings, and Quit.
- Settings is reorganized into Controls, Feedback, Devices, and About with compact grouped cards, clearer hierarchy, stable window sizing, and a dedicated warning surface.
- No image bundle or third-party UI dependency was added; the interface remains system-rendered and follows light/dark appearance.
HUD palettes
- HUD color is now a three-level setting: System, Classic, or Aurora.
- System keeps the progress indicator neutral. Classic uses dynamic system blue for volume and orange for brightness. Aurora uses dynamic system purple and teal.
- Color is concentrated in the internal progress indicator. Icons, text, track, and glass remain neutral, preserving the compact frosted appearance.
- The former Colorful HUD preference migrates safely: off becomes System and on becomes Classic.
Reliability inherited from 1.5.1
- Committed-direction zero-cross protection closes the gradual deadband bypass.
- Pending Strong secondary pulses are cancelled on gesture end and wake reset.
- Multi-display DDC writes target the connection that answered the initial session read.
- Bundle build metadata follows
CURRENT_PROJECT_VERSION; this release is 1.6.0 (3).
Tests and validation
- The source contains 61 XCTest methods, including HUD preference migration and the 1.5.1 reliability regressions.
- Repository structure, invariants, privacy, shell syntax, and whitespace checks pass in this source package.
- Xcode build/tests, menu/Settings appearance, Universal 2 inspection, physical haptics, and real DDC hardware remain required on macOS before publishing.
中文版
EdgeControl 1.6.0
本版本重点优化视觉体验:新增精简自定义菜单、重新组织设置窗口,并提供三档 HUD 配色;同时完整继承 1.5.1 的可靠性修复。
全新界面
- 原生纯文字菜单改为约 304pt 的轻量磨砂弹窗,集中显示触控状态、总开关、左右边缘卡片、触觉/HUD/登录启动快捷开关、设置与退出。
- 设置窗口重新分为 Controls、Feedback、Devices 与 About,使用紧凑分组卡片、稳定窗口尺寸及独立警告区域。
- 不增加图片包或第三方 UI 依赖,继续使用系统渲染并自动适配深色/浅色外观。
HUD 三档配色
- HUD 配色改为 System、Classic、Aurora 三档。
- System 使用系统黑白;Classic 为音量动态蓝色、亮度动态橙色;Aurora 为音量动态紫色、亮度动态青绿色。
- 颜色主要集中在内部指示条;图标、文字、未填充轨道和玻璃底板保持中性,避免破坏磨砂层次。
- 旧版 Colorful HUD 设置会安全迁移:关闭对应 System,开启对应 Classic。
继承 1.5.1 的可靠性修复
- 激活方向锁定,修复渐进反向借死区绕过过零取消。
- 手势结束或唤醒复位时取消 Strong 尚未触发的第二次脉冲。
- 多显示器 DDC 写入固定到初始读取成功的连接。
- Bundle 构建号读取
CURRENT_PROJECT_VERSION;本版本为 1.6.0(3)。
测试与验证
- 源码共 61 项 XCTest,包含 HUD 设置迁移及全部 1.5.1 可靠性回归。
- 本源码包通过仓库结构、关键不变量、隐私、Shell 语法与空白检查。
- 发布前仍须在 macOS 完成 Xcode 测试、菜单/设置视觉检查、Universal 2 检查、触觉真机与真实 DDC 验证。
SHA-256: 9f5c50ae127da75aea10e12a4d6aeaf2b23fab0539047930315d5e950669f62f
EdgeControl 1.5.1
· 中文版
EdgeControl 1.5.1
A focused reliability update for edge gestures, Strong haptics, and multi-display DDC.
Fixed
- Zero-cross protection now remembers the direction that activated the gesture. A slow reversal can no longer pass through the 0.5% noise deadband and continue in the opposite direction.
- A pending second Strong haptic pulse is cancelled when the gesture ends or the app resets after wake, preventing delayed feedback after the interaction has stopped.
- External DDC writes now target the same monitor that answered the session's initial brightness read instead of always writing to the first enumerated display.
- The Haptic feedback switch now sits beside Haptic strength in Controls, so the disabled state is immediately understandable.
CFBundleVersionis now sourced fromCURRENT_PROJECT_VERSION; this release uses marketing version 1.5.1 and build 2.
Tests and validation
- Four regressions cover gradual zero crossing, Strong-pulse cancellation on end/wake, and responsive DDC connection selection. The source suite contains 60 XCTest methods.
- Repository structure, invariant, privacy, shell-syntax, and whitespace checks pass in this source package.
- Xcode build/tests, Universal 2 inspection, physical haptic feel, and real multi-monitor DDC remain required on macOS before publishing.
中文版
EdgeControl 1.5.1
本版本集中修复边缘手势、强档触觉反馈与多显示器 DDC 的可靠性问题。
修复
- 过零保护现在会记住触发激活的方向;缓慢反向时无法再借 0.5% 噪声死区绕过取消逻辑。
- 手势结束或睡眠唤醒复位时,会取消强档尚未触发的第二次脉冲,避免操作停止后仍出现延迟震动。
- 外接 DDC 写入会固定到本次会话中成功返回初始亮度的显示器,不再一律写向枚举列表中的第一台显示器。
- “触觉反馈”总开关移到 Controls 并与“触觉强度”相邻,禁用状态更易理解。
CFBundleVersion改为读取CURRENT_PROJECT_VERSION;本版本号为 1.5.1,构建号为 2。
测试与验证
- 新增 4 项回归,覆盖渐进过零、结束/唤醒时取消强档尾随脉冲,以及 DDC 响应连接选择;源码共 60 项 XCTest。
- 本源码包已通过仓库结构、关键不变量、隐私、Shell 语法与空白检查。
- 发布前仍须由 OpenClaw 在 macOS 完成 Xcode 测试、Universal 2 检查、触觉真机检查及真实多显示器 DDC 验证。
SHA-256: 3551d542e43c2a8f0ce7022224d653841f414039b94a5ec0b8a6a43afdbee3ac
EdgeControl 1.5.0
· 中文版
EdgeControl 1.5.0
Three haptic-strength profiles and a denser, genuinely frosted compact HUD.
New
- Haptic feedback now offers Light, Standard, and Strong. Standard preserves the original 2% alignment feel, Light uses subtler 4% ticks, and Strong uses the firmer public AppKit generic pattern at 2%.
- Existing installs keep their haptic on/off preference and default to Standard. The selected profile is pinned for each gesture.
- The unsupported private actuator remains disabled; no new permission is required.
HUD
- The HUD is reduced to 144×40 (212×40 for errors).
- A capsule-clipped active
.hudWindowvisual-effect view supplies real blur, with a 52% semantic veil, subtle tint, highlight border, and tuned shadow. - Dual AppKit/SwiftUI clipping prevents rectangular backdrop leakage. Reduce Transparency and Reduce Motion remain supported.
Validation status
- Repository guards, shell syntax, and diff checks pass; the source suite contains 55 XCTest methods.
- Xcode build/tests and physical comparison of all three haptic profiles and the HUD over light/dark content remain required before publishing.
- AppKit exposes feedback patterns rather than numeric amplitude, so physical feel may vary by trackpad.
中文版
EdgeControl 1.5.0
新增三档触觉反馈,并将精简 HUD 改为更凝实的真实磨砂效果。
新功能
- 触觉反馈新增轻、标准、强三档:标准档保留原有每 2% 一次的 alignment 手感,轻档改为更稀疏的 4% 轻震,强档使用每 2% 一次、体感更强的公开 AppKit generic 模式。
- 升级用户保留原有触觉开关,档位默认标准;每次手势激活时锁定档位。
- 未验证的私有触控板执行器继续禁用,不增加任何权限。
HUD
- 正常 HUD 缩小到 144×40,错误状态为 212×40。
- 使用严格裁切在胶囊内的
.hudWindow系统模糊层,再叠加 52% 动态雾面遮罩、轻微色调、高光描边和重新调整的阴影。 - AppKit 与 SwiftUI 双重裁切避免矩形底板泄漏;继续支持“降低透明度”和“减少动态效果”。
验证状态
- 仓库检查、Shell 语法和 diff 检查已通过;源码共 55 项 XCTest。
- 发布前仍须在 macOS 完成 Xcode 构建/测试,并分别检查三档触感及 HUD 在明暗背景上的效果。
- AppKit 只提供反馈模式而非数字振幅,因此不同触控板的体感可能不同。
SHA-256: 839368c254462d9826329d8bf8304b014eff255eb83f65b3b0d4d6766873392b
EdgeControl 1.4.0
· 中文版
EdgeControl 1.4.0
Independent adjustment speed and privacy-preserving false-touch protection.
New
- Adjustment speed is now an independent three-level setting: Precise (
0.50×), Standard (0.70×), or Fast (0.95×). It affects only post-activation value gain. - False-touch protection is independently selectable as Strong, Standard, or Light. The profiles combine 600/350/200ms typing windows with narrow/standard/wide physical edge-birth ranges.
- Strong uses 0.6%/1.2% left/right entry strips, Standard preserves 0.8%/1.5%, and Light uses 1.0%/1.9%. The measured left/right asymmetry is retained.
- Existing continuous-sensitivity preferences migrate to the nearest adjustment-speed preset.
- EdgeControl queries only the elapsed time since the last Quartz key-down event. It does not install a keyboard event tap, inspect key values, or store keyboard activity.
- Recent typing rejects idle or pre-activation edge contacts until every finger lifts, preventing a resting palm from activating after the timer expires.
- Active volume or brightness gestures are never interrupted by the typing guard.
- Adjustment speed is pinned when a gesture activates, preventing a settings change from causing a mid-gesture value jump. Changing admission settings while a finger is down discards that lifecycle until lift.
- The existing optional lower-half filter remains independent.
Reliability
- Includes the 1.3.1 built-in-brightness routing fix: a transient panel-enumeration failure no longer sends a built-in-only Mac to External DDC.
- Brightness gestures pin their activation backend; display changes and DDC setting changes safely end only an in-flight brightness session before refresh.
Tests and documentation
- Twelve new regressions cover typing rejection/latching, Active continuity, three protection boundaries, asymmetric edge-profile admission, hard-rule invariance, speed gain, legacy migration, invalid preferences, and invalid elapsed-time handling.
- The source suite now contains 52 XCTest methods.
- Release validation instructions and a static audit are included in the source package.
Validation status
- Source-side repository guards, shell syntax, and diff checks pass. Xcode tests, Release/Universal 2 builds, physical typing regression, and clean-account permission checks remain required before publishing.
- External Magic Trackpad, external DDC, Intel runtime, Developer ID signing, and notarization remain unverified. External DDC is still experimental and disabled by default.
中文版
# EdgeControl 1.4.0新增彼此独立的调节速度与隐私型误触保护。
新功能
- 调节速度改为独立三档:精细(
0.50×)、标准(0.70×)、快速(0.95×),只影响激活后的数值增益。 - 误触保护独立分为强、标准、轻,分别组合 600/350/200ms 打字窗口与窄/标准/宽物理边缘出生范围。
- 强保护左右范围为 0.6%/1.2%,标准保留 0.8%/1.5%,轻保护为 1.0%/1.9%;继续保留真机测得的左右差异。
- 旧版连续灵敏度自动迁移到最接近的调节速度档。
- EdgeControl 只查询距离最近一次 Quartz 按键按下事件经过了多久;不会安装键盘事件监听器、读取具体按键或保存键盘活动。
- 最近打字会拒绝空闲或激活前的边缘触点,并锁存到所有手指抬起,避免手掌停留到计时结束后突然激活。
- 已经激活的音量或亮度手势不会被打字保护中断。
- 手势激活时锁定调节速度,设置变化不会造成中途数值跳变;有手指按下时修改准入设置,该触点会一直丢弃到抬手。
- 原有“仅从下半部分开始”仍可独立选择。
可靠性
- 包含 1.3.1 的内屏亮度路由修复:内屏枚举瞬时失败时,仅使用内屏的 Mac 不再被错误路由到 External DDC。
- 亮度手势锁定激活时后端;显示器变化或 DDC 设置变化时,只安全结束正在进行的亮度会话,再刷新后端。
测试与文档
- 新增 12 项回归,覆盖打字拒绝与锁存、Active 连续性、三档保护边界、左右边缘档位准入、硬规则不变性、速度增益、旧值迁移、异常偏好及无效时间处理。
- 当前源码共包含 52 项 XCTest。
- 源码包已加入发布验证说明和静态审计。
验证状态
- 源码侧仓库守卫、Shell 语法和 diff 检查通过;发布前仍须完成 Xcode 测试、Release / Universal 2 构建、打字真机回归和干净账户权限检查。
- 外接 Magic Trackpad、外接 DDC、Intel 真机、Developer ID 签名与公证仍未验证。外接 DDC 仍为默认关闭的实验性功能。
SHA-256: 2ec7c6148a19e2039bc575db75f7059b14c436c3053e17af4eb15d6fadca48eb
EdgeControl 1.3.1
· 中文版
EdgeControl 1.3.1
Brightness-backend reliability fix for MacBooks without an external display.
Fixed
- A transient built-in display enumeration failure no longer routes brightness control to External DDC when DDC is disabled or unavailable.
- Failed CoreGraphics display-list queries preserve the last known built-in display ID; a successful external-only list still clears it for clamshell mode.
- Each brightness gesture pins the backend selected at activation, preventing display notifications from switching a gesture between the built-in panel and DDC.
- Display reconfiguration and DDC setting changes safely end an in-flight brightness session before refreshing backends; volume gestures are unaffected.
- Gesture start retries built-in display discovery before considering the explicitly enabled DDC fallback.
- A built-in-only Mac no longer reports
No external DDC display is available, even if the experimental toggle was previously enabled but no DDC connection exists.
Tests and documentation
- Five brightness-routing regressions cover disabled-DDC isolation, built-in refresh recovery, valid DDC fallback, per-gesture backend pinning, and transient display-list failure retention.
- The source suite now contains 40 XCTest methods.
- Release validation instructions and a separate static bug audit are included in the source package.
Validation status
- Source-side repository guards, shell syntax, and diff checks pass. Xcode tests, Release/Universal 2 builds, and physical brightness regression remain to be run on macOS before publishing.
- External Magic Trackpad, external DDC, Intel runtime, Developer ID signing, and notarization remain unverified. External DDC is still experimental and disabled by default.
中文版
# EdgeControl 1.3.1修复没有外接显示器时偶发的亮度后端路由错误。
已修复
- 内屏枚举瞬时失败时,不再在 DDC 未启用或不可用的情况下错误调用 External DDC。
- CoreGraphics 显示器列表查询失败时保留最后一次有效的内屏 ID;若查询成功且确实只有外屏,则仍会为合盖模式正确清空。
- 每次亮度手势锁定激活时选中的后端,防止显示器通知让同一手势在内屏与 DDC 之间切换。
- 显示器重配置或修改 DDC 开关前会先安全结束当前亮度会话,再刷新后端;音量手势不受影响。
- 手势开始时会重新尝试发现内屏,之后才考虑用户明确开启的 DDC 回退。
- 仅使用内屏时不再错误显示
No external DDC display is available;即使实验性开关曾开启,只要没有真实 DDC 连接也不会误报。
测试与文档
- 新增 5 项亮度路由回归测试:DDC 关闭隔离、内屏刷新恢复、合法 DDC 回退、单手势后端锁定及瞬时显示列表失败保留。
- 当前源码共包含 40 项 XCTest。
- 源码包已加入发布验证说明和独立静态 bug 审计。
验证状态
- 源码侧仓库守卫、Shell 语法和 diff 检查已通过;发布前仍须在 macOS 上运行 Xcode 测试、Release / Universal 2 构建及亮度真机回归。
- 外接 Magic Trackpad、外接 DDC、Intel 真机、Developer ID 签名与公证仍未验证。外接 DDC 仍为默认关闭的实验性功能。
SHA-256: 8fe3915117a989421f2f03e9985f6f2a4d60d5b1654fbf80ddb22da793136050