推荐一个 MacOS 上用了就无法自拔的 App
Hammerspoon!
Hammerspoon 是 MacOS 上的自动化工具,许多介绍 Hammerspoon 的文章都主要介绍了它是一个窗口管理工具,但是 Hammerspoon 能做到的远远不仅如此。
Hammerspoon 开源、免费和支持插件,将大多数系统层面的接口封装成了 Lua API,这就让这把小锤子在 MacOS 上近乎无所不能,可玩性极高。
剪切板历史记录
音量调节快捷键
当我使用外接键盘时,自定义快捷键 cmd + up/down
调节系统音量
窗口管理
Wi-Fi 自动脚本
蓝牙耳机自动连接
输入法自动切换
定时自动提交代码
hs.timer
定时器,定时自动推送我的笔记和下载的电子书到 Github 仓库。USB 设备连接记录
消息推送
TTS 发声
say hello world
合成 TTS,模拟真人发音,让 Mac 会说话。更多... (完全停不下来啊)
Hammerspoon 已经将与 MacOS 之间的系统交互封装成了 Lua 的 API,配置 ~/.hammerspoon/init.lua
脚本可以与系统进行交互,只需要了解一些基本的 Lua 语法,就可以 Happy Hacking 了。
如果你懒得配置,可以参考我的配置,
已经完全停不下来了,Hammerspoon 每天至少省下了 30 分钟的时间
![]() | 1 jiangbingo 2019-04-09 10:37:51 +08:00 看起来不错 |
![]() | 2 daben1990 2019-04-09 10:39:15 +08:00 厉害了, |
![]() | 3 holy_sin 2019-04-09 10:42:46 +08:00 有点像 Alfred |
![]() | 4 NVDA 2019-04-09 10:44:18 +08:00 via iPhone ![]() 用很久了,根据不同软件自动切换输入法。 |
![]() | 5 easternslope OP @holy_sin Alfred 和 Hammerspoon 都在重度使用,个人使用下来感觉,Alfred 更适合主动触发和查询事件,而 Hammerspoon 更适合定时任务和注册事件回调触发一些自动脚本 |
![]() | 6 fyooo 2019-04-09 10:47:31 +08:00 收藏+感谢 |
![]() | 7 yangg 2019-04-09 10:53:42 +08:00 想系统休眠时退出 微信不知道能做到么?因为电脑端登录时关了手机端的提醒,导致手机上收不到提醒。 |
![]() | 8 easternslope OP @yangg 当然可以 参考我这段代码 https://github.com/wangshub/hammerspoon-config/tree/master/headphone 休眠或者锁屏状态自动退出和启动应用 |
![]() | 9 jpdev 2019-04-09 10:58:46 +08:00 via iPhone 感觉功能很类似一款正准备买的 app,能禁止待机不呢? |
![]() | 10 FunnyCodingXu 2019-04-09 11:00:54 +08:00 看起来不错 |
![]() | 11 easternslope OP @jpdev 哈哈,可以禁止待机,参考官方文档的这里 https://www.hammerspoon.org/docs/hs.caffeinate.html |
![]() | 12 lzs5240 2019-04-09 11:16:35 +08:00 楼主的 zsh 美化好漂亮, 发一下? |
13 ffkjjj 2019-04-09 11:19:06 +08:00 不错不错 |
14 OrangeM21 2019-04-09 11:20:18 +08:00 收藏 感谢 |
15 jsondog 2019-04-09 11:21:37 +08:00 炫酷 |
![]() | 16 MuscleOf2016 2019-04-09 11:23:59 +08:00 那么 win 上有类似的吗 |
17 Tomorrowxxy 2019-04-09 11:28:27 +08:00 ![]() 好牛逼的样子,我先去买个 mac |
![]() | 18 easternslope OP @lzs5240 满足你! 刚开源了 https://github.com/wangshub/dotfile |
![]() | 19 easternslope OP @Tomorrowxxy 我在这儿等你 |
![]() | 20 yangg 2019-04-09 11:33:20 +08:00 |
![]() | 21 RuiQu 2019-04-09 11:33:47 +08:00 哇哦 炫酷青年 |
![]() | 22 youngitachi 2019-04-09 11:33:54 +08:00 via Android 看起来不错 |
23 sarlanori 2019-04-09 11:35:08 +08:00 ![]() @MuscleOf2016 AutoHotkey 吧 |
![]() |
![]() | 25 Hilong 2019-04-09 11:37:44 +08:00 via Android 之前研究了下,自己写了一点小脚本,感觉发挥不了它的功能,就卸载了,看到楼主的分享,又想搞起来了 |
![]() | 26 easing 2019-04-09 11:40:45 +08:00 我其实并不需要这些功能,但我还是点进来赞一下 |
![]() | 27 easternslope OP @yangg 有两种方式都可以 1. hammerspoon 应用管理 api https://www.hammerspoon.org/docs/hs.application.html 2. hanmerspoon 去调用 applescript,再 applescript 里面调用 shell |
![]() | 28 yangg 2019-04-09 11:43:04 +08:00 osascript -e 'tell application "WeChat" to quit' 用这个可以了,多谢,就是要花好久,不知道能不能行 |
![]() | 29 mosesyou 2019-04-09 11:44:14 +08:00 天气怎么切换城市呢,我这里使用你的脚本还是深圳的天气 |
![]() | 30 hhyvs111 2019-04-09 11:44:48 +08:00 via iPhone 不错,马克了 |
![]() | 31 easternslope OP @mosesyou 不用切换,api 根据请求的 ip 地址自动识别城市,你 curl 试试~ |
![]() | 32 thet 2019-04-09 11:48:59 +08:00 via Android 看起来不错 回头试试看 |
![]() | 33 sunocean 2019-04-09 11:51:03 +08:00 via iPhone 楼主我能转载到我的博客吗? |
![]() | 34 sunocean 2019-04-09 11:52:41 +08:00 via iPhone 话说楼主录屏用的什么软件啊? |
![]() | 35 easternslope OP @scukmh 之前和你也有同样的困惑,但是后来发现 Alfred + Hammersoon 一起才是双剑合璧 |
![]() | 36 lishv2 2019-04-09 12:47:23 +08:00 插眼 |
![]() | 38 ATiGr 2019-04-09 13:16:38 +08:00 via iPhone 很早以前就发现了这个神器,然而因为自己太菜鸡,没有写出来什么有用的东西,不得不放弃…… 看到 LZ …… 膜拜一下 |
![]() | 39 gkiwi 2019-04-09 13:19:36 +08:00 已经用起来了,楼主 clipboard 就是我最想要的~3ks ! |
![]() | 40 18k 2019-04-09 13:34:37 +08:00 现在在用 Alfred 的 clipboard 管剪切板 manico 管窗口 万年历做日历和天气 滴答做番茄 LZ 这个一个打十个。。。 |
41 hihikm 2019-04-09 13:44:35 +08:00 via Android 确实方便 |
![]() | 42 easternslope OP @18k 哈哈哈,习惯用脚本解决问题了 |
43 cxtrinityy 2019-04-09 13:44:50 +08:00 买了一个显示器后,写了几个脚本,外接屏的时候快速拖屏到另外一个屏幕,鼠标快速屏幕切换和外屏分辨率切换 |
![]() | 44 easternslope OP |
![]() | 45 rrubick 2019-04-09 13:47:21 +08:00 貌似类似 bitbar ? 不过这得用 lua 吗? |
![]() | 46 easternslope OP |
47 cxtrinityy 2019-04-09 13:55:41 +08:00 @easternslope 没有,mac 的,自己 xjb 写的,看了下官方文档折腾几下就出来了,写的时候还不知道是 lua,后来工作的时候用到 lua 才发现 |
![]() | 48 kwGao 2019-04-09 14:41:07 +08:00 @easternslope 大神,我执行你给的 zsh 主题之后,zsh 报这个错误: /Users/gao/.zshrc:source:28: no such file or directory: /Users/kaboom/.oh-my-zsh/oh-my-zsh.sh ERROR: Can't find Ruby library file or shared library colorls /Users/gao/.zshrc:source:33: no such file or directory: /tab_complete.sh /Users/gao/.zshrc:source:51: no such file or directory: /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh /Users/gao/.zshrc:source:53: no such file or directory: /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh /Users/gao/.zshrc:77: command not found: pyenv /Users/gao/.zshrc:78: command not found: pyenv /Users/gao/.zshrc:80: command not found: fortune 这还有治不~ |
![]() | 49 tyhunter 2019-04-09 14:51:15 +08:00 准备试试,好像能解决一个痛点: 合盖睡眠后自动退出 Mac 微信,这样手机就会恢复推送 |
![]() | 50 RockPoetTodd 2019-04-09 15:05:38 +08:00 不错 收藏了 |
![]() | 51 easternslope OP @kwGao 这个和本主题无关,你在 https://github.com/wangshub/dotfile/issues 开个 Issue 吧 ~ |
![]() | 53 easternslope OP @tyhunter - 这个倒是可以在 Hammerspoon 里面检测屏幕状态实现,参考 https://github.com/wangshub/hammerspoon-config/blob/master/headphone/headphone.lua - 不过这个痛点我没注意,手机电脑同时登陆,微信里关闭手机静音,应该可以同时收到推送呀 |
54 Heavytiger 2019-04-09 15:22:45 +08:00 这个真心不错。 |
![]() | 55 loading 2019-04-09 15:26:04 +08:00 via Android 似乎很不错,有时间看看。 |
![]() | 56 byasm32 2019-04-09 15:26:18 +08:00 看起来很强大的样子,研究研究。。 |
57 blacklee 2019-04-09 15:27:59 +08:00 |
58 ultimate010 2019-04-09 15:39:19 +08:00 非常好用,顺便安利下一个好的 repo https://github.com/ashfinal/awesome-hammerspoon |
![]() | 59 dullwit 2019-04-09 15:43:06 +08:00 有获取当前时间的 api 吗? |
![]() | 60 00ps 2019-04-09 15:43:37 +08:00 有点心动~ |
![]() | 61 easternslope OP ![]() @dullwit 获取时间 api 接口 https://www.hammerspoon.org/docs/hs.timer.html |
62 crbee 2019-04-09 15:53:08 +08:00 插眼 |
63 stevenhawking 2019-04-09 15:57:04 +08:00 没有女朋友的你多 30 分钟有什么用 |
64 fsafdasfsdafsd 2019-04-09 16:00:26 +08:00 @stevenhawking 扎心了 |
65 QMore 2019-04-09 16:02:43 +08:00 很方便的样子,这有点类似于 iOS 上的捷径吧。 |
![]() | 66 goodryb 2019-04-09 16:23:46 +08:00 天气 Mac 就自带了,剪切板还是 alfred 比较厉害,支持文件和图片 这个拿来做一些自动化或者事件触发脚本比较有用,比如来公司连上 WiFi 后就静音 |
![]() | 67 freeznet 2019-04-09 16:37:17 +08:00 插眼感谢 |
![]() | 68 hubahuba nbsp; 2019-04-09 16:41:00 +08:00 插眼感谢 |
![]() | 69 Ginray 2019-04-09 16:42:47 +08:00 马……马来人.jpg |
![]() | 70 allonli 2019-04-09 16:50:28 +08:00 会玩,zsh 主题效果真不错。 |
![]() | 71 lzs5240 2019-04-09 16:53:27 +08:00 @easternslope 字体好像安装有点问题, 所有图标全是 ? 是这个没安装好吗? https://github.com/gabrielelana/awesome-terminal-fonts 安装说明安装了还是没弄好 |
![]() | 72 godgc 2019-04-09 16:55:01 +08:00 这个确实不错,定制化很强 |
![]() | 73 cheeto 2019-04-09 16:56:00 +08:00 装完这个 zsh 之后我的 terminal 就挂掉了,现在正在疯狂 google 如何恢复 terminal |
![]() | 74 easternslope OP ![]() @lzs5240 配置 iterm 字体 Preference>profiles>Text>font 我的配置截图见 https://raw.githubusercontent.com/wangshub/image-hosting/master/img/20190409165546.png |
![]() | 75 easternslope OP @heeto 别慌兄弟,里面有很多我使用第三方插件,你把 ~/.zshrc 里面你不需要的功能删掉就行,如果只是对主题配色感兴趣的话,可以参考我的方案 |
76 kylix 2019-04-09 17:02:08 +08:00 首先,得有一台 mac |
![]() | 77 hackpro 2019-04-09 17:02:56 +08:00 Python 撸个脚本配合 Alfred Workflow 爽歪歪 |
79 missdeer 2019-04-09 17:11:49 +08:00 感谢推荐 |
![]() | 80 easternslope OP @hackpro Alfred + Hammerspoon 一起用才是爽,哈哈,俩个正好互补 |
![]() | 81 lzs5240 2019-04-09 17:24:34 +08:00 @easternslope 安装你这个字体后搞定了,多谢 |
![]() | 82 tyhunter 2019-04-09 17:30:13 +08:00 @easternslope #53 感谢,我看下,如果手机也开启推送的话,两个地方的推送一起过来,会把其他推送都给淹没了 |
83 leesymbol 2019-04-09 17:40:19 +08:00 不错 收藏了 |
![]() | 84 Yien 2019-04-09 17:45:52 +08:00 via iPhone 赞感谢分享 |
![]() | 85 iiusky 2019-04-09 17:59:19 +08:00 玩玩看 |
![]() | 87 ruolis 2019-04-09 18:08:37 +08:00 不错不错 |
88 Wicked 2019-04-09 18:11:46 +08:00 via iPhone 看起来不错 |
![]() | 89 fazero 2019-04-09 18:49:29 +08:00 感谢,那个输入切换正需要 |
90 rafa 2019-04-09 19:21:39 +08:00 标记一下,回家试试 |
![]() | 91 swsh007 2019-04-09 19:29:47 +08:00 via Android 用这个有送 mac ? |
![]() | 92 easternslope OP @swsh007 送你 5 元优惠券一张 |
![]() | 93 yuthelloworld 2019-04-09 21:19:19 +08:00 via Android 马克 |
94 OfJCQ35M0N9ZD98T 2019-04-09 21:21:05 +08:00 Hammerspoon 下载好难 |
95 haon 2019-04-09 21:24:00 +08:00 借楼问一下 macos 能不能实现同一时刻只有一个声音播放?例如听语音时自动停止播放音乐 |
![]() | 96 gouflv 2019-04-09 21:25:42 +08:00 via Android 做窗口管理真的很棒,完全能根据自己的需求实现,比记住一堆快捷键舒服多了 |
![]() | 97 entimm 2019-04-09 21:26:05 +08:00 via Android 能不能搞个看股票的插件 |
![]() | @yuanmiexinghai 没梯子嘛?不是挺方便的嘛?下个 zip 包,解压,拖进去就完事了。 |
100 OfJCQ35M0N9ZD98T 2019-04-09 21:53:58 +08:00 @scukmh 主要就是没梯子。 |