1. 背景
M4 更换后,被 EZ 大佬安利购买了ChatWise Chatbox
(以前一直使用的是开源的NextChat
),因为高频的AI Chatbox
需要,所以时常会在不同 App 之间快速切换。
在没有 Hammerspoon 之前,需要通过CMD+Tab
在不同 App 之间进行切换,以前也花钱购买过另一款 MacOS 软件产品Command-Tab Plus
(在之前关于 PopclipExtendsion 扩展软件开发那篇文章有简要介绍),效果都不尽人意。
想着能否有一种Hash
快捷键方式,而非通过 Cmd+tabRange
遍历方式唤起不同的 App,调研下来发现Hammerspoon
完美符合自己诉求。
2. Hammerspoon 介绍
Hammerspoon:macOS 自动化与效率提升的瑞士军刀
Hammerspoon
的核心理念是“用代码控制你的 Mac
”,它不是一个图形化的自动化工具,而是基于脚本的。
Hammerspoon
通过将 macOS 的核心功能暴露给 Lua
脚本,让用户能够以前所未有的方式控制和自动化他们的 Mac。你可以将其理解为一个将 macOS 的各种 API 封装成易于使用的 Lua 模块的框架,从而让非专业的开发者也能轻松地编写脚本来完成各种自动化任务。
2.1. 工作原理
- 监听系统事件: Hammerspoon 运行在后台,持续监听 macOS 的各种系统事件,例如按键按下、鼠标移动、窗口变化、应用程序启动/退出、网络状态改变等等。
- 执行 Lua 脚本: 当检测到特定的系统事件时,Hammerspoon 会触发相应的 Lua 脚本。
- 调用 macOS API: Lua 脚本通过 Hammerspoon 提供的模块,调用底层的 macOS API,从而实现对系统的控制和操作。
2.2. 主要功能和应用场景
快捷键绑定
- 全局快捷键: 定义系统范围的快捷键,用于启动应用程序、执行脚本、控制系统功能等。
- 应用程序特定快捷键: 为不同的应用程序设置不同的快捷键。
- 组合键与修饰键: 支持各种复杂的组合键和修饰键。
下面就是我自己最简单的几个快捷键配置,分别使用alt+r
唤起Chatwise
,alt+b
唤起Notion
,alt+f
唤起Chrome
|
|
2.3. 其他功能
窗口管理:
- 自定义窗口布局: 通过快捷键或脚本快速调整窗口大小和位置,实现分屏、网格布局等。
- 窗口聚焦与切换: 快速切换到特定应用程序的窗口,或者根据规则自动聚焦窗口。
- 窗口透明度与层级控制: 调整窗口的透明度,或者将窗口置顶。
- 快捷键绑定:
- 全局快捷键: 定义系统范围的快捷键,用于启动应用程序、执行脚本、控制系统功能等。
- 应用程序特定快捷键: 为不同的应用程序设置不同的快捷键。
- 组合键与修饰键: 支持各种复杂的组合键和修饰键。
- 应用程序控制:
- 启动、退出、隐藏应用程序: 通过脚本控制应用程序的生命周期。
- 发送按键和鼠标事件: 模拟用户操作,自动化应用程序内的任务。
- 获取应用程序信息: 获取当前活动应用程序、窗口标题等信息。
- 系统状态监控与控制:
- 网络状态监控: 检测网络连接状态,根据网络变化执行脚本。
- 电池状态监控: 根据电池电量执行脚本,例如低电量提醒。
- 音量控制: 通过快捷键或脚本调整系统音量。
- 屏幕亮度控制: 通过快捷键或脚本调整屏幕亮度。
- 蓝牙设备管理: 连接、断开蓝牙设备。
- 剪贴板管理:
- 剪贴板历史记录: 记录剪贴板内容,方便查找和粘贴。
- 剪贴板内容处理: 对剪贴板内容进行格式化、转换等操作。
- 通知与提醒:
- 发送系统通知: 通过脚本发送自定义的系统通知。
- 定时提醒: 设置定时任务,执行脚本或发送提醒。
- 文件系统操作:
- 文件和文件夹操作: 创建、删除、移动、复制文件和文件夹。
- 文件内容读取与写入: 读取和写入文件内容。
- 外部设备控制:
- USB 设备检测: 检测 USB 设备的插入和拔出。
- 显示器管理: 控制显示器的分辨率、排列方式等。
- 自定义菜单栏图标:
- 在菜单栏显示自定义信息: 例如网络速度、CPU 使用率等。
- 通过菜单栏图标执行脚本: 点击菜单栏图标触发脚本。
其他功能 Lua 示例(需要测试)
因为一些其他功能暂时用不到,就不一一列举里,下面是一些 Case 参考(具体还需要调试)
|
|
3. 补充 1:关于在 Mac 下使用左 Shift 切换输入法的问题补充说明
3.1. Mac Keyboard 配置
由于受到多年 Sogou 输入法的影响,形成了左小拇指的 Shift 切换输入法,导致后面切换回苹果原生输入法后,需要 TAB 按键切换非常不适应。
所以很早以前就该用了Karbiner-Elements
来实现,简言之就是先通过 Mac 的输入法系统设置,设置一个极冷门快捷(防止误触发,比如RightCommand+RightOption+F1
)在中英文之间切换。
3.2. Karbinner
软件做按键修改
|
|
3.3. 延迟按键设置
注意下配置按键和延迟时间,一般我们切换输入法是快速按下 Shift 按键,而使用字母大小写切换则会通过长按 Shift,这点目前还没有使用HS
替换,如果可以的话,那么KB
就可以不用了!
4. 补充 2: 借助 Alfred 实现软件唤起
Alfred 也是一款非常牛皮的 MacOS 软件,也可以简单的使用关键字唤起,同时也支持很多提升效率的方式可以挖掘,PS. 一次性付费的
5. 补充 3: 借助 PopClip 唤起
关于 PopClip 文章,可以看下之前的一篇文章小结: PopClip 扩展工具开发,PS. 是一次性付费的
6. 小结
MacOS 下的快捷键效率工具肯定还有很多其他类似的产品,目前就体验下来开源免费的HammerSpoon
非常 Match 当前我的痛点。
另外,自己也分享了下每天工作使用到的几款 MacOS 产品进行了简要的分享(Hammerspoon、Karbiner、Alfred、PopClip),刚兴趣的也可以试试~
毕竟,每天高频重复的操作,每次能节省一点时间总归是开心的~