250626 - 平铺窗口管理器

平铺窗口管理器(Tiling Window Manager)是一种窗口管理器,区别于浮动窗口管理器,也就是我们日常在 Windows 和 macOS 系统上使用的窗口管理。

顾名思义,平铺窗口管理器的特点在于,所有的窗口都是自动平铺的,不会像浮动窗口一样互相重叠。平铺,意味着可以最大化利用屏幕空间。自动,则意味着更少的手动鼠标操作,更规整的排列。

实际使用起来大概是这样的:

Demo

这种窗口管理器在 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

#daily #productivity