跳转至内容

Lemonbar

来自 ArchWiki

lemonbar 是一个基于 XCB 的轻量级 bar。它提供了前景色/背景色切换、文本对齐、文本的彩色下划线/上划线、完整的 UTF-8 支持以及更低的内存占用。不多不少,仅此而已。

安装

安装 lemonbarAUR 包。

配置

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

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

用法

lemonbar 本身不输出任何信息。要将任何文本输入 lemonbar,您需要将文本通过管道传递给它。以下示例将在您的 bar 中显示文本 "Hello World"。

#!/bin/sh

# Echo the text
echo "Hello World"

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

颜色

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

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

命令 含义
%{Fcolor} color 用作前景色/字体颜色
%{Bcolor} color 用作背景
%{Ucolor} color 用作文本的下划线/上划线

文本对齐

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

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

示例

以下示例将在 bar 的中间打印日期和时间,字体颜色为 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 一起使用,您需要在启动 lemonbar 时传递 -f 选项,例如 lemonbar -f "Roboto Medium"

Font Awesome 图标

有了 XFT 支持,您还可以将 Font Awesome 图标 添加到您的 bar 中。在使用图标之前,您需要安装 woff2-font-awesome,然后将 -f 'Font Awesome 6 Free' -f 'Font Awesome 6 Brands' -f 'Font Awesome 6 Free Solid'(或适合的版本而不是 '6')传递给 lemonbar。请注意,您还需要指定另一种字体(例如 -f "Roboto Medium")来用于 Font Awesome 图标以外的其他符号,如果您希望在 lemonbar 中显示其他内容,因为 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'