使用 GlazeWM + Yasb 定制 Windows 窗口管理器

· · 科技·工程

:::info[Changelog] 11.25:更换 YASB 的 GitHub 链接 :::

本文将介绍如何通过 GlazeWM 和 YASB 这两款工具,将 Windows 系统打造成一个高效、美观的平铺式桌面环境。

1. 工具概述

1.1 GlazeWM:Windows 平铺窗口管理器

GlazeWM 是一款专为 Windows 设计的平铺式窗口管理器,灵感来源于 Linux 用户熟悉的 i3wm。它通过键盘命令帮助用户高效组织窗口布局,自动排列窗口以充分利用屏幕空间。使用 Rust 语言开发,GlazeWM 在性能和内存管理方面表现出色。

1.2 YASB:现代化状态栏工具

YASB(Yet Another Status Bar)是一款面向 Windows 平台的轻量级桌面状态栏工具。它采用模块化设计,允许用户自由组合各种系统监控组件,如 CPU/内存使用率、网络状态和音频控制等。

2. 下载与安装

2.1 GlazeWM 安装

通过 Winget 安装(推荐):

winget install GlazeWM

手动安装:

  1. 访问 GlazeWM 的 GitHub 发布页面
  2. 下载最新版本的安装程序
  3. 运行安装程序,可选择是否同时安装 Zebar 状态栏

2.2 YASB 安装

YASB 可通过其 GitHub 仓库下载最新版本。

3. 配置指南

3.1 安装 YASB 主题(使用主题浏览器)

YASB 提供了便捷的主题浏览器功能,可以快速安装和管理主题:

使用主题浏览器安装主题:

  1. 打开 YASB 配置界面
  2. 导航到 "主题" 选项卡
  3. 点击 "主题浏览器" 按钮
  4. 浏览可用主题列表,选择喜欢的主题
  5. 点击 "安装" 按钮,主题将自动下载并应用

手动安装主题:

# 在 YASB 配置文件中手动添加主题
+ styles:
+   theme: "dracula"
+   background: "#282a36"
+   foreground: "#f8f8f2"
+   primary: "#bd93f9"
+   secondary: "#6272a4"

创建自定义主题:

# 创建自定义主题配置文件
+ # ~/.config/yasb/themes/custom-theme.yaml
+ name: "Custom Theme"
+ author: "Your Name"
+ version: "1.0.0"
+ 
+ variables:
+   background: "#1a1b26"
+   foreground: "#c0caf5"
+   primary: "#7aa2f7"
+   warning: "#e0af68"
+   error: "#f7768e"
+ 
+ styles:
+   status-bar:
+     background: "${background}"
+     color: "${foreground}"
+     border-color: "${primary}"

3.2 GlazeWM 基础配置

首次启动 GlazeWM 时,系统会询问是否生成默认配置文件。配置文件位于 %userprofile%\.glzr\glazewm\config.yaml

基本结构:

+ general:
+   startup_commands: []
+   focus_follows_cursor: false
+ 
+ keybindings:
+   - commands: ["focus --workspace 1"]
+     bindings: ["alt+1"]
+   - commands: ["move --workspace 1", "focus --workspace 1"]
+     bindings: ["alt+shift+1"]
+ 
+ workspaces:
+   - name: "1"
+     display_name: "工作"
+     bind_to_monitor: 0

3.3 YASB 配置与 GlazeWM 集成

YASB 1.5.6 版本新增了对 GlazeWM 的原生支持,能够实时显示 GlazeWM 的工作区状态。

专用组件配置: 在 YASB 配置中启用 GlazeWM 组件:

+ components:
+   - type: glazewm-workspaces
+     active_empty_label: "○"
+     active_populated_label: "●"
+   - type: glazewm-binding-mode

3.4 窗口规则配置

为特定应用设置自动行为:

+ window_rules:
+   - command: "set-floating"
+     match:
+       - window_process: { equals: "notepad.exe" }
+   - command: "move --workspace 2"
+     match:
+       - window_process: { equals: "chrome.exe" }

4. 主题与美化

4.1 字体配置

中文字体美化建议:

· 中文推荐:使用思源黑体或霞鹜文楷等开源中文字体 · 英文推荐:使用 Fira Code 或 Cascadia Code 等编程字体 · 大小设置在 12-14pt 之间,保证状态栏清晰可读

