- 如果你觉得本工程提供的功能对你有用,请帮忙点一个 Star,不胜感激,谢谢!
- 若 README 图片无法显示,请确保挂了梯子,并且 PAC 文件中配置
||githubusercontent.com
,或者直接使用全局模式
本工程所有脚本都基于 Hammerspoon 运行,请先下载安装 Hammerspoon,然后再执行如下命令:
curl -fsSL https://raw.githubusercontent.com/KURANADO2/hammerspoon-kuranado/main/install.sh | sh
如上面这条 curl
命令下载不了 install.sh
,则请打开终端代理后重试或手动下载 install.sh
后执行
最后,Menubar 中点击 Hammerspoon Reload Config
按钮即可
手动安装更新:
cd ~/.hammerspoon
git pull origin main
如果发现冲突,请解决冲突后再执行 git pull origin main
除手动更新外,本工程还支持自动检查更新并安装,可在功能菜单中关闭自动更新(不建议)
自动更新原理如下:
- .config 文件(用户配置文件)加入到 .gitignore 文件中
- 定期执行
git pull origin main
- 如果发现冲突,则 console 打印自动更新失败相关提示信息,此时请手动安装更新,参考:手动更新
- 如果发现默认配置版本号 > 用户本地 .config 文件的配置版本号,则在保留用户原有配置的基础上,将新增配置合并到用户本地 .config 文件中,并更新配置版本号
鼠标单击功能项,即可启用/禁用功能项
替代 Magnet 进行窗口移动
网格均分(2、4、6、9、12、16 等分):
左右交换:
为应用配置快捷键,比 ⌘
⇥
和 Alfred 切换程序更高效(建议只为高频使用的一些软件分配快捷键)
快捷键 ⌥
K
唤醒表情包搜索功能,输入关键词,上下键用于选择、预览表情包;左右键用于翻页;回车键用于发送表情包;Esc
关闭搜索窗口
注: 该功能我曾在 Alfred Workflow 中实现过一遍:https://github.com/KURANADO2/emoji-alfredworkflow。但已很久没有维护,如果你对 Alfred 感兴趣,也可以看下
替代 NetWorker Pro 实时显示网速(每两秒刷新一次)
解决某些网站禁止粘贴密码、SSH 登陆需要手动输入密码等问题。
首先使用 ⌘
C
复制密码,然后在密码输入框内,按 ⌃
⌘
V
即可将密码粘贴到输入框内。
原理为读取剪贴板最新一条记录,针对读取到的每一个字符,模拟按键事件。
个人最常用的三个输入法:
- 系统自带 ABC
- 系统自带简体拼音
- 系统自带日语输入法
默认分配了如下快捷键:
快捷键 | 功能 |
---|---|
⌥ J |
ABC |
⌥ K |
简体中文 |
⌥ L |
Hiragana |
替代 KeyCastr
注:目前暂且实现了简单的按键回显,和 KeyCastr 相比在功能上仍相差甚远,如:
- 不支持多画布
- 画布不支持拖拽
- 缺少动画效果
- ... 感兴趣的同学欢迎提出实现思路,或直接贡献代码(不太懂 Objective-C,KeyCastr 的实现源码个人看不太懂)
每 10 min 自动切换一张壁纸,壁纸来源:Bing
任意界面下按 ⌥
/
显示/隐藏快捷键列表
每天 18:00 提醒下班(根据实际下班时间自行修改脚本),鼠标点击可关闭动画
如需自定义快捷键,请修改 shortcut.lua 文件,如 shortcut.lua 文件不存在,则执行如下命令创建一份
cp shortcut.lua.example shortcut.lua
快捷键 | 功能 |
---|---|
⌃ ⌥ Z |
同一应用的所有窗口自动网格式布局 |
⌃ ⌥ X |
同一调度中心下的所有窗口自动网格式布局(什么是 调度中心??) |
⌃ ⌥ A |
同一应用的所有窗口自动水平均分或垂直均分 |
⌃ ⌥ S |
同一调度中心下的所有窗口自动水平均分或垂直均分 |
⌃ ⌥ ← |
左半屏 |
⌃ ⌥ → |
右半屏 |
⌃ ⌥ ↑ |
上半屏 |
⌃ ⌥ ↓ |
下半屏 |
⌃ ⌥ U |
左上角 |
⌃ ⌥ I |
右上角 |
⌃ ⌥ J |
左下角 |
⌃ ⌥ K |
右下角 |
⌃ ⌥ 1 |
1/9 |
⌃ ⌥ 2 |
2/9 |
⌃ ⌥ 3 |
3/9 |
⌃ ⌥ 4 |
4/9 |
⌃ ⌥ 5 |
5/9 |
⌃ ⌥ 6 |
6/9 |
⌃ ⌥ 7 |
7/9 |
⌃ ⌥ 8 |
8/9 |
⌃ ⌥ 9 |
9/9 |
⌃ ⌥ C |
居中 |
⌃ ⌥ D |
左 1/3(横屏)或上 1/3(竖屏) |
⌃ ⌥ F |
中 1/3 |
⌃ ⌥ G |
右 1/3(横屏)或下 1/3(竖屏) |
⌃ ⌥ E |
左 2/3(横屏)或上 2/3(竖屏) |
⌃ ⌥ T |
右 2/3(横屏)或下 2/3(竖屏) |
⌃ ⌥ = |
等比例放大窗口 |
⌃ ⌥ - |
等比例缩小窗口 |
⌃ ⌥ ↩︎ |
最大化 |
⌃ ⌥ ⌘ ↑ |
将窗口移动到上方屏幕 |
⌃ ⌥ ⌘ ↓ |
将窗口移动到下方屏幕 |
⌃ ⌥ ⌘ ← |
将窗口移动到左侧屏幕 |
⌃ ⌥ ⌘ → |
将窗口移动到右侧屏幕 |
⌘ ` |
在同一应用的多个窗口之间切换(此为 Mac 系统自带快捷键) |
⌥ Q |
打开 QQ |
⌥ W |
打开 WeChat |
⌥ V |
打开 Visual Studio Code |
⌥ F |
打开 Finder |
⌥ C |
打开 Chrome |
⌥ J |
打开 Intellij IDEA |
⌥ N |
打开 WizNote |
⌥ D |
打开 DataGrip |
⌥ T |
打开 iTerm2 |
⌥ M |
打开 MailMaster |
⌥ P |
打开 Postman |
⌥ O |
打开 Word |
⌥ E |
打开 Excel |
⌥ Y |
打开 PyCharm |
⌥ R |
打开 Another Redis Desktop Manager |
⌥ K |
表情包搜索 |
⌃ ⌘ V |
以模拟按键方式将剪贴板中的字符粘贴出来(解决某些网站禁止粘贴密码问题) |
⌥ L |
在简体拼音和日语输入法间切换 |
⌥ / |
显示/隐藏快捷键列表 |
上面配置中使用快捷键切换应用,需要拿到应用的 bundle id(请注意 bundle id 配置到 hammerspoon 中需要区分大小写,否则 console 会报错),可通过如下方式拿到:
osascript -e 'id of app "Name of App"'
另外,如果你使用的是比较新的 Mac 系统,终端下输入 ls /Applications
可能是看不到系统自带应用的,如下图,ll
查看不到 Mac 自带的邮件应用,但 Finder 打开 /Applications 目录则可以看到邮件应用
此时我们可以在 Finder 中选中邮件应用,右键:显示包内容 -> Contents -> 打开 info.plist 文件,找到 CFBundleIdentifier 配置项,该配置项的值即为 bundle id,当然此方法也适应于自己安装的应用
.hammerspoon
├── .config 用户本地配置文件,保存了用户每个功能模块的启用/禁用状态
├── .emoji 表情包缓存目录
├── .git
├── .gitignore
├── .wallpaper 壁纸缓存目录
├── LICENSE
├── README.md
├── images 功能模块及 README 需要用到的图片
├── init.lua 脚本入口
└── modules 各个功能模块
├── application.lua 应用切换模块
├── base.lua 封装了 Lua 基本工具
├── config.lua 菜单默认配置,记录了每一项功能的默认启用/禁用状态
├── emoji.lua 表情包搜索模块
├── hotkey.lua 快捷键列表查看模块
├── input-method.lua 输入法切换
├── keystroke-visualizer.lua 按键回显模块
├── menu.lua 菜单模块
├── network.lua 实时网速模块
├── password.lua 密码粘贴模块
├── reload.lua 重载配置模块(当 ~/.hammerspoon 目录下任意 .lua 文件发生变动时,自动重新加载 Hammerspoon 配置)
├── remind.lua 下班提醒模块
├── shortcut.lua 用于用户自定义快捷键,此文件已加入 .gitignore,若无该文件,则执行命令 cp shortcut.lua.example shortcut.lua 创建一份即可
├── shortcut.lua.example 快捷键配置文件示例,用户请勿修改此文件
├── update.lua 自动更新模块
├── wallpaper.lua 壁纸切换模块
└── window.lua 窗口管理模块