🌟 主要特性
- 简单的 YAML 配置
- 多显示器支持
- 可自定义特定窗口的规则
- 一键式简易安装
- 与 Zebar 状态栏集成
安装
可以通过发布页面下载 GlazeWM 的最新版本。 安装过程中可以选择性地安装 Zebar。
目前不支持 Scoop 和 Winget。如果您想从源码构建,请参阅贡献指南。
默认快捷键
首次启动 GlazeWM 时,可以选择生成默认配置。
以下是所有可用命令及其默认快捷键的速查表。
配置文档
默认配置文件生成在 %userprofile%\.glzr\glazewm\config.yaml
。
要使用不同的配置文件位置,您可以使用 CLI 参数 --config="..."
启动 GlazeWM 可执行文件,如下所示:
./glazewm.exe --config="C:\<配置路径>\config.yaml"
配置:常规
general:
# 窗口管理器启动时要运行的命令(例如运行脚本或启动其他应用程序)。
startup_commands: []
# 是否自动聚焦光标下的窗口。
focus_follows_cursor: false
# 聚焦当前工作区时是否在之前聚焦的工作区之间来回切换。
toggle_workspace_on_refocus: false
cursor_jump:
# 是否在指定触发器上自动移动光标。
enabled: true
# 光标跳转的触发器:
# - 'monitor_focus':在显示器之间切换焦点时跳转。
# - 'window_focus':在窗口之间切换焦点时跳转。
trigger: "monitor_focus"
配置:快捷键
可以通过 keybindings
选项自定义可用的键盘快捷键。快捷键由一个或多个按键组合和按下时要运行的一个或多个命令组成。
建议使用 Alt 键作为快捷键。Windows 键不幸很难重新映射,因为操作系统保留了某些快捷键(例如 lwin+l
)。
keybindings:
# 要运行的命令。
- commands: ["focus --workspace 1"]
# 触发快捷键的按键组合。
bindings: ["alt+1"]
# 可以按顺序运行多个命令(例如将窗口移动到工作区 + 聚焦工作区)。
- commands: ["move --workspace 1", "focus --workspace 1"]
bindings: ["alt+shift+1"]
可用于快捷键的完整按键列表:
按键列表
| 按键 | 描述 | | --------------------- | -------------------------------------------------------------- | | `a` - `z` | 字母键 | | `0` - `9` | 数字键 | | `numpad0` - `numpad9` | 数字小键盘键 | | `f1` - `f24` | 功能键 | | `shift` | 左或右SHIFT键 | | `lshift` | 左SHIFT键 | | `rshift` | 右SHIFT键 | | `control` | 左或右CTRL键 | | `lctrl` | 左CTRL键 | | `rctrl` | 右CTRL键 | | `alt` | 左或右ALT键 | | `lalt` | 左ALT键 | | `ralt` | 右ALT键 | | `lwin` | 左⊞Windows徽标键 | | `rwin` | 右⊞Windows徽标键 | | `space` | 空格键 | | `escape` | ESC键 | | `back` | 退格键 | | `tab` | TAB键 | | `enter` | 回车键 | | `left` | ←方向键 | | `right` | →方向键 | | `up` | ↑方向键 | | `down` | ↓方向键 | | `num_lock` | 数字锁定键 | | `scroll_lock` | 滚动锁定键 | | `caps_lock` | 大写锁定键 | | `page_up` | 上翻页键 | | `page_down` | 下翻页键 | | `insert` | 插入键 | | `delete` | 删除键 | | `end` | 结束键 | | `home` | 开始键 | | `print_screen` | 打印屏幕键 | | `multiply` | `*`键(仅在数字小键盘上) | | `add` | `+`键(仅在数字小键盘上) | | `subtract` | `-`键(仅在数字小键盘上) | | `decimal` | DEL键(仅在数字小键盘上) | | `divide` | `/`键(仅在数字小键盘上) | | `volume_up` | 音量增大键 | | `volume_down` | 音量减小键 | | `volume_mute` | 静音键 | | `media_next_track` | 媒体下一曲键 | | `media_prev_track` | 媒体上一曲键 | | `media_stop` | 媒体停止键 | | `media_play_pause` | 媒体播放/暂停键 | | `oem_semicolon` | 美式标准键盘上的`;`/`:`键(因键盘而异) | | `oem_question` | 美式标准键盘上的`/`/`?`键(因键盘而异) | | `oem_tilde` | 美式标准键盘上的`` ` ``/`~`键(因键盘而异) | | `oem_open_brackets` | 美式标准键盘上的`[`/`{`键(因键盘而异) | | `oem_pipe` | 美式标准键盘上的`\`/`\|`键(因键盘而异) | | `oem_close_brackets` | 美式标准键盘上的`]`/`}`键(因键盘而异) | | `oem_quotes` | 美式标准键盘上的`'`/`"`键(因键盘而异) | | `oem_plus` | 美式标准键盘上的`=`/`+`键(因键盘而异) | | `oem_comma` | 美式标准键盘上的`,`/`<`键(因键盘而异) | | `oem_minus` | 美式标准键盘上的`-`/`_`键(因键盘而异) | | `oem_period` | 美式标准键盘上的`.`/`>`键(因键盘而异) |如果某个键不在上述列表中,在快捷键绑定中使用其字符时可能仍然受支持(例如,挪威语Å字符可以使用alt+å
)。
德语和美式国际键盘对右侧alt键的处理不同。对于这些键盘布局,请使用
ralt+ctrl
而不是ralt
来绑定右侧alt键。
配置:间隔
可以通过配置文件中的gaps
属性更改窗口之间的间隔。内部和外部间隔分开设置。
gaps:
# 相邻窗口之间的间隔
inner_gap: "20px"
# 窗口与屏幕边缘之间的间隔
outer_gap:
top: "20px"
right: "20px"
bottom: "20px"
left: "20px"
配置:工作区
需要通过配置文件中的workspaces
属性预定义工作区。每个显示器在启动时会自动分配一个工作区。
workspaces:
# 这是工作区的唯一ID。它用于快捷键命令,如果未提供`display_name`,
# 也会作为第三方应用程序(如Zebar)中显示的标签。
- name: "1"
# 可选项,用于覆盖第三方应用程序中使用的工作区标签。
# 不需要是唯一的。
display_name: "工作"
# 可选项,强制将工作区绑定到特定显示器(如果存在)。
# 0是最左边的屏幕,1是右边的下一个屏幕,依此类推。
bind_to_monitor: 0
# 可选项,防止工作区在为空时被停用。
keep_alive: false
配置:窗口规则
可以在窗口首次启动时运行命令。这对于添加特定窗口的行为很有用,比如始终以全屏模式启动窗口或分配到特定工作区。 Windows 可以通过进程、类和标题来定位。可以同时使用多个匹配条件来更精确地定位窗口。
window_rules:
- commands: ["move --workspace 1"]
match:
# 将浏览器移动到工作区 1。
- window_process: { regex: "msedge|brave|chrome" }
- commands: ["ignore"]
match:
# 忽略任何 Zebar 窗口。
- window_process: { equals: "zebar" }
# 忽略浏览器的画中画窗口。
# 注意,标题和类必须同时匹配才能执行规则。
- window_title: { regex: "[Pp]icture.in.[Pp]icture" }
window_class: { regex: "Chrome_WidgetWin_1|MozillaDialogClass" }
配置:窗口效果
可以通过 window_effects
选项为窗口应用视觉效果。目前,只有彩色边框效果可用,未来会添加更多效果。
注意:窗口效果仅适用于 Windows 11。
window_effects:
# 应用于焦点窗口的视觉效果。
focused_window:
# 用彩色边框突出显示窗口。
border:
enabled: true
color: "#0000ff"
# 应用于非焦点窗口的视觉效果。
other_windows:
border:
enabled: false
color: "#d3d3d3"
配置:窗口行为
window_behavior
配置选项用于自定义窗口可处于的状态(tiling
、floating
、minimized
和 fullscreen
)。
window_behavior:
# 尽可能以此状态创建新窗口。
# 允许的值:'tiling'、'floating'。
initial_state: "tiling"
# 设置创建新窗口时的默认选项。这也会
# 更改状态改变命令(如 `set-floating`)在
# 没有任何标志的情况下使用时的默认值。
state_defaults:
floating:
# 是否默认将浮动窗口居中。
centered: true
# 是否将浮动窗口显示在最顶层。
shown_on_top: false
fullscreen:
# 尽可能最大化窗口。如果窗口没有
# 最大化按钮,则会正常全屏显示。
maximized: false
配置:绑定模式
绑定模式用于在 GlazeWM 运行时修改键绑定。
可以使用 wm-enable-binding-mode --name <NAME>
启用绑定模式,使用 wm-disable-binding-mode --name <NAME>
禁用绑定模式。
binding_modes:
# 启用时,可以通过方向键或 HJKL 调整焦点窗口的大小。
- name: "resize"
keybindings:
- commands: ["resize --width -2%"]
bindings: ["h", "left"]
- commands: ["resize --width +2%"]
bindings: ["l", "right"]
- commands: ["resize --height +2%"]
bindings: ["k", "up"]
- commands: ["resize --height -2%"]
bindings: ["j", "down"]
# 按 Enter/Escape 返回默认键绑定。
- commands: ["wm-disable-binding-mode --name resize"]
bindings: ["escape", "enter"]
常见问题
问:如何在启动时运行 GlazeWM?
右键单击 GlazeWM 可执行文件 -> "创建快捷方式"来创建快捷方式。将快捷方式放入启动文件夹中,可以在文件资源管理器的顶部栏输入 shell:startup
访问该文件夹。
问:如何创建"插入布局"?
您可以通过使用 alt+v
更改平铺方向来创建自定义布局。这会改变下一个窗口相对于当前窗口的放置位置。如果当前窗口的方向是水平的,新窗口将被放置在它的右侧。如果是垂直的,新窗口将被放置在它的下方。这也适用于移动窗口;静止窗口的平铺方向将影响移动窗口的放置位置。
可以使用社区制作的脚本,如 ParasiteDelta/GlaAlt 和 burgr033/GlazeWM-autotiling-python 来自动更改平铺方向。目前不支持自动布局的原生支持。
问:如何为"插入应用程序"创建规则?
要匹配特定应用程序,您需要一个执行命令和窗口的进程名称、标题或类名。例如,如果您使用 Flow-Launcher 并想让设置窗口浮动,可以这样做:
window_rules:
- command: "set-floating"
match:
- window_process: { equals: "Flow.Launcher" }
title: { equals: "Settings" }
像 Winlister 或 AutoHotkey 的 Window Spy 这样的程序可以用来获取窗口的信息。
问:当"插入应用程序"获得焦点时,如何忽略 GlazeWM 的键绑定?
目前不支持这个功能,但是在默认配置中,alt+shift+p
键绑定用于禁用所有其他键绑定,直到再次按下 alt+shift+p
。