Hammerspoon - 岂至于窗口管理

2019-07-06 18:05:37 +08:00
 zuorn

为什么要费尽心思的用键盘替代鼠标操作。

在使用电脑的过程中,最优先的操作方式应该是键盘,而次等的方式才是鼠标,因为鼠标需要使用者在键盘和鼠标之间来回切换,因此影响效率。而 “纯键盘操作” 需要使用者记忆大量的键位和操作模式,所以纯键盘从来都是高阶操作。

鼠标长久以来都是顺应人的本能去设计的。但高阶操作是什么?高阶操作就是训练人克服本能,用更有效更科学的但非本能的方式去应对,所以才需要大量的练习,大量的实战,从而形成肌肉记忆思维定势去对抗本能。vim 如此,Hammerspoon 也如此。

有些了解过 Hammerspoon 可能把它看作一款窗口管理工具,用此来替代 Magent 等付费工具,但 Hammerspoon 的玩法绝不仅于此,本文将介绍 Hammerspoon 及我的配置。

Hammerspoon 介绍

Hammerspoon 是一款免费开源的 app,通过桥接操作系统与 Lua 脚本引擎的方式,让我们可以通过编写 Lua 代码来实现操作应用程序、窗口、鼠标、文本、音频设备、电池、屏幕、剪切板、定位、wifi 等。基本囊括了系统的各方面。

安装

第一次打开需要授予辅助功能权限,点击 Enable Accessibility即可。此时在 ~/.hammerspoon/init.lua 写入自己的配置文件在 Hammerspoon 单栏图标并选择 Reload Config 重载配置即可生效。

配置与升级:

将配置文件克隆到本地根目录。

git clone https://github.com/zuorn/hammerspoon_config ~/.hammerspoon

重新加载配置文件即可生效。

如果提示:already exists and is not an empty directory. 先删除目录

rm -rf ~/.hammerspoon

升级:

cd ~/.hammerspoon && git pull

功能实现

本配置基于 vim 风格,实现了窗口管理,剪切板,倒计时,快速启动等功能。所有模式按照指定快捷键进入,所有模式都可以用 escq退出。在进入对应模式之前只有模式快捷键生效,进入对应模式之后此模式的操作快捷键生效。

可以按下快捷键 shift + option + / 显示帮助面板查看各个模式快捷键。再按照提示切换模式。

窗口管理

按下前缀键 Option + R 进入窗口管理模式:

应用快速切换

按下前缀键 Option + tab 显示窗口提示,按下对应应用显示的字母快速切换。

展示应用快捷键

按下快捷键 Option + s 展示当前应用快捷键。

快速启动

按下快捷键 Option + a 打开快速启动,按下对应字母快速打开应用。

AClock - 显示当前时间

按下 Option + t 显示当前时间。

倒计时(番茄钟)

按下 Option + i 打开倒计时面板,按下对应数字开始计时。

系统剪切板

按下 Option + c 打开剪切板面板。

功能:

顶部菜单栏实时显示网速

没有对应快捷键,默认开启。

其他快捷键

自定义配置

拷贝私有配置文件

cp ~/.hammerspoon/config-example.lua ~/.hammerspoon/private/config.lua

按照注释编辑私有配置文件 ~/.hammerspoon/private/config.lua 即可。

其他功能(后续实现)

可自定义范围:

自己写配置

Lua 是一种非常简单的语言,没有编程经验也很容易上手。hammerspoon 官方也提供了一份教程,或者看看菜鸟教程

官方还有很多现成的 Spoons 勺子? 可以用,有些直接拿来绑定一下键位就可以直接用了,如果觉得官方勺子不符合自己的需求,你也可以把它改成自己想要的样子。多看看官方文档和相关的文章,以及官方勺子的源码,就很容易定制一个属于自己独一无二的神器。

参考:

5072 次点击
所在节点    Apple
14 条回复
czjackjin
2019-07-06 21:04:25 +08:00
收藏备用!!!
LMuyi
2019-07-07 00:51:22 +08:00
NB
shutongxinq
2019-07-07 03:53:34 +08:00
难道是 i3 wm mac 版?
20015jjw
2019-07-07 05:39:12 +08:00
amethyst 好用还是这个好用啊?我在用 amethyst 没理由换啊看这么复杂
20015jjw
2019-07-07 05:39:42 +08:00
仔细看了一下貌似没有 tiling?
sunocean
2019-07-07 08:58:14 +08:00
感谢分享,不过 V2 有不少关于这个软件的帖子了。
troyl
2019-07-07 09:06:53 +08:00
「岂『止』于」
ech0x
2019-07-07 09:52:26 +08:00
@20015jjw #5 有的,我记得上次看文档的时候有实验性质的 tiling 布局 API。
ech0x
2019-07-07 09:53:43 +08:00
crystone
2019-07-08 09:08:20 +08:00
图都挂了啊
linora
2019-07-08 10:36:25 +08:00
magnet 屏幕管理
controlplane 规则管理

bugOS 偶尔拖后腿
MrUser
2019-11-03 16:00:06 +08:00
咨询个问题:
虽然 launchOrFocus 可以打开 App,但是如果这个 App 打开了 2 份,比如 vscode 打开了 2 个窗口,如何循环切换这 2 个窗口?( launchOrFocus 只能切换到最后用过的那个窗口)
我想实现的是第一次 launchOrFocus 时切换到第 1 个 vscode,第二次打开时切换到第二个 vscode,第三次打开时切换到第 3 个 vscode,如果只有 3 个 vscode 窗口,在第四次 launchOrFocus 时 focus 第一个 vscode。
如有空闲还望指点一下,不胜感激
zuorn
2020-01-05 20:02:39 +08:00
@MrUser 你为什么不用 command + ~ 呢🤔
MrUser
2020-01-07 08:54:22 +08:00
> 回复 @zuorn 在 #13 发表的:
> @MrUser 你为什么不用 command + ~ 呢🤔
--------
感谢,没发现它,原来 MAC 天生自带这个功能……

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

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

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

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

© 2021 V2EX