zzxworld

Arch Linux 安装和配置桌面监视软件 Conky

我最近已经正式迁移到 Arch Linux 系统。作为一个在使用上高度自由的 Linux 系统,有很多软件和功能都需要自己根据实际情况来安装和配置,这就是俗称的“折腾”。今天我准备折腾一个桌面监视器软件:Conky。

看过我上一篇文章《Intel NUC 安装 Arch Linux 历险记》的朋友应该知道,我使用的是 OpenBox 窗口管理软件。这个窗口管理软件下的桌面非常干净,默认什么信息都没有。这导致我想瞄一眼时间,看看今天星期几都只能打开终端,然后运行 date 命令来看。非常的不人性化。所以我需要一个够酷的软件来满足我的需求。

Conky 是一个能够在桌面上,以文本或图形显示各种数据的软件,类似于一个监控看板。显示的数据可以是系统时间,CPU 或内存的使用情况;也可以是网络传输过来的天气信息。功能可以说相当强大。特别是看过一些高手配置的成品图后,我深深的被折服,我决定就 Conky 来解决我随时瞄时间的问题。

安装

Conky 在 Arch Linux 上通过 Pacman 就可以安装:

sudo pacman -S conky

安装完成后,就是生成配置文件:

mkdir -p ~/.config/conky && conky --print-config > ~/.config/conky/conky.conf

然后需要让 Conky 随着窗口环境一起启动。我使用的是 OpenBox,所以直接在 ~/.config/openbox/autostart 文件中添加以下启动命令即可:

conky --daemonize --pause=3

重新登陆一下,等上 3 秒,桌面上就会显示 Conky 默认配置的效果:

conky-default-ui

配置

Conky 的默认配置有内存信息,CPU 信息,硬盘容量信息。包括网络和进程信息。就是没有时间信息。而且显示的位置在左上角。这让我不太满意,来改改配置。

打开 ~/.config/conky/conky.conf 文件开始编辑。

调整显示位置

找到 alignment = 'top_left', 这行,把后面的 top_left 改成 top_right,然后保存,Conky 内容块就会显示到屏幕右边。

配置保存后就会立马生效,不用退出后重新登录,这一点还是很方便的。目前显示位置已经满意了,接下来需要把时间弄出来。

显示时间

找到 conky.text = [[ 这一行,挨着添加以下两行配置:

${alignr}${font Unifont:style=regular:pixelsize=50}${time %H:%M}${font}
${alignr}${font Unifont:style=regular:pixelsize=18}${time %A %d %B %Y}${font}

保存配置后,等 Conky 重新加载并显示,就会看到内容框的上面出现了时间和日期。

display-datetime

注意我在配置中使用的是 Unifont 字体,如果没有安装这种字体,会使用系统默认的字体来显示。

精简和美化

Conky 默认配置中有一些数据我用不上,让它们显示出来对我来说是信息干扰。我要清理掉这些不用的信息。

在配置中依次找到下面的内容并删除。

首先是系统信息项:

${color grey}Info:$color ${scroll 32 Conky $conky_version - $sysname $nodename $kernel $machine}

然后是系统启动时间:

${color grey}Uptime:$color $uptime

还有 CPU 运行频率:

${color grey}Frequency (in MHz):$color $freq
${color grey}Frequency (in GHz):$color $freq_g

包括网络流量数据:

${color grey}Networking:
Up:$color ${upspeed} ${color grey} - Down:$color ${downspeed}

还有进程信息:

${color grey}Name              PID     CPU%   MEM%
${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}

然后稍微做一下美化。Conky 内容块默认的黑色背景有点难看。把它去掉试试。

找到 own_window = true, 这行配置,在它下面添加一行新的配置项:

own_window_transparent = true,

等配置重新加载并生效后,就会看到下面的效果:

display-after-improve

没有了黑色的背景,看起来舒服了许多。不过随之而来的问题就是要配合好壁纸的位置。我这张壁纸右上角太亮,导致文字都看不清楚。所以不得已调整到了右下角的暗色区域。

自定义评论监控

到上面为止,这个简单的 Conky 配置已经可以很好的解决我看时间的问题了。不过既然是数据监控软件,我想用它试试看能不能解决另外一个需求。

我目前的个人网站还没什么访问量,但因为提供了评论功能的缘故,必须时不时的登陆下后台,看看有没有人留下评论。以便及时的做确认和回复处理。

如果可以把要确认的评论数量用 Conky 显示在桌面上,当发现数量不为 0 的时候,再去后台处理,就能节省我当前这种无效的登录和查看操作。

从流程上看,用 Conky 解决这个问题主要也就两步:

  1. 网站提供一个待确认评论的数量接口。
  2. 在 Conky 中请求这个接口并输出数据。

为了方便 Conky 端的解析操作,接口直接返回一个数字。然后在 Conky 的配置文件末尾追加以下配置:

$hr
${color grey}Pending Comment:$color \
${execi 60 curl -H 'Accept: text/json' -H 'Authorization: Bearer XXXXXXXXXXXXXXXXXXX' https://zzxworld.com/api/comments/pending_count}
]]

上面一长串 X 字符串代表这是接口请求时认证用的 Token。

通过 execi 命令,每 60 秒执行一次 curl 请求,并把返回的数字显示出来。这样我就只需要看看 Conky 上显示的数字就能确定有没有评论需要处理了。

随意刷了几条评论,看看效果:

display-with-comment-count

可以看到最下面 "Pending Comment" 后面有数字出现了。相当不错,又优化了一项工作流程。

总结

我认为 Conky 对于所有使用 Linux 的朋友来说,都是一个值得选择的好工具。特别是对有数据看板需求的朋友来说,其简单又灵活的配置功能,和系统桌面的紧密集成,都能很好的解决一些常用监控需求。

作为日常使用来说,Conky 正确的操作姿势应该是安装好后,直接去找一个现成的配置来使用。通过搜索 "Conky theme" 可以找到很多酷炫的样式来直接使用。我是个洁癖晚期,且喜欢折腾的异类,所以请不要学我。