在 YASB 配置中指定字体:

+ styles:
+   font_family: "LXGW WenKai, Fira Code"
+   font_size: "13px"

4.2 图标字体

推荐使用以下图标字体:

  1. Nerd Fonts:集成了多种流行图标库
  2. Font Awesome:提供丰富的矢量图标
  3. Material Design Icons:Google 推出的图标库

安装后,在 YASB 配置中使用:

+ components:
+   - type: cpu
+     icon: ""
+     format: "{icon} {usage}%"

4.3 颜色主题

GlazeWM 窗口效果配置(仅限 Windows 11):

+ window_effects:
+   focused_window:
+     border:
+       enabled: true
+       color: "#0000ff"
+   other_windows:
+     border:
+       enabled: false
+       color: "#d3d3d3"

YASB 颜色主题:

+ /* 在 YASB 的 CSS 样式文件中 */
+ .status-bar {
+   background-color: #2b2b2b;
+   color: #ffffff;
+   border-color: #3b3b3b;
+ }
+ 
+ .workspace-active {
+   background-color: #4a5a94;
+   color: #ffffff;
+ }

5. 高级集成与优化

5.1 与 Nexus 等 Dock 工具搭配

虽然 GlazeWM 和 YASB 提供了大部分桌面功能,但可以与 Nexus 等 Dock 工具搭配使用:

· 功能分工:GlazeWM 负责窗口管理,YASB 负责系统状态显示,Nexus 负责快速启动 · 位置协调:将 Nexus 设置为自动隐藏,避免与 YASB 状态栏冲突 · 主题统一:调整各工具颜色方案,形成一致的视觉效果

5.2 性能优化

YASB v1.7.2 版本进行了多项性能优化:

· 重构 CLI 初始化流程,移除不必要的操作 · 将 requests 库替换为更轻量的 urllib · 优化环境变量加载的日志记录机制 · 实现数据抓取器的运行状态检查,避免重复初始化

5.3 多显示器配置

+ workspaces:
+   - name: "1"
+     display_name: "主工作区"
+     bind_to_monitor: 0
+   - name: "2"
+     display_name: "副工作区"
+     bind_to_monitor: 1

6. 常见问题解答

6.1 安装问题

Q:安装后 GlazeWM 无法启动? A:确保系统为 Windows 10 或更高版本,并尝试以管理员权限运行。

Q:如何更改 GlazeWM 配置文件路径? A:可以通过命令行参数指定:

./glazewm.exe --config="C:\路径\至\您的\配置文件\config.yaml"

或设置环境变量:

setx GLAZEWM_CONFIG_PATH "C:\路径\至\您的\配置文件\config.yaml"

6.2 使用问题

Q:如何暂时禁用 GlazeWM 快捷键? A:默认配置中,按 alt+shift+p 可以暂停 GlazeWM,再次按下恢复。

Q:拖拽窗口时出现闪烁现象? A:这是已知问题,已在最新版本中通过增量式位置更新和双缓冲绘制技术解决。确保使用最新版本,并更新显卡驱动。

Q:如何为特定应用程序创建规则? A:需要知道应用程序的进程名,可通过任务管理器获取:

+ window_rules:
+   - command: "set-floating"
+     match:
+       - window_process: { equals: "notepad.exe" }

6.3 自定义问题

Q:如何调整窗口之间的间距? A:在 GlazeWM 配置中修改 gaps 设置:

+ gaps:
+   inner_gap: "20px"
+   outer_gap:
+     top: "20px"
+     right: "20px"
+     bottom: "20px"
+     left: "20px"

Q:YASB 状态栏不显示 GlazeWM 工作区信息? A:确保在 YASB 配置中启用了 GlazeWM 工作区组件,并且两者版本兼容。

7 快捷键

GlazeWM 默认快捷键:

alt+1-9 切换到对应工作区 alt+shift+1-9 移动窗口到对应工作区 alt+enter 打开新终端 alt+h/j/k/l 在窗口间移动焦点 alt+shift+space 切换平铺/浮动模式

8. 总结

GlazeWM 与 YASB 组合为 Windows 用户提供了类似 Linux 平铺窗口管理器的高效体验。通过键盘驱动的操作方式、可定制的布局和实时系统状态显示,这一解决方案能够显著提升工作效率和桌面整洁度。