目的
安装和配置Polybar。
发行版
Polybar没有打包用于许多发行版,但是您可以从任何发行版的源代码进行编译。
要求
具有root特权的有效Linux安装。
困难
介质
约定
介绍
如果您一直在使用窗口管理器(平铺或其他方式),或者正在考虑使用它,则可能已经在菜单栏上找到了不同的选项。大多数窗口管理器要么不附带一个窗口管理器,要么它们打包在一起的东西就没那么有用了。 Polybar是一个很好的答案。
Polybar完全独立,但是专门为与i3和BSPWM兼容而设计。不过,您可以将其与其他人一起使用。只需在平铺窗口管理器上进行一些其他配置即可。
Polybar既灵活又简单。它不需要任何复杂的脚本,但是您可以选择使用脚本创建自定义模块。使Polybar看起来不错并适合桌面主题也很容易。
下载构建依赖项
Polybar是一个相当新的程序,尚未打包用于许多发行版。可通过AUR。 Gentoo有一些ebuilds可用。如果您使用的是Debian或Ubuntu,GetDeb存储库也可用。其他所有人都需要构建它。
如果您不特别喜欢或不信任这些资源,也可以自己构建。您可以在项目的GitHub页面。
配置Polybar
一旦安装了Polybar,就需要对其进行配置。 Polybar的一大优势是配置所需要的灵活性相对较小。
获取默认配置
最好以现有的配置文件作为配置的基础开始。您可以通过以下两种方式之一进行操作。您可以复制默认配置并进行修改,也可以复制默认配置并将其部分复制到将成为您的配置的新文件中。两种方法都可行,因此请选择适合您风格的任何一种。
无论选择哪种,都将需要获取默认配置。首先,创建配置目录(如果尚未存在)。
$ mkdir ~/.config/polybar/
然后,将默认配置解压缩到该文件夹中。
$ cd ~/.config/polybar
$ $ sudo gzip -d /usr/share/doc/polybar/config.gz ~/.config/polybar/config
色彩
颜色显然是您要修改的第一件事。
有两种处理颜色的方法。看一下默认配置。的[colors]
部分应类似于以下示例。
[colors]
;background = ${xrdb:color0:#222}
background = #222
background-alt = #444
;foreground = ${xrdb:color7:#222}
foreground = #dfdfdf
foreground-alt = #555
primary = #ffb52a
secondary = #e60053
alert = #bd2c40
注意设置颜色的两种不同方式。一个只使用普通十六进制代码。其他进口颜色.Xresources
。那可能是最有效的,它可以确保Polybar始终匹配您系统的配色方案。
还必须注意,这些值已分配给变量。您可以在整个配置中重复使用这些变量,以使您的生活更轻松,并使颜色方案保持统一。从理论上讲,您可以进行设置,以便一次更改颜色.Xresources
,它将在所有X应用程序以及Polybar配置中的每次使用中生效。
酒吧
您可以在同一配置文件中定义多个条。要定义它们,请创建一个类似于[colors]
一。配置中的默认栏是
。看一看。
[bar/example]
[bar/example]
;monitor = ${env:MONITOR:HDMI-1}
width = 100%
height = 27
;offset-x = 1%
;offset-y = 1%
radius = 6.0
fixed-center = false
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3
line-color = #f00
border-size = 4
border-color = #00000000
padding-left = 0
padding-right = 2
module-margin-left = 1
module-margin-right = 2
font-0 = fixed:pixelsize=10;1
font-1 = unifont:fontformat=truetype:size=8:antialias=false;0
font-2 = siji:pixelsize=10;1
modules-left = bspwm i3
modules-center = xwindow
modules-right = filesystem xbacklight volume xkeyboard memory cpu wlan eth battery temperature date powermenu
tray-position = right
tray-padding = 2
;tray-transparent = true
;tray-background = #0063ff
;wm-restack = bspwm
;wm-restack = i3
;override-redirect = true
;scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev
;scroll-up = i3wm-wsnext
;scroll-down = i3wm-wsprev
条的名称为”example.”。您可以将名称定义为所需的任何名称。不过,请记住它,因为启动栏时会使用它。
这里有几个重要的部分需要分解。
首先,顶部处理杆的尺寸和位置。注释掉了一行,以指定要在其上显示该条的监视器。使用多个监视器时要记住这一点很重要。
本节的其余部分很容易解释。的radius
选项处理圆角的拐角,以及fixed-center
告诉Polybar将中心模块部分放在同一位置,而不管模块的数量如何。
在接下来的两节中,您可以设置前景色和背景色以及其他一些style-related值。填充变量指的是整个条的填充,模块边距是每个单独模块的边距。对这些价值观要更加保守。
默认字体不是所有常用字体。您可能需要将它们更改为您已经安装的字体。最好至少拥有一种文本字体和一种图标字体。像Font Awesome之类的东西对于图标来说效果很好。
接下来,是模块对齐部分。它使您可以选择Polybar在何处显示每个模块。条形图具有左,中和右部分。列出您希望它们出现的模块。
最后,有一小段关于您的纸盘和纸盘图标。选择希望Polybar处理托盘的方式。
如果您使用的是i3或BSPWM,请取消注释wm-restack
并滚动与您的WM匹配的选项。
Built-In模块
现在,您已经了解了如何设置栏,是时候看看Polybar随附的模块了。实际上,Polybar为您提供了要显示在状态栏中的大多数信息。
内置模块的优点是,它们只需经过很少的修改或配置即可全部工作于out-of-the-box。只需更改图标和标签以适合您的样式,就可以轻松实现完全自定义的Polybar。
如果您使用的是i3或BSPWM,它们每个都有一个模块,该模块集成了WM的功能,例如显示工作区。默认值在这里确实不好用,因此您需要进行一些自定义。看一下这个例子。
[module/workspaces]
type = internal/i3
enable-click = true
enable-scroll = false
strip-wsnumbers = true
format =
pin-workspaces = true
ws-icon-0 = 1;
ws-icon-1 = 2;
ws-icon-2 = 3;♪
ws-icon-3 = 4;
ws-icon-4 = 5;
ws-icon-5 = 6;
ws-icon-6 = 7;
ws-icon-9 = 10;
label-focused = %name%
label-focused-padding = 2
label-focused-margin = 0.5
label-focused-foreground = ${colors.white}
label-focused-underline = ${colors.white}
label-unfocused = %name%
label-unfocused-padding = 2
label-unfocused-margin = 0.5
label-unfocused-underline = ${colors.l_gray}
label-visible-padding = 2
label-visible-margin = 0.5
label-urgent = %name%
label-urgent-padding = 2
label-urgent-margin = 0.5
label-urgent-foreground = ${colors.red}
label-urgent-underline = ${colors.red}
如您所见,您可以将Polybar设置为显示工作空间图标,使其与您在i3 /BSPWM配置中设置的图标匹配。可以类似地配置两个窗口管理器。有很多不同的方法来处理此模块,因此请随时进行探索。
定制模块
如果某个模块不能完全满足您的需求,或者您希望完全自定义某个模块,则可以。 Polybar支持将命令行输出显示到其自己的模块中。这可能来自Bash脚本,或者更复杂。 Polybar主要只是读取和格式化输出。看一下这个真实的例子。
[module/pub-ip]
type = custom/script
exec = /home/nick/.config/polybar/pub-ip.sh
interval = 100
format-underline = ${colors.white}
format =
如您所见,为了定义自定义模块,您只需要设置模块的类型即可。然后,您需要将Polybar指向需要执行的脚本。间隔是刷新率,其他所有内容都定义了输出格式和显示方式。
如果您想知道,这是模块执行的脚本。
#! /bin/bash
IP=$(dig +short myip.opendns.com @resolver1.opendns.com)
if pgrep -x openvpn > /dev/null; then
echo VPN: $IP
else
echo $IP
fi
没什么复杂的。它只是检查OpenVPN是否正在运行,并从OpenDNS检索公共IP地址。不过,这正是您要为其创建模块的东西。
启动Polybar
$ polybar example
您可以通过将WM默认添加到WM中来启动Polybar.xinitrc
或使用与上述相同的命令访问窗口管理器的配置文件。
总结思想
您在这里经历了很多事情,并且只刮了一下表面。但是,您应该有足够的了解来构造自己的配置,并自行深入研究Polybar可以完成的所有出色工作。