MacOS Amethyst平铺桌面管理环境配置

MacOS Amethyst平铺桌面管理环境配置

最近感觉平铺形式的桌面窗口管理可以提高工作效率,准备试试,这里记录下配置过程,希望对你有帮助。

Linux下广为人知的窗口管理程序叫XMonad,MacOS上也有人开发了与之对应的Amethyst[1],这里主要讲下Amethyst的安装、配置,以及我是如何搭配系统桌面管理和用SpaceId工具增强系统桌面管理来达到类似XMonad的多桌面管理效果的。

Amethyst

MacOS中和XMonad一样用途的窗口管理软件。可以把所有窗口都平铺显示。方便窗口的切换。

安装

brew install --cask amethyst

brew会自动安装到Mac的应用中,第一次启动后,注意在系统”安全性与隐私“设置里的打开Amethyst的”辅助功能“权限,打开权限后重启Amethyst。

使用

和tmux、screen、XMonad等软件类似,Amethyst也需要用修饰键,它的修饰键固定为2个:

修饰键1 修饰键2
Option + Shift Option + Shift + Ctrl

常用的命令如下:

命令 说明
修饰键1 + j / k 切换当前激活窗口
修饰键1 + enter(回车) 将当前切换窗口设置为主窗口(即放到占满屏幕左侧的位置)
修饰键2 + 1 / 2 / 3 / … 将当前激活窗口扔到桌面 1 / 2 / 3 /…
修饰键1 + Space(空格) 切换窗口平铺模式
修饰键1 + h / l 调整左右窗口的横向大小

搭配系统窗口管理快捷键

Mac系统自带窗口管理的一些快捷键设置,将它们和Amethyst的修饰键统一,可以方便我们对窗口的进行更灵活控制:

上图是我的设置,沿用Amethyst的修饰键进行扩展说明:

Mac窗口快捷键 说明
修饰键1 + ↑ 打开系统窗口调度中心
修饰键1 + ↓ 打开应用程序窗口展示界面
修饰键1 + ← 移动到上一个桌面
修饰键1 + → 移动到下一个桌面
修饰键1 + 1 / 2 / 3 /… 移动到第 1 / 2 / 3 /… 个桌面

搭配配置iTerm2 hotkey window

iTerm2支持系统全局的”hotkey windoˇw“功能。配置方法[2]:

iTerm2 –> Perferneces –> Keys –> Hotkey –> Create a Dedicated Hotkey Window… 配置界面如下:

我把iTerm2的hotkey window快捷键设置成了和Amethyst相同修饰键的Ctrl + Option + T,hotkey window显示后,可以通过iTerm2的Command + N新建iTerm2窗口。

依然沿用Amethyst的修饰键,下表说明下对iTerm2的配置:

iTerm2快捷键 说明
修饰键1 + t 弹出iTerm2 hotkey window
Command + N 在iTerm2 hotkey window弹出的情况下,在当前桌面新建一个iTerm2窗口,这个新建窗口会被Amethyst和其他窗口一起平铺显示,达到快速创建一个命令行中断的目的。

用SpaceId显示当前在第几个桌面

如果不使用这个程序想要查看当前在第几个桌面工作,只能打开窗口调度中心(用触控板3指向上滑或者用我们在上边配置的”修饰键1 + ↑“)[3],不是很方便,因此我找到了SpaceId [4] 这个工具,解决了这个问题。这个工具的安装也很方便,直接从他的github Repo下载运行二进制程序即可。

SpaceId可以在Mac状态栏显示高亮显示当前处于哪个桌面桌面,如下图就表示我工作在桌面1状态。

第3个"F"指的是全屏状态的窗口,熟悉mac的朋友应该知道全屏是不被算作桌面的,我在这里是在桌面2和桌面3之间开了一个全屏显示的iTerm2,这里也指示出来了:


[1] https://github.com/ianyh/Amethyst

[2] https://localheinz.com/blog/2018/10/02/system-wide-terminal-accessible-via-hotkey-on-macos/

[3] https://apple.stackexchange.com/questions/18047/can-i-show-the-mission-control-desktop-number-in-the-menu-bar

[4] https://github.com/dshnkao/SpaceId

Leave a Reply

Your email address will not be published. Required fields are marked *