我想尝试开发一些简单的指示器,用于数字锁定/大写锁定和亮度等。我该如何在 Python 中创建指示器?是否有任何教程可以指导我编写我的第一个应用程序指示器(例如快速编写应用程序指示器)?是否有任何简单的解决方案可以像快速模板一样启动?
答案1
我认为使用 Python、GIR 和 GTK3 编写指标正如@fossfreedom 所提到的,介绍了如何为 Unity 创建指标。(先读一下)
我使用的是 Ubuntu 14.04,Quickly 12.08.1。这是从 Quickly 模板构建的完整工作示例的演示。
OP 只想要指示器(而不是完整的 GUI 应用程序),所以让我们从 ubuntu-cli 快速模板开始:
quickly create ubuntu-cli indicator-demo
它可能会引发未发布的错误修复的错误消息(错误#1064110) 在此模板中:
Creating project directory indicator-demo Creating bzr repository and committing Launching your newly created project! Traceback (most recent call last): ... OSError: [Errno 13] Permission denied ERROR: create command failed Aborting
修复权限
cd indicator-demo/ chmod +x bin/indicator-demo
测试
$ quickly run I'm launched and my args are:
有一个不错的皮吉例子来自Ubuntu Wiki:应用程序指示器. 整合起来应该很容易。
打开进行编辑:
quickly edit
修改
__init__.py
、添加需要的模块导入:from gi.repository import Gtk from gi.repository import AppIndicator3 as appindicator
在
main()
函数中,介于:print _("I'm launched and my args are: %s") % (" ".join(args)) logging.debug(_('end of prog'))
添加:
ind = appindicator.Indicator.new_with_path ( _("Indicator demo for Quickly"), "indicator-demo-icon-normal", appindicator.IndicatorCategory.APPLICATION_STATUS, indicator_democonfig.get_data_path()) ind.set_status (appindicator.IndicatorStatus.ACTIVE) ind.set_attention_icon ("indicator-demo-icon-attention") # create a menu menu = Gtk.Menu() # create one item menu_items = Gtk.MenuItem(_("Quit")) menu.append(menu_items) # this is where you would connect your menu item up with a function: menu_items.connect("activate", Gtk.main_quit ) # show the item menu_items.show() ind.set_menu(menu) Gtk.main()
为新创建的数据文件夹添加图标:
mkdir data
我从已安装的软件包中复制了一些图标,只是为了举例子:
cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages.svg data/indicator-demo-icon-normal.svg cp /usr/share/icons/ubuntu-mono-dark/status/22/indicator-messages-new.svg data/indicator-demo-icon-attention.svg
测试一下:
quickly run
创建包并发布:
quickly package quickly share --ppa your-ppa
笔记:
好吧,我没有更新 debian 软件包控制文件,但是依赖项已自动添加到生成的 DEB 中:
Package: indicator-demo Version: 0.1 Architecture: all Maintainer: UNKNOWN <UNKNOWN> Installed-Size: 57 Depends: python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), gir1.2-gtk-3.0, gir1.2-appindicator3-0.1 Section: python Priority: extra Description: UNKNOWN UNKNOWN
此外,数据文件夹中先前添加的图标也包含在包中。
我以前也遇到过类似的情况,如何向 Unity 面板添加键盘修饰状态小程序?。答案包含一个使用 libappindicator 的示例/原型键盘指示器(但使用 c 编程语言)。
libappindicator 缺少一个重要功能,该功能使移植其他桌面指示器变得容易。图标只能从路径加载。参见 Bug #812067 所需 API:pixbuf 图标设置支持
参考:
libappindicator 的完整 API 参考以 HTML 格式包含在
libappindicator-doc
软件包中。请查看/usr/share/gtk-doc/html/libappindicator/
请注意,它支持在指示图标旁边添加标签。
- Ubuntu Wiki:应用程序指示器
- Ubuntu Wiki:快速
相关问题: