是否可以使用脚本禁用 mac 中的热角?
Is it possible to disable the hot corners in mac with a script?
我正在使用 Electron 应用程序,我的任务是使用脚本禁用 Mac 中的热点。我对这个主题很陌生,所以我想知道周围是否有人已经处理过类似的情况。
启动应用程序时,电子 window 不会占据整个宽度,但如果可以通过这种方式禁用热角,我们可以实现它。
如有任何提示,我们将不胜感激。谢谢
没有一种“安全”的方法可以避免 运行 无限期禁用用户热点的风险。 如果您的程序崩溃或意外终止,您绝对应该确保有一些应急措施将这些键重置回它们的原始值。我什至会说这绝对 不是推荐的方法 并且这些类型的 UX 修改黑客远不理想。
如果你必须这样做,你可以通过 node-applescript
:
做一些事情
const applescript = require('applescript');
var hotCorners = {
'wvous-bl-corner': null,
'wvous-bl-corner-modifier': null,
'wvous-br-corner': null,
'wvous-br-modifier': null,
'wvous-tl-corner': null,
'wvous-tl-modifier': null,
'wvous-tr-corner': null,
'wvous-tr-modifier': null
}
// read current default values first
Object.keys(hotCorners).forEach(key => hotCorners[key] = applescript.execString(`do shell script "defaults read com.apple.Dock ${key}"`));
// overwrite with zeros to disable hot corner functionality
Object.keys(hotCorners).forEach(key => applescript.execString(`do shell script "defaults write com.apple.Dock ${key} -int 0"`));
当你想写回这些配置时:
Object.keys(hotCorners).forEach(key => applescript.execString(`do shell script "defaults write com.apple.Dock ${key} -int ${hotCorners[key] ?? 0}"`));
您还应注意将当前配置写入比 RAM 更稳定的存储介质;最简单的方法是将 JSON 结构写入 Electron 应用程序中的文件(或写入客户端设备上其他位置的存储)。
此方法的成功将取决于与客户端设备和用户本身的 macOS 版本和安全状况相关的几个因素(他们是否接受在更高版本的 macOS 中与此功能相关的任何安全提示)。因此,您还应该使用此类功能实施错误检查,以确保您可以对意外情况做出正确反应。
为了全面披露,我无法再使用 macOS 机器进行测试;因此,此代码 未经测试 ,我不保证它在任何方面都能成功 - 使用本指南后果自负。
我正在使用 Electron 应用程序,我的任务是使用脚本禁用 Mac 中的热点。我对这个主题很陌生,所以我想知道周围是否有人已经处理过类似的情况。
启动应用程序时,电子 window 不会占据整个宽度,但如果可以通过这种方式禁用热角,我们可以实现它。
如有任何提示,我们将不胜感激。谢谢
没有一种“安全”的方法可以避免 运行 无限期禁用用户热点的风险。 如果您的程序崩溃或意外终止,您绝对应该确保有一些应急措施将这些键重置回它们的原始值。我什至会说这绝对 不是推荐的方法 并且这些类型的 UX 修改黑客远不理想。
如果你必须这样做,你可以通过 node-applescript
:
const applescript = require('applescript');
var hotCorners = {
'wvous-bl-corner': null,
'wvous-bl-corner-modifier': null,
'wvous-br-corner': null,
'wvous-br-modifier': null,
'wvous-tl-corner': null,
'wvous-tl-modifier': null,
'wvous-tr-corner': null,
'wvous-tr-modifier': null
}
// read current default values first
Object.keys(hotCorners).forEach(key => hotCorners[key] = applescript.execString(`do shell script "defaults read com.apple.Dock ${key}"`));
// overwrite with zeros to disable hot corner functionality
Object.keys(hotCorners).forEach(key => applescript.execString(`do shell script "defaults write com.apple.Dock ${key} -int 0"`));
当你想写回这些配置时:
Object.keys(hotCorners).forEach(key => applescript.execString(`do shell script "defaults write com.apple.Dock ${key} -int ${hotCorners[key] ?? 0}"`));
您还应注意将当前配置写入比 RAM 更稳定的存储介质;最简单的方法是将 JSON 结构写入 Electron 应用程序中的文件(或写入客户端设备上其他位置的存储)。
此方法的成功将取决于与客户端设备和用户本身的 macOS 版本和安全状况相关的几个因素(他们是否接受在更高版本的 macOS 中与此功能相关的任何安全提示)。因此,您还应该使用此类功能实施错误检查,以确保您可以对意外情况做出正确反应。
为了全面披露,我无法再使用 macOS 机器进行测试;因此,此代码 未经测试 ,我不保证它在任何方面都能成功 - 使用本指南后果自负。