一些废话(可跳过)
前一段时间也算是好好的折腾了一下 Linux 桌面,然后深深地“迷上”了 i3,不过由于在水果本子上安装 Linux 不太顺利(懒)。
所以工作的大部分时间还是用着先进系统,不停需要切换到鼠标点点点点点点点点点真的是很烦人,更不提先进系统上那先进的 Window 系统(每次切到 App 会把所有的窗口都拉到前面来)了。
之前也有测试过各种试图在先进系统上模拟 i3 的应用,比如 amethyst、slate 等等,怎么说呢…都…不好用…包括者别要说到的 kwm 之前也已经试过,当时相当不稳定,而且功能也不太全,不过这次尝试之后发现已经能用了,基本能有 1/3 用 i3 的时候那么爽了…
[GitHub](https://github.com/koekeishiya/kwm) 上非常详细的,最简单的当然是
brew install koekeishiya/kwm/kwm
启动/管理的最简单方法是用 [homebrew-services](https://github.com/Homebrew/homebrew-services):
brew servies start/stop/restart kwm
然后你就会发现你所有的 Window 开始跳来跳去了!Don't Panic!
在 Github 仓库里也有提供一个[example](https://github.com/koekeishiya/kwm/tree/master/examples) config, 不过好像现在的是简化版,大概是想让用户自行配置比较好吧,我这里是之前版本留下的比较完整的 [example](https://gist.github.com/merrickluo/b27fd1b69729d6e4bb8397a9a394b1ba) 和我自己的一些修改,里面基本所有的选项都有注释。
所有可用的选项在[这里](https://koekeishiya.github.io/kwm/kwmc.html)。
一些概念:
space = i3 workspace
window = i3 window
display = 显示器
然后下面是我自己用到的常用按键配置: cmd+ctrl 当做 i3 的 mod alt+ctrl 当作 i3 的 shift+mod
同一个 space 下切换焦点
kwmc bindsym cmd+ctrl-h window -f west kwmc bindsym cmd+ctrl-l window -f east kwmc bindsym cmd+ctrl-j window -f south kwmc bindsym cmd+ctrl-k window -f north
同一个 space 下交换焦点 window 的位置
kwmc bindsym ctrl+alt-h window -s west kwmc bindsym ctrl+alt-j window -s south kwmc bindsym ctrl+alt-k window -s north kwmc bindsym ctrl+alt-l window -s east
切换 space,基本跟 Mission Control 一样,不过没有动画(important!)
kwmc bindsym ctrl-1 space -fExperimental 1 kwmc bindsym ctrl-2 space -fExperimental 2 kwmc bindsym ctrl-3 space -fExperimental 3 kwmc bindsym ctrl-4 space -fExperimental 4
需要注意的是这个功能会把 Mission Control 搞坏
启动 prefix,类似 i3 的自定义 mode,在 prefix 状态下,所有快捷键有另外的用途
// Activate prefix mode kwmc bindsym cmd+ctrl+q mode activate prefix
切换焦点到不同的显示器
kwmc bindsym cmd+ctrl+1 display -f 0 kwmc bindsym cmd+ctrl+2 display -f 1
轻量调整窗口宽度
kwmc bindsym prefix-h window -c reduce 0.05 kwmc bindsym prefix-l window -c expand 0.05
让 kwm 识别 Emacs 为普通窗口
kwmc rule owner="Emacs" properties={role="AXStandardWindow"}
有些需要 float 的窗口
kwmc rule properties={float="true"} owner="App Store" kwmc rule properties={float="true"} owner="System Preferences"
可根据需求酌情添加
差点忘了最重要的:随时随地启动 iTerm2
kwmc bindsym cmd-return exec open -na /Applications/iTerm2.app
重启和重新加载配置
kwmc bindsym cmd+alt+ctrl-q quit kwmc bindsym cmd+alt+ctrl-r config reload
这里上面一个命令虽然说是退出,但是因为我们是以 daemon 模式启动的,所以它会自动重启,我一般用这种方式来更新配置,因为下面一个命令按了之后 UI 没有反应,不知道有没有生效…
根据我这一两个星期的使用,大量使用的快捷键大概就这些了。
Problems
虽说现在已经到可用的程度,不过问题还是有一些的,比如有时候窗口跳来跳去,有些藏在后台的窗口会影响布局等…但是一般这种情况按下重启的快捷键也就好了…
现在拖后腿的反倒是用了 cVim 的 Chrome 呢,感觉不久后我又会启动一波 Firefox 体验活动了…