Unity中的“简单”gnome小程序 – stickynotes

我想这是一个相关的问题, 我可以在Unity中使用GNOME applet吗? (感谢@ Jorge Castro的建议)

我想在Unity中使用stickynotes_applet 。现在在Gnome中,这个小程序被添加到一个栏中,然后我必须单击它来创建一个新的笔记,我可以调用首选项让笔记贴在桌面上 – 这个我所需要的。

显然,正如这里提到的,不可能直接在Unity中使用这个applet; 但基本上,我需要做的就是提高“首选项”窗口(以便使注释保持不变),并以某种方式发出新注释的命令(否则将通过点击applet图标来执行Gnome酒吧)。

我已经尝试运行’ /usr/lib/gnome-applets/stickynotes_applet ‘并且看似它运行了,虽然没有显示applet图标(这是预期的),也没有任何其他窗口(我希望将显示:))。

所以我在徘徊 – 假设这个applet没有(似乎)有任何与桌面相关的特殊内容 – 是否有一个命令行方式来基本运行这个applet,向它发出一个’Show Preferences’命令,并发出一个新的注释在Unity环境中命令它( 目前我可以从命令行调用tomboy ,它可以工作 – 但它的窗口太笨重了我的口味 )?

(和奖金问题 – 你如何才能从经典Gnome的命令行启动applet相关窗口?)

桌面集成对我来说并不重要 – 我很乐意从命令行手动运行它,只要我得到保留在桌面上的小型紧凑笔记(只要进程处于活动状态)。

谢谢你的评论,
干杯!

你可以让一个小的gnome面板只运行你的applet。 请参阅如何在Unity中使用GNOME面板?

我又回到了这个问题上(仍在Natty身上); 所以我以为我会发布我的结果。

首先,我开始查找是否可以从命令行运行Gnome applet,并在一个单独的窗口中 – 事实certificate,这是一种调试Python applet的技术;

  • 首先我偶然发现了这个: Zaur Nasibov的初学者指南,用Python创建一个GNOME applet(第一部分)
  • 然后我进入修补invest-applet (这是用Python),所以它再次适用于Natty; 补丁可以在Bug#775387中找到“升级到Natty后投资小程序无法启动……”:错误:“gnome-applets”包:Ubuntu
  • 最后,我开发了一个Python脚本,它在从命令行调用时实例化一个invest-applet对象,并将它放在自己的窗口中 – 这恰好在Unity中起作用:

投资小程序,统一,独立

这是脚本:

 import sys import gtk import pygtk pygtk.require('2.0') # sudo apt-get install python-gnomeapplet import gnomeapplet import CORBA # must have import gnomeapplet before! import bonobo import bonobo.ui import bonobo.activation bcontrol = bonobo.activation.activate_from_id('OAFIID:Invest_Applet', 0, False) win = bonobo.ui.Window("foo", "FOOOOO") buiwid = bonobo.ui.widget_new_control_from_objref(bcontrol, win.get_ui_container().corba_objref()) win.set_contents(buiwid) win.show_all() win.connect("destroy", lambda x: sys.exit(0)) bonobo.ui.main() 

…和扩展脚本(带有调试输出,以及大量凌乱的注释)位于gtk_bonobo_applet_widget.py中 。


正是我想要的,起初,我认为它适用于所有applet – 至少在Natty(以及其中的stickynotes ); 但是,

现在,Natty有点具体,因为它是最后一个Gnome 2 Ubuntu – 但是,它还具有(第一个)Unity。 因此:

  • 一些小程序基于(或暴露) bonobo / CORBA接口(在Python中,通过gnomeapplet ); 那些像invest-appletbrightness-applet ,可以在自己的窗口中使用上述技术 – 并且可以通过libbonobo2-bin工具(如activation-client )进行查询
  • 其他小程序,如stickynotes ,已迁移到GSettings / DBUS base(界面)

实际上,在Natty出现之前不久, stickynotesbonobo迁移到dbus (在修改Port到新的libpanel-applet API ); 通过使用PANEL_APPLET_OUT_PROCESS_FACTORY替换PANEL_APPLET_BONOBO_FACTORY宏可以明显PANEL_APPLET_BONOBO_FACTORY PANEL_APPLET_OUT_PROCESS_FACTORY 。 可以说,如果基于bonobo检查最后一个stickynotes版本并构建它 – 人们也应该能够使用上述技术在单独的窗口中实例化applet,并从那里运行它,即使没有gnome-panel

我本来相信, 所有 applet(或者更确切地说,applet开发框架)应该具有在这样的单独窗口中运行的能力 – 如果不是出于任何其他原因,那么便于在开发期间调试applet。 并且考虑到一些小程序具有用于在单独窗口中运行的命令行开关(上面的“初学者指南”,以及invest-applet ,具有这样的开关) – 我希望也可以stickynotes这样的命令行参数; 但是,我通过它的源文件做了grep – 唉,我找不到任何命令行选项。

但后来,我想知道 – 为什么要迁移? 嗯,这是因为bonobo已经(或者更确切地说)已经被弃用了一段时间了:

AppletsDbusMigration – GNOME Live! :(2009)

Gnome Panel最近放弃了libbonobo依赖(参见bug#572131 )。

gnome-devel-list邮件列表 – 什么将取代倭黑猩猩? (2009年)

Dbus不是倭黑猩猩的直接替代品。 没有确切的替代倭黑猩猩。

然而,bonobo的主要用途,即将一个应用程序嵌入到另一个应用程序中(比如gnumeric中的扫雷器,或者(稍微更有用)gnumeric中的dia图表)只是没有那么多使用。

gnome-components邮件列表’Re:什么会取代倭黑猩猩?’ (2005年)

>关于DBUS,很难说它有一天会被替换。
>第一个问题是它不是组件系统,只是消息传递API。
相信我,肯定有计划实现某种类型的IDL编译器,以在D-BUS消息之上模仿CORBA样式的RPC。 它迟早会发生。

糟糕,糟糕 – 我自己认为,“将一个应用程序嵌入另一个应用程序”在这种情况下非常有用 – 在Unity中运行(至少一些)applet,并删除它们的支持:)当然,这是一个更多的Natty中的桌面软件包的“幸运”安排允许(假设它仍然是Gnome 2并且仍然有bonobo库) – 显然,基于Gnome 3的更高版本已经完全删除了bonobo – 以及上面的Python脚本-instanti-in-a-window技术绝对不会在那里工作:/

最后一个问题是 – 我们可以类似地使用Python脚本,但是使用dbus绑定,实现类似于上面基于bonobo的脚本吗?

最接近我的是,使用脚本gtk_dbus_applet_widget.py ,然而,该脚本不会在窗口中引发applet – 甚至无法向条形图添加applet! 它唯一能做的就是通过dbus与applet“factory”交谈,并指示它创建一个applet; 但是这个applet仍然只是作为文件系统某处的数据( 并且它会在重新启动时持续存在 ),并且永远不会被实例化为Gnome小部件……并且鉴于上面的评论,我怀疑这样的东西是当前的(好吧,在Natty at至少)可以使用dbus

总而言之 – 我猜这个,以及gnome-panel技术,耗尽了在Natty的Unity下轻率运行applet的可能性。

Rhinote有键盘快捷键

对于仍在寻找类似,方便和支持音符类别function的人,有指示粘滞便笺。

安装:

 sudo add-apt-repository ppa:umang/indicator-stickynotes sudo apt-get update sudo apt-get install indicator-stickynotes 

希望它会有所帮助……享受!