Waybar配置完全指南:打造个性化状态栏
什么是Waybar?
Waybar是一款专为Wayland合成器设计的现代化状态栏工具,特别适合与Sway、Hyprland等窗口管理器配合使用。它采用模块化设计,允许用户高度自定义状态栏的外观和功能。
配置文件基础
Waybar使用JSONC格式的配置文件(支持注释的JSON),默认命名为config或config.jsonc。系统会按照以下路径顺序查找配置文件:
$XDG_CONFIG_HOME/waybar/~/.config/waybar/~/waybar//etc/xdg/waybar/@sysconfdir@/xdg/waybar/
核心配置选项详解
布局控制
- position:控制状态栏位置,可选
top、bottom、left、right - layer:设置状态栏层级,
top显示在窗口前,bottom显示在窗口后 - height/width:定义状态栏的高度和宽度(单位为像素)
模块布局
- modules-left:左侧模块数组
- modules-center:中间模块数组
- modules-right:右侧模块数组
- expand-center/left/right:控制对应区域是否动态扩展填充剩余空间
显示效果
- margin:设置边距(CSS格式)
- spacing:模块间距(像素值)
- mode:显示模式,支持
dock、hide、invisible、overlay - passthrough:是否允许鼠标事件穿透到下方窗口
高级功能配置
多显示器支持
通过output参数可以指定状态栏显示的屏幕:
{
"output": "HDMI-A-1",
// 其他配置...
}
也可以使用数组形式指定多个显示器,或使用!排除特定显示器。
模块分组
Waybar支持将多个模块组合在一起,形成垂直或水平布局:
"group/hardware": {
"orientation": "vertical",
"modules": ["cpu", "memory", "battery"]
}
抽屉式菜单
可以配置模块组只在鼠标悬停时显示隐藏内容:
"drawer": {
"transition-duration": 500,
"children-class": "hidden",
"click-to-reveal": false
}
模块旋转
当状态栏位于屏幕左右两侧时,可以旋转模块内容:
"clock": {
"rotate": 90
}
模块格式定制
Waybar支持使用Pango标记语言格式化模块显示内容:
"format": "<span style=\"italic\">{}</span>"
多实例模块
通过添加#后缀可以创建同一模块的多个实例:
"modules-right": ["battery", "battery#bat2"],
"battery": {
"bat": "BAT1"
},
"battery#bat2": {
"bat": "BAT2"
}
信号控制
Waybar响应以下信号:
- SIGUSR1:切换状态栏可见性
- SIGUSR2:重新加载配置
- SIGINT:退出Waybar
最小配置示例
{
"layer": "top",
"modules-left": ["sway/workspaces", "sway/mode"],
"modules-center": ["sway/window"],
"modules-right": ["battery", "clock"],
"sway/window": {
"max-length": 50
},
"battery": {
"format": "{capacity}% {icon}",
"format-icons": ["", "", "", "", ""]
},
"clock": {
"format-alt": "{:%a, %d. %b %H:%M}"
}
}
样式定制
Waybar的外观通过CSS样式表控制,可以创建style.css文件来自定义状态栏的视觉效果,包括颜色、字体、间距等。
最佳实践
- 从最小配置开始,逐步添加需要的模块
- 使用模块分组保持配置整洁
- 为多显示器环境创建不同的配置
- 利用CSS样式表实现视觉一致性
- 定期备份你的配置文件
通过灵活运用这些配置选项,你可以打造出既美观又实用的个性化状态栏,完美适配你的工作流程和审美需求。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



