sda*_*aau 7 applet gnome unity
我想这是一个相关的问题,我可以在 Unity 中使用 GNOME 小程序吗?(由@Jorge Castro的建议感动)
我想stickynotes_applet在 Unity 中使用.. 现在在 Gnome 中,这个小程序被添加到一个栏中,然后我必须点击它来创建一个新笔记,我可以调用首选项让笔记粘在桌面上 - 这是我所需要的。
显然,正如这里提到的,在 Unity 中直接使用这个小程序是不可能的;但基本上,我需要做的就是打开“首选项”窗口(以便使笔记保持不变),并以某种方式发出新笔记的命令(否则将通过单击中的小程序图标来执行)侏儒酒吧)。
我试过运行 ' /usr/lib/gnome-applets/stickynotes_applet' 并且看起来它运行了,虽然没有显示小程序图标(这是预期的),也没有任何其他窗口(我希望它会显示 :) )。
所以我在徘徊 - 考虑到这个小程序(似乎)没有任何与桌面相关的特殊内容 - 是否有一种命令行方式来基本上运行这个小程序,向它发出“显示首选项”命令,并发出一个新的注释在 Unity 环境中命令它(目前我可以tomboy从命令行调用它并且它可以工作 - 但它的窗口对于我的口味来说太笨重了)?
(和额外的问题 - 在经典 Gnome 中,您将如何仅从命令行启动与小程序相关的窗口?)
桌面集成对我来说并不重要 - 我很乐意从命令行手动运行它,只要我得到留在桌面上的小型紧凑笔记(只要进程处于活动状态)..
感谢您的任何评论,
干杯!
我又回到了这个问题(仍然是 Natty);所以我想我应该发布我的结果。
\n\n首先,我开始查找是否可以从命令行并在单独的窗口中运行 Gnome 小程序 - 事实证明,这是一种调试 Python 小程序的技术;
\n\ninvest-applet(用 Python 编写),这样它又可以在 Natty 上运行了;补丁可以在 Bug #775387 中找到\xe2\x80\x9cInvest-applet 升级到 Natty...\xe2\x80\x9d 后无法启动:Bugs : \xe2\x80\x9cgnome-applets\xe2\x80\x9d 包: 乌班图invest-applet最后,我开发了一个 Python 脚本,当从命令行调用时实例化一个对象,并将其放入自己的窗口中 - 这恰好在 Unity 中工作:
这是脚本:
\n\nimport sys\nimport gtk\nimport pygtk\npygtk.require(\'2.0\')\n# sudo apt-get install python-gnomeapplet\nimport gnomeapplet\nimport CORBA # must have import gnomeapplet before!\nimport bonobo\nimport bonobo.ui\nimport bonobo.activation\n\nbcontrol = bonobo.activation.activate_from_id(\'OAFIID:Invest_Applet\', 0, False)\nwin = bonobo.ui.Window("foo", "FOOOOO")\nbuiwid = bonobo.ui.widget_new_control_from_objref(bcontrol, win.get_ui_container().corba_objref())\nwin.set_contents(buiwid)\nwin.show_all()\nwin.connect("destroy", lambda x: sys.exit(0))\nbonobo.ui.main()\nRun Code Online (Sandbox Code Playgroud)\n\n...扩展脚本(带有调试输出和大量混乱的注释)位于gtk_bonobo_applet_widget.py中。
\n\n这正是我想要的,一开始,我认为它适用于所有小程序 - 至少在 Natty 中(以及其中stickynotes);但可惜的是,没有:
现在,Natty 有点具体,因为它是最后一个 Gnome 2 Ubuntu - 然而,它也具有(第一个)Unity 功能。像这样:
\n\nbonobo/CORBA接口(在Python中,通过gnomeapplet);那些,例如invest-applet或brightness-applet,可以使用上述技术在自己的窗口中提出 - 并且可以通过libbonobo2-bin工具(例如activation-client)进行查询stickynotes,已迁移到 GSettings/DBUS 基础(接口)事实上,在Natty 出现之前不久就从 迁移到了(在修订版本中移植stickynotes到新的 libpanel-applet API);通过将宏替换为 可以明显看出这一点。可以说,如果人们检查了based on的最新版本并构建了它,那么人们还应该能够使用上述技术在单独的窗口中实例化小程序,并从那里运行它,即使没有.bonobodbusPANEL_APPLET_BONOBO_FACTORYPANEL_APPLET_OUT_PROCESS_FACTORYstickynotesbonobognome-panel
否则我会相信,所有小程序(或者更确切地说,小程序开发框架)都应该有能力在这样的单独窗口中运行 - 如果不是出于任何其他原因,那么为了在开发过程中方便调试小程序。考虑到某些小程序具有用于在单独窗口中运行的命令行开关(上面的“初学者指南”,以及具有invest-applet此类开关的功能)-我希望也许stickynotes也具有此类命令行参数;然而,我通过它的源文件做了 grep - 唉,我找不到任何关于命令行选项的提及。
但后来,我想知道为什么要进行这种迁移?嗯,这是因为bonobo它(或者更确切地说,已经)已经被弃用了一段时间了:
AppletsDbusMigration - GNOME Live!: (2009)
\n\n\n\n\nGnome Panel 最近删除了 libbonobo 依赖项(请参阅bug #572131)。
\n
gnome-devel-list 邮件列表 - 什么将取代倭黑猩猩?(2009)
\n\n\n\n\nDbus 不是 bonobo 的直接替代品。\n bonobo 本身没有确切的替代品。
\n
\n ...
\n 然而,bonobo 的主要用例,即将一个应用程序嵌入到另一个应用程序中(例如,gnumeric 中的扫雷器,或者(稍微更有用)gnumeric 中的直径图),只是没有被广泛使用。
gnome-components 邮件列表“回复:什么将取代倭黑猩猩?”(2005 年)
\n\n\n\n\n> 关于DBUS,很难说有一天它会被取代。
\n
\n > 第一个问题是它不是组件系统,只是消息传递 API。
相信我,肯定有计划实现某种 IDL 编译器,以在 D-BUS 消息之上模仿 CORBA 风格的 RPC。这迟早会发生。
好吧,糟糕 - 我自己认为,“将一个应用程序嵌入到另一个应用程序中”在这种情况下非常有用 - 在 Unity 中运行(至少一些)小程序,并删除了对它们的支持当然:),这更多是“ Natty 中桌面包的幸运”安排允许这样做(假设它仍然是 Gnome 2 并且仍然具有库bonobo) - 显然,基于 Gnome 3 的更高版本已bonobo完全删除 - 以及上面的 Python-script-instantiation-in -a-window 技术在那里肯定行不通:/
最后一个问题是 - 我们是否可以类似地使用 Python 脚本,但使用绑定 for 来dbus实现与上述bonobo脚本类似的功能?
我最接近的是脚本gtk_dbus_applet_widget.py,但是,该脚本不会在窗口中引发小程序 - 甚至无法将小程序添加到栏!它唯一能做的就是通过 与小程序“工厂”对话dbus,并指示它创建一个小程序;但这个小程序仍然只是作为文件系统上某处的数据(并且它在重新启动后仍然存在! ),并且永远不会实例化为 Gnome 小部件......鉴于上面的评论,我怀疑目前是否存在类似的东西(好吧,在 Natty 上)至少)可能与dbus.
总而言之 - 我想这与gnome-panel技术一起,耗尽了在 Natty 中的 Unity 下轻松运行小程序的可能性。
| 归档时间: |
|
| 查看次数: |
7792 次 |
| 最近记录: |