当前位置: 首页>>技术教程>>正文


Polybar:适用于Linux系统的更好的WM面板

, ,

目的

安装和配置Polybar。

发行版

Polybar没有打包用于许多发行版,但是您可以从任何发行版的源代码进行编译。

要求

具有root特权的有效Linux安装。

困难

介质

约定

  • -要求linux命令可以直接以root用户身份或通过使用root特权以root特权执行sudo命令
  • $-要求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


Polybar Default Configuration



色彩

颜色显然是您要修改的第一件事。

有两种处理颜色的方法。看一下默认配置。的[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为您提供了要显示在状态栏中的大多数信息。
Polybar Filesystem Module
内置模块的优点是,它们只需经过很少的修改或配置即可全部工作于out-of-the-box。只需更改图标和标签以适合您的样式,就可以轻松实现完全自定义的Polybar。




Polybar i3 Workspaces
如果您使用的是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


Polybar Public IP Module
没什么复杂的。它只是检查OpenVPN是否正在运行,并从OpenDNS检索公共IP地址。不过,这正是您要为其创建模块的东西。

启动Polybar


Polybar Complete Configuration
启动Polybar非常容易。用您要开始的栏的名称来调用它。

$ polybar example

您可以通过将WM默认添加到WM中来启动Polybar.xinitrc或使用与上述相同的命令访问窗口管理器的配置文件。

总结思想

您在这里经历了很多事情,并且只刮了一下表面。但是,您应该有足够的了解来构造自己的配置,并自行深入研究Polybar可以完成的所有出色工作。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8989.html,未经允许,请勿转载。