是否可以通过脚本禁用Mac系统的hot corners功能?
Mac端Electron应用禁用Hot Corners实现方案
核心原理
Mac系统的Hot Corners(触发角)配置存储在当前用户的Dock进程偏好设置中,可通过原生defaults命令修改配置,重启Dock后即时生效,无需root权限。
具体实现步骤
- 第一步:应用启动时先备份用户原有触发角配置,避免修改后无法恢复
执行以下命令读取当前四个角的配置:defaults read com.apple.dock | grep wvous-.*-corner
将返回的键值对存入本地变量,用于应用退出时还原配置。 - 第二步:执行禁用命令
运行以下shell命令将四个角的触发功能全部置为禁用:defaults write com.apple.dock wvous-tl-corner -int 0 defaults write com.apple.dock wvous-tr-corner -int 0 defaults write com.apple.dock wvous-bl-corner -int 0 defaults write com.apple.dock wvous-br-corner -int 0 # 重启Dock使配置生效 killall Dock - 第三步:Electron集成逻辑
- 用Node.js内置的
child_process.exec/execFile方法执行上述shell命令,建议封装为异步方法避免阻塞主进程 - 监听Electron的
app.will-quit事件,在应用退出前将第一步备份的原有配置重新写入com.apple.dock,再次执行killall Dock恢复用户原始设置 - 若你的应用开启了Mac沙箱机制,需要在entitlements配置中添加
com.apple.security.temporary-exception.apple-events临时权限,允许应用向Dock进程发送控制指令
- 用Node.js内置的
备选无侵入方案
如果你不想修改用户系统配置,可以尝试开启Electron窗口的简单全屏模式:mainWindow.setSimpleFullScreen(true)
该模式下窗口会在当前桌面空间内全屏显示,不会触发系统原生的桌面切换逻辑,大部分场景下可避免误触Hot Corners。
内容的提问来源于stack exchange,提问作者foreignChimichurri
相关产品推荐
相关产品推荐

