250626 - 平铺窗口管理器
平铺窗口管理器(Tiling Window Manager)是一种窗口管理器,区别于浮动窗口管理器,也就是我们日常在 Windows 和 macOS 系统上使用的窗口管理。
顾名思义,平铺窗口管理器的特点在于,所有的窗口都是自动平铺的,不会像浮动窗口一样互相重叠。平铺,意味着可以最大化利用屏幕空间。自动,则意味着更少的手动鼠标操作,更规整的排列。
实际使用起来大概是这样的:
这种窗口管理器在 Linux 系统中较为流行,大概是因为 Linux 用户中开发者比较多,更加偏好这种通过键盘操作的工作方法,能够接受较高的配置成本,也比较接近 tmux 等工具的窗口管理习惯。
在 macOS 平台上,可以使用 yabai 这个软件实现同样的功能。
安装也起来也很简单,可以直接通过 brew 安装。
brew install koekeishiya/formulae/yabai
安装完了之后,还需要简单的配置一下。在 .config/yabai
目录下新建一个 yabairc
文件。
下面是我目前在用的配置,主体部分来自 Youtube 博主 Josean Martinez,末尾加上了一些规则让某些 App 绕开 yabai 控制,例如微信,RayCast 等。
# default layout (can be bsp, stack or float) yabai -m config layout bsp # New window spawns to the right if vertical split, or bottom if horizontal split yabai -m config window_placement second_child # padding set to 4px yabai -m config top_padding 4 yabai -m config bottom_padding 4 yabai -m config left_padding 4 yabai -m config right_padding 4 yabai -m config window_gap 4 # center mouse on window with focus yabai -m config mouse_follows_focus on # modifier for clicking and dragging with mouse yabai -m config mouse_modifier alt # set modifier + left-click drag to move window yabai -m config mouse_action1 move # set modifier + right-click drag to resize window yabai -m config mouse_action2 resize # when window is dropped in center of another window, swap them (on edges it will split it) yabai -m mouse_drop_action swap yabai -m rule --add app="^System Settings$" manage=off yabai -m rule --add app="^Calculator$" manage=off yabai -m rule --add app="^WeChat$" manage=off yabai -m rule --add app="^Spotify$" manage=off yabai -m rule --add app="^Surge" manage=off yabai -m rule --add app="^RayCast" manage=off