如何向所有 Linux 控制台显示 Growl 通知

如何向所有 Linux 控制台显示 Growl 通知

我正在构建一个纯文本模式的 Linux 上网本。我想在按下热键时显示信息(例如电池状态),该信息会出现在当前虚拟控制台上任何正在运行的程序之上,并在几秒钟内消失。有什么我可以使用的实用程序吗? “墙”不是我的意思(不能弄乱屏幕,而是覆盖)

答案1

我不知道有哪个实用程序可以执行此操作。但是,您可以尝试使用这些/dev/vcs*设备来实现您自己的。

手册页vcs给出了一个示例程序,它不仅通过写入终端屏幕/dev/vcsN,还通过设置属性/dev/vcsaN

通过以下示例 shell 代码可以看到一个简单的演示。请注意,如果在显示文本时屏幕滚动或顶行更新,则原来的内容将在消息显示时间结束时被替换。 (这不是真正的覆盖;它只是临时替代。)

m="** THIS IS AN IMPORTANT MESSAGE **    "

for v in $(seq 7)
do
    d="/dev/vcs$v"
    if test -c "$d"
    then
        dd if="$d" bs=80 count=1 >"/tmp/save.$v"
        echo -n "$m" >"$d"
    fi
done

sleep 5

for v in $(seq 7)
do
    d="/dev/vcs$v"
    if test -c "$d" -a -f "/tmp/save.$v"
    then
        dd of="$d" bs=80 count=1 <"/tmp/save.$v"
        rm -f "/tmp/save.$v"
    fi
done

相关内容