是否可以通过代码更新应用程序指标?

是否可以通过代码更新应用程序指标?

我用ruby-libappindicator要管理的绑定Ubuntu 应用程序指标

我想指示是否有任何应用程序使用了端口 3000。端口检查不是问题,但我还需要在端口繁忙/空闲时更新指示器(我想显示绿色或红色圆圈)。

我可以创建一个这样的新指标:

require "ruby-libappindicator"
indicator = AppIndicator::AppIndicator.new("test", "indicator-messages", AppIndicator::Category::APPLICATION_STATUS)
indicator.set_menu(Gtk::Menu.new)
indicator.set_status(AppIndicator::Status::ACTIVE)
Gtk.main

Gtk.main调用后代码“挂起”,所以我无法调用任何其他方法。

创建后如何更新 appindicator 图标?

答案1

使用GLib 中的 g_timeout_add_seconds()定义一个定期调用的函数,并在该函数中检查indicator.set_status(...)是否需要端口和调用。

答案2

为了节省您编写自己的指标的时间...

...您可以安装指标-系统监视器,然后创建一个 shell 脚本来监视端口并将您的脚本添加到指示器中。

您必须使用文本标签(而不是红色/绿色图标)来指示状态。

答案3

您需要使用创建一个计时器GLib::Timeout.add_seconds(或者只是add想使用毫秒)

# ...

GLib::Timeout.add_seconds(2) do # every two seconds....
    app_indicator.set_icon '/path/to/icon.svg'
    true # returning false cancels the timer
end

Gtk.main

相关内容