为什么要费尽心思的用键盘替代鼠标操作。
在使用电脑的过程中,最优先的操作方式应该是键盘,而次等的方式才是鼠标,因为鼠标需要使用者在键盘和鼠标之间来回切换,因此影响效率。而 “纯键盘操作” 需要使用者记忆大量的键位和操作模式,所以纯键盘从来都是高阶操作。
鼠标长久以来都是顺应人的本能去设计的。但高阶操作是什么?高阶操作就是训练人克服本能,用更有效、更科学的但非本能的方式去应对,所以才需要大量的练习,大量的实战,从而形成肌肉记忆和思维定势去对抗本能。vim 如此,Hammerspoon 也如此。
有些了解过 Hammerspoon 可能把它看作一款窗口管理工具,用此来替代 Magent 等付费工具,但 Hammerspoon 的玩法绝不仅于此,本文将介绍 Hammerspoon 及我的配置。
Hammerspoon 是一款免费开源的 app,通过桥接操作系统与 Lua 脚本引擎的方式,让我们可以通过编写 Lua 代码来实现操作应用程序、窗口、鼠标、文本、音频设备、电池、屏幕、剪切板、定位、wifi 等。基本囊括了系统的各方面。
通过 Homebrew 安装:
(如果不了解 Homebrew
看这里。)
brew cask install hammerspoon
手动下载安装: https://github.com/Hammerspoon/hammerspoon/releases/tag/0.9.75 然后将应用程序拖到/Applications/
。
第一次打开需要授予辅助功能权限,点击 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 风格,实现了窗口管理,剪切板,倒计时,快速启动等功能。所有模式按照指定快捷键进入,所有模式都可以用
esc
或q
退出。在进入对应模式之前只有模式快捷键生效,进入对应模式之后此模式的操作快捷键生效。
可以按下快捷键 shift
+ option
+ /
显示帮助面板查看各个模式快捷键。再按照提示切换模式。
按下前缀键 Option
+ R
进入窗口管理模式:
h、j、k、l
移动为上下左右的半屏y、u、i、o
(即 hjkl 上方按键)移动为左上 /左下 /右上 /右下的四分之一窗口c
居中,按下 =、-
进行窗口大小缩放w、s、a、d
向上下左右移动窗口H、J、K、L
向左 /下增减窗口大小上、下、左、右
移动到相应方向上的显示器(多块显示器的话)[,]
左三分之二屏和右三分之二屏空格
将窗口投送到另外一块屏幕(假如有两块以上显示器的话)t
光标移动到所在窗口的中间位置tab
显示帮助面板,查看键位图按下前缀键 Option
+ tab
显示窗口提示,按下对应应用显示的字母快速切换。
按下快捷键 Option
+ s
展示当前应用快捷键。
按下快捷键 Option
+ a
打开快速启动,按下对应字母快速打开应用。
按下 Option
+ t
显示当前时间。
按下 Option
+ i
打开倒计时面板,按下对应数字开始计时。
按下 Option
+ c
打开剪切板面板。
功能:
没有对应快捷键,默认开启。
option
+ v
option
+ v
option
+ l
cmd
+ shift
+ ctrl
+ r
cmd
+ shift
+ ctrl
+ q
拷贝私有配置文件
cp ~/.hammerspoon/config-example.lua ~/.hammerspoon/private/config.lua
按照注释编辑私有配置文件 ~/.hammerspoon/private/config.lua
即可。
指定要启用模块
找到配置文件启用模块,注释对应模块可禁止用对应功能。
绑定快速启动 app 及快捷键
自定义模式快捷键
自定义 hammerspoon 快捷键绑定
Lua 是一种非常简单的语言,没有编程经验也很容易上手。hammerspoon 官方也提供了一份教程,或者看看菜鸟教程。
官方还有很多现成的 Spoons 勺子? 可以用,有些直接拿来绑定一下键位就可以直接用了,如果觉得官方勺子不符合自己的需求,你也可以把它改成自己想要的样子。多看看官方文档和相关的文章,以及官方勺子的源码,就很容易定制一个属于自己独一无二的神器。
1
czjackjin 2019-07-06 21:04:25 +08:00
收藏备用!!!
|
2
LMuyi 2019-07-07 00:51:22 +08:00 via iPhone
NB
|
3
shutongxinq 2019-07-07 03:53:34 +08:00
难道是 i3 wm mac 版?
|
4
20015jjw 2019-07-07 05:39:12 +08:00
amethyst 好用还是这个好用啊?我在用 amethyst 没理由换啊看这么复杂
|
5
20015jjw 2019-07-07 05:39:42 +08:00
仔细看了一下貌似没有 tiling?
|
6
sunocean 2019-07-07 08:58:14 +08:00
感谢分享,不过 V2 有不少关于这个软件的帖子了。
|
7
troyl 2019-07-07 09:06:53 +08:00 via iPhone
「岂『止』于」
|
9
ech0x 2019-07-07 09:53:43 +08:00
|
10
crystone 2019-07-08 09:08:20 +08:00
图都挂了啊
|
11
linora 2019-07-08 10:36:25 +08:00
magnet 屏幕管理
controlplane 规则管理 bugOS 偶尔拖后腿 |
12
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。 如有空闲还望指点一下,不胜感激 |