Keywords: Linux, desktop environment (DE), Gentoo, dwm, statusbar

在有一篇博客中,我介绍了 dwm 桌面系统。 如果你按照标准配置来的话, 是得不到显示系统信息的状态栏的(比如, 网络速度, CPU, 内存 等), 见下图statusbar

如果你不关心“整洁美观” (没有具体图标的可爱显示), 而是更关心具体信息, 那么你可以通过写脚本的形式实现, 比如在你 X11/Session 下面写个如下的脚本执行文件


#!/bin/sh
DIR=${HOME}/.dwm

if [ -f "${DIR}"/dwmrc ]; then

/bin/sh "${DIR}"/dwmrc &

else

while true; do

BAT=$(cat /sys/class/power_supply/BAT0/capacity)
VOL=$( amixer get Master | tail -1 | awk '{print $5}' )
TMP="$(cat /sys/class/thermal/thermal_zone0/temp)"
let "TEMP=($TMP/1000)"
xsetroot -name "$(date +"%a %b%d") $(date +"%H:%M") B:[$BAT%] T:[$TEMP]"

xset s off -dpms

done &

fi

exec /usr/bin/dwm 

但是, 我自己还是喜欢有可爱图标显示, 而且通过执行代码编译后的二进制文件, 会更安全和可靠。 所以, 我在修改了别人的代码后得到了以上的 dwm 系统状态栏。 代码是用 go 语言写成的, 所以你要保证你的电脑装有 go compiler。

代码我已经分享到了我的GitHub, 代码编译为:

go build dwmStatus.go

然后文件中会产生一个 dwmStatus 的可执行文件。

同时, 我们需要一个 配置文件(dwmStatus.json) 来告诉代码, 我需要显示什么内容在 系统状态栏里。 比如, 我只需要显示 CPU 和内存信息, 而不是全部的信息。

但你不需要什么的时候, 就相应的删除什么。 在网络显示这一块, 你需要提供网络的 interface, 是无线还是有线, 具体什么名称什么请通过

 ifconfig 

来得到, 比如我的网络 interface 名称为 wlp3s0。 最后 你只要把 X11/Session 的配置文件改成


#!/bin/sh
DIR=${HOME}/.dwm

if [ -f "${DIR}"/dwmrc ]; then

/bin/sh "${DIR}"/dwmrc &

else

while true; do

$(/PATH/dwmStatus /PATH/dwmStatus.json)

xset s off -dpms

done &

fi

exec /usr/bin/dwm 

其中的PATH 请相应改成你自己的文件位置。我的文件位置是 /usr/local/bin/dwmStatus  /etc/conf.d/dwmStatus.json

最后重新启动后你就会看到跟我一样的可爱状态栏了。 当然你也可以相应的改代码得到你想要得到的其他效果。

2018-04-21-140425_1400x1050_scrot

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s