hammerspoon 已经成功让我卸掉了好几个第三方软件,今天分享一些自用脚本
源码仓库地址 👉 https://github.com/xiaojundebug/hammerspoon-config
scripts/auto-switch-input-method.lua 根据 app 自动切换输入法,一定程序上取代 SwitchKey 与 InputSourcePro
scripts/input-method-indicator.lua
自带输入法没有指示器,经常输错中英文,它可以在屏幕顶部显示一条横线,最近我将它支持了渐变色,看上去更美观,一定程序上取代 ShowEdge

scripts/ring.lua
一个丝滑的环形 App 启动器,我甚至为它加上了过渡动画,用 ⌥ + tab 呼出,划到目标处松开键盘即可, 一定程序上提高软件打开效率

scripts/caffeinated.lua 在状态栏放了一个 icon ,点击使 mac 禁止睡眠
scripts/defeating-paste-blocking.lua
官方示例,部分网站禁止用户粘贴,它可以通过模拟输入事件将字符逐个键入,快捷键 ⌘ + ⇧ + v
https://github.com/xiaojundebug/hammerspoon-config/blob/main/scripts/wifi-mute.lua 连接公司 wifi 后自动静音
scripts/show-launchpad.lua macOS 有个很蠢的 bug ,设置中配置的启动台快捷键经常失效,那就用脚本代替它吧
另外还有一个没在仓库中的脚本,名叫“暗格”,如有人需要我再放进去

各位有啥创意可以提高效率,欢迎提意见~
1
NoLifeRyan 2024 年 12 月 6 日
输入法指示器好像无效? macOS 14.7
|
2
NoLifeRyan 2024 年 12 月 6 日
@NoLifeRyan 有效,我的问题,怎么删除这条
|
3
g1vemep0wer OP 由于文件命名有改变,所以文中地址访问会 404 ,有需要的可以访问 https://github.com/xiaojundebug/hammerspoon-config
|
4
yukminnie 2 月 2 日
谢谢分享, 用起来.
|
5
19cm 17 天前
老哥,想请教下您, input_method_indicator.lua 这个我想改成监听 只监听微信输入法的中英文切换,有办法做到吗,试了几个 ai 写的都不行
|
6
g1vemep0wer OP @19cm 这个真不清楚,我没用过微信自带的英文输入,只用微信的中文输入
|
7
19cm 17 天前
@g1vemep0wer #6 还有个问题,想请教下 mac 有没有辅助软件能做到 监听指定软件 当指定点击软件关闭按钮时 让软件强行退出并且在 dock 栏干掉 lua 我写了个不行,只能退出不会在 dock 干掉
-- ===================== 配置区:只改这里 ===================== -- 要监控的软件名称(必须和应用名称完全一致,可在活动监视器看) local TARGET_APPS = { 'IINA' } -- ========================================================== -- 创建窗口过滤器:只监听目标应用 local wf = hs.window.filter.new(TARGET_APPS) -- 监听 [窗口被销毁] (点 X 关闭) wf:subscribe(hs.window.filter.windowDestroyed, function(win) if not win then return end local app = win:application() if not app then return end local appName = app:name() -- 延迟 0.2s 再判断,避免窗口还没完全销毁时判断错误 hs.timer.doAfter(0.2, function() -- 检查该应用是否**已经没有任何窗口** local allWindows = app:allWindows() if not allWindows or #allWindows == 0 then -- 强制退出进程 app:kill() -- 可选:通知中心提示(可删掉) hs.notify.new({ title = "已强制退出", subTitle = appName, autoWithdraw = true }):send() end end) end) |
8
g1vemep0wer OP @19cm 不清楚,退出 app 简单,但是想从 dock 栏移除我印象里没看到过类似 api ,系统默认的行为,就算手动退出也会有记录,但是你可以手动关闭 dock 历史记录功能,这样 dock 右边这块所有记录都没了
|
9
g1vemep0wer OP @19cm 或者你直接编辑 ~/Library/Preferences/com.apple.dock.plist 文件,里边存了最近打开的 app ,删除后,kill dock 也能曲线救国
|
10
19cm 15 天前
@g1vemep0wer #9 诶,找不到完美方案,我干脆直接 把 在程序坞中显示建议 App 和最近使用的 App 给关掉了,至少不会让 iina 这种占位置了
|