gpt4 book ai didi

linux - 向 Ubuntu 面板添加一个不断变化的图标

转载 作者:IT王子 更新时间:2023-10-29 01:25:15 27 4
gpt4 key购买 nike

在 Ubuntu (Gnome) 面板中添加和更改图标的最简单方法是什么?我正在寻找像 shell 脚本一样简单的东西,但我不限于此。如果这是更好或更简单的方法,将为其编写程序。

想法是创建一个脚本/程序来监控某些情况(例如挂载点的可用性、互联网连接的可用性),并更改图标的状态以反射(reflect)当前状态。

最佳答案

我找到了 YAD (Yet Another Dialog)提供最简单的解决方案。参见 webupd8's short description .然而,与 Unity 的集成目前似乎略有中断。我在下面提到了一个解决方法,但如果您真的关心 Unity,您可能应该看看其他答案。

注意:虽然我被引导相信 YAD 可以在广泛的环境中工作,但我只使用 Lubuntu 15.10(LXDE 桌面)和 Ubuntu 14.04(Unity 桌面)测试了下面的说明.

安装

我获得了一个工作安装:

sudo apt-add-repository ppa:webupd8team/y-ppa-manager 
sudo apt-get update
sudo apt-get install yad

(事实上,我在 Lubuntu 15.10 中不需要前两行,但这可能是巧合。)
在 LXDE 中,调用

yad --notification --listen

然后弹出一个托盘图标,我可以通过键入(例如)更改它:icon:gtk-help。在 Unity 中,什么也没有出现,所以我需要以下...

Unity 的解决方法:以下说明再次取自 webupd8 .问题是“系统托盘”不再正式存在于 Unity 中。运行像 YAD 这样没有跟上此更改的程序的一种可能解决方案是安装“系统托盘模拟器”:

sudo apt-add-repository ppa:fixnix/indicator-systemtray-unity
sudo apt-get update
sudo apt-get install indicator-systemtray-unity

为了直接在 Unity 面板中获取图标,我使用了以下设置:

gsettings set net.launchpad.indicator.systemtray tray-is-static true
gsettings set net.launchpad.indicator.systemtray show-background-static false

一旦我注销并重新登录,yad --notification 就会按预期工作。 (此外,“系统托盘”显示了一些我以前一直在徒劳地寻找的附加图标。)可以通过以下方式调整面板上图标的位置:

gsettings set net.launchpad.indicator.systemtray static-x 1500

(其中 1500 可以替换为任何合理的值)。我不知道如何让图标齐平显示。如果您想再次卸载“系统托盘模拟器”,webupd8 推荐:

sudo apt-get purge indicator-systemtray-unity

演示

这是一个简单的演示,可能有助于说明如何在真实场景中使用 YAD。我假设 YAD 本身已经如上所述安装。假设我们想观察在命令行上运行的某个程序的输出并相应地更新托盘图标。出于本演示的目的,让我们将此“程序”作为以下脚本“dummyprogram.sh”:

#! /bin/bash
i=1
while [ $i -ne 3 ]
do
let "i=((i+1)%2)"
echo $i
sleep 1
done

将以上行复制到文件“dummyprogram.sh”,使用“chmod +x dummyprogram.sh”使其可执行并调用“./dummyprogram.sh”应该会产生以下输出:

0
1
0
1
...

(每秒一行)。现在开始手头的实际任务。要在托盘区域获得上述输出的“图标化”版本,我们使用以下脚本“demo.sh”:

#! /bin/bash
while read x
do
if [ $x -eq 0 ]
then
echo icon:gtk-home
else
echo icon:gtk-help
fi
done

再次,将这些行复制到文件“demo.sh”并使其可执行。呼唤

./dummyprogram.sh | ./demo.sh | yad --notification --listen

现在应该会产生预期的结果:托盘区域中的图标每秒在两个不同的图标之间来回切换。

您可以通过在终端中输入 Ctrl-C 来结束演示。

关于linux - 向 Ubuntu 面板添加一个不断变化的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1756806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com