Lemonbar

出自 ArchWiki

lemonbar 是一个基于 XCB 的轻量级状态栏。它提供前景色/背景色切换以及文本对齐和彩色文本下划线/上划线,完全支持 UTF-8 并减少内存占用。仅此而已,不多不少。

安装

安装 lemonbar-gitAUR 软件包。

配置

lemonbar 的配置现在完全通过类似 screenrc 的格式字符串和命令行选项完成,这与旧版本不同,旧版本的配置在编译时进行。

请参阅 lemonbar(1) 以简要了解这些配置选项。

用法

lemonbar 本身不打印任何信息。要使 lemonbar 中显示任何文本,您需要将文本管道输入到其中。以下示例会将文本 “Hello World” 写入到您的状态栏中。

#!/bin/sh

# Echo the text
echo "Hello World"

如果您希望 lemonbar 中的文本通过脚本更新,则需要添加 -p 选项。这可以防止 lemonbar 在 stdin 关闭后退出。

颜色

lemonbar 使用以下命令来为文本、背景或下划线/上划线着色。颜色可以通过 #RRGGBB#AARRGGBB(带有 alpha 通道;这需要 compositor 正在运行),甚至 #RGB 格式指定。

特殊颜色 - 表示默认颜色(由命令行标志设置,否则为黑色背景上的默认白色文本)。

命令 含义
%{F颜色} 使用 颜色 作为前景色/字体颜色
%{B颜色} 使用 颜色 作为背景色
%{U颜色} 使用 颜色 为文本添加下划线/上划线

文本对齐

lemonbar 还支持文本对齐。它使用以下命令来对齐文本

命令 含义
%{l} 将文本左对齐
%{c} 将文本居中对齐
%{r} 将文本右对齐

示例

以下示例在状态栏中间打印日期和时间,字体颜色为 yellow,背景色为 blue,并在之后将字体/背景颜色改回默认颜色。使用 /path/to/script/example.sh | lemonbar -p 运行它

example.sh
#!/bin/sh

# Define the clock
Clock() {
        DATETIME=$(date "+%a %b %d, %T")

        printf "$DATETIME"
}

# Print the clock

while true; do
        echo "%{c}%{F#FFFF00}%{B#0000FF} $(Clock) %{F-}%{B-}"
        sleep 1
done

另一个显示电池百分比的示例。要使用此脚本,您需要安装 acpi

example.sh
#!/bin/sh

#Define the battery
Battery() {
        BATPERC=$(acpi --battery | cut -d, -f2)
        echo "$BATPERC"
}

# Print the percentage
while true; do
        echo "%{r}$(Battery)"
        sleep 1;
done

XFT 字体

默认的 lemonbar 版本不支持 XFT 字体。要获得对 XFT 字体的支持,您需要安装 lemonbar-xft-gitAUR,它会替换 lemonbar-gitAUR

要将不同的字体与 lemonbar 一起使用,您需要在启动 lemonbar 时传递 -f 选项,例如 lemonbar -f "Roboto Medium"

Font Awesome 图标

通过 XFT 支持,您还可以将 Font Awesome 图标 添加到您的状态栏。您需要在使用图标之前安装 ttf-font-awesome 并传递 -f 'Font Awesome 6 Free' -f 'Font Awesome 6 Brands' -f 'Font Awesome 6 Free Solid'(或适当的版本而不是 '6')给 lemonbar。请注意,如果您希望在 lemonbar 中显示除 font awesome 图标之外的其他内容,您还需要指定另一种字体(例如 -f "Roboto Medium")用于 font awesome 图标以外的其他符号,因为 font awesome 不包含其他符号。

在将图标添加到 lemonbar 之前,您需要在 图标列表 中查找其 unicode id,并将其传递给 lemonbar 字符串。这是一个在 lemonbar 中显示 Unicode id 为 f242 的图标的脚本

fontawesome.sh
#!/usr/bin/sh
echo -e "\uf242 Battery: 0"

请特别注意 echo -e 标志,因为它对于正确使用带有转义序列的 echo 是必要的。

以及相应的 lemonbar 命令:lemonbar -f "Roboto Medium" -f 'Font Awesome 6 Free' -f 'Font Awesome 6 Brands' -f 'Font Awesome 6 Free Solid'