推荐一个 MacOS 上用了就无法自拔的神器 [Hammerspoon]

2019-04-09 10:27:30 +08:00
 easternslope

推荐一个 MacOS 上用了就无法自拔的 App

Hammerspoon

Hammerspoon 是 MacOS 上的自动化工具,许多介绍 Hammerspoon 的文章都主要介绍了它是一个窗口管理工具,但是 Hammerspoon 能做到的远远不仅如此。

Hammerspoon 开源、免费和支持插件,将大多数系统层面的接口封装成了 Lua API,这就让这把小锤子在 MacOS 上近乎无所不能,可玩性极高

我都用 Hammerspoon 做了些什么?

其他插件思路

使用入门

Hammerspoon 已经将与 MacOS 之间的系统交互封装成了 Lua 的 API,配置 ~/.hammerspoon/init.lua 脚本可以与系统进行交互,只需要了解一些基本的 Lua 语法,就可以 Happy Hacking 了。

我的参考配置

如果你懒得配置,可以参考我的配置,

wangshub/hammerspoon-config

最后

已经完全停不下来了,Hammerspoon 每天至少省下了 30 分钟的时间 😀⏱

33921 次点击
所在节点    程序员
156 条回复
cuixiao603
2019-04-10 13:17:03 +08:00
光标错位的问题怎么解决呢 我看你的截图貌似没这个问题
yoohwzy
2019-04-10 13:46:05 +08:00
借着帖子问一下, Hammerspoon 的两种 watcher:start() 哪种更好一些, 还是没有区别, 抑或是有其它更好的写法?

https://pastebin.com/8uj3RkVd

第一种是两个不同的功能, start 两个 watcher. 第二种是将新建 fun, 汇聚两个功能函数, 然后 start 一个 watcher.
firhome
2019-04-10 14:08:34 +08:00
楼主,你的自动提交 git 和 拉取 git 的 .sh 可以提供一下吗?
ahonn
2019-04-10 14:20:03 +08:00
有意思,自己写了个窗口管理脚本 https://github.com/ahonn/dotfiles/blob/master/hammerspoon/modules/window.lua

还是这种能够深度按自己需求定制的软件给力啊
ahonn
2019-04-10 14:21:14 +08:00
phpcyy
2019-04-10 15:03:23 +08:00
@yangg

我发现我也有这个需求,看下下边的可以不

function caffeinateCallback(eventType)
if (eventType == hs.caffeinate.watcher.screensDidSleep) then
timer = hs.timer.doAfter(300, function()
local wechat = hs.application.get("WeChat")
wechat:kill()
end)
print("timer started")
elseif (eventType == hs.caffeinate.watcher.screensDidWake) then
timer:stop()
print("timer canceled")
elseif (eventType == hs.caffeinate.watcher.screensDidLock) then
print("lock")
elseif (eventType == hs.caffeinate.watcher.screensDidUnlock) then
print("unlock")
end
end

caffeinateWatcher = hs.caffeinate.watcher.new(caffeinateCallback)
caffeinateWatcher:start()
Volekingsg
2019-04-10 16:55:45 +08:00
当初拉我入 Hammerspoon 坑的是这篇文章的题图,通过鼠标滑动一个建立一个 iTerm2 的窗口,酷爆了,虽然后来发现还是 Hotkey Window 方便🤣
https://blog.theodo.fr/2018/03/making-runtime-funtime-hammerspoon/
circleee
2019-04-10 17:33:22 +08:00
厉害
EINDEX
2019-04-10 20:26:31 +08:00
可以实现状态栏 文字分两行吗
nobody123123
2019-04-11 09:38:06 +08:00
@ladypxy 这话真不假,装了一堆窗口管理插件用起来还是屎一样难受。为了贪念原生的命令行和 Cmd 快捷键。 默默忍受 3 年了
superzzy
2019-04-11 10:18:51 +08:00
collection list
biabia123456
2019-04-12 08:59:46 +08:00
已搞定家里 WiFi 自动设置指定网关 公司 WiFi 自动设置指定 ip 其余默认 DHCP 美滋滋
cooooler
2019-05-02 23:21:32 +08:00
自动切换输入法在我这无效
zuorn
2019-06-29 11:33:29 +08:00
真的爱了,相见恨晚。
LudwigWS
2019-08-12 13:41:06 +08:00
Mark 一下,参考学习
MrUser
2019-11-28 17:08:54 +08:00
> 回复 @EINDEX 在 #149 发表的:
> 可以实现状态栏 文字分两行吗
--------
直接使用 \n 就行了,不过 2 行中间间距很大而且不知道怎么调这个间距

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/553241

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX