web-dev-qa-db-fra.com

"Simple" gnome applets dans Unity - Stickynotes

Je suppose que cette question est liée à Puis-je utiliser les applets GNOME dans Unity? (proposé par la suggestion de @ Jorge Castro )

J'aimerais utiliser stickynotes_applet dans Unity .. Maintenant, dans Gnome, cet applet est ajouté à une barre, puis je dois cliquer dessus pour créer une nouvelle note, et je peux appeler les préférences pour que les notes restent collées. le bureau - qui est tout ce dont j'ai besoin.

Bien évidemment, comme mentionné ici, il ne sera pas possible d’utiliser cette applet directement dans Unity; mais en gros, tout ce que je devrais faire, c’était d’ouvrir la fenêtre Préférences (pour que les notes restent collées) et d’émettre en quelque sorte une commande pour une nouvelle note (qui serait autrement exécutée par un clic sur l’icône de l’applet dans le bar Gnome).

J'ai essayé de lancer '/usr/lib/gnome-applets/stickynotes_applet' et il fonctionne apparemment, bien qu'aucune icône d'applet ne soit affichée (ce qui est attendu), et aucune autre fenêtre non plus (que j'espérais sinon montrer :)).

Donc, je me promenais - étant donné que cette applet n'a (semble-t-il) rien de spécial lié au bureau - existe-t-il un moyen en ligne de commande pour exécuter cette applet, émettez une commande 'Show Preferences' et émettez une nouvelle commande de note dans un environnement Unity (. Actuellement, je peux appeler tomboy à partir de la ligne de commande et cela fonctionne. - mais ses fenêtres sont trop maladroites à mon goût )?

(et question bonus - comment ouvrir une fenêtre liée à une applet à partir de la ligne de commande dans Gnome classique?)

L'intégration de bureau n'a pas beaucoup d'importance pour moi - je l'exécuterais manuellement à partir de la ligne de commande, à condition que je reçoive de petites notes compactes qui restent sur le bureau (tant que le processus est actif).

Merci pour vos commentaires,
À votre santé!

7
sdaau

Je suis revenu à ce problème encore (toujours sur Natty); alors j'ai pensé poster mes résultats.

Tout d'abord, j'ai commencé à regarder si vous pouvez exécuter des applets Gnome à partir de la ligne de commande, puis, dans une fenêtre séparée, il s'agissait d'une technique de débogage des applets Python;

invest-applet-unity-standalone

Voici le script:

_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()
_

... et le script étendu (avec une sortie de débogage et une tonne de commentaires malpropres) se trouve dans gtk_bonobo_applet_widget.py .


C'est exactement ce que je voulais, et au début, je pensais que ce serait applicable à toutes les applets - au moins dans Natty (et parmi elles stickynotes); mais hélas, non :

Maintenant, Natty est un peu spécifique, car c’est le dernier Ubuntu de Gnome 2 - mais il comporte également (le premier) Unity. En tant que tel:

  • certaines applets sont basées sur (ou exposent a) l'interface bonobo/CORBA (en Python, via gnomeapplet); ceux, comme _invest-applet_ ou _brightness-applet_, peuvent utiliser la technique ci-dessus pour être levés dans leur propre fenêtre - et peuvent être interrogés via des outils _libbonobo2-bin_ (comme _activation-client_)
  • d'autres applets, comme stickynotes, ont migré vers GSettings/DBUS base (interface)

En fait, stickynotes a migré de bonobo à dbus peu de temps avant la sortie de Natty (dans la révision Port vers la nouvelle API libpanel-applet ); ce qui est évident par le remplacement de la macro _PANEL_APPLET_BONOBO_FACTORY_ par _PANEL_APPLET_OUT_PROCESS_FACTORY_. On peut soutenir que, si on extrait la dernière révision de stickynotes sur la base de bonobo et le construit - on devrait également pouvoir utiliser la technique ci-dessus pour instancier l'applet dans une fenêtre séparée et l'exécuter à partir de là. , même sans _gnome-panel_.

J'aurais autrement cru que tous les applets (ou plutôt les frameworks de développement d'applets) devraient pouvoir s'exécuter dans une fenêtre séparée comme celle-ci - si ce n'est pour une autre raison, pour faciliter le débogage des applets pendant le développement. Et étant donné que certaines applets ont des commutateurs de ligne de commande à exécuter dans une fenêtre séparée (le "Guide du débutant" ci-dessus, ainsi que _invest-applet_, propose de tels commutateurs) - J'espérais peut-être que stickynotes comporterait de tels arguments de ligne de commande aussi; Cependant, j'ai utilisé grep via ses fichiers sources - et hélas, je ne trouve aucune mention des options de ligne de commande.

Mais alors, je me suis demandé pourquoi cette migration? Eh bien, c’est parce que bonobo est (ou plutôt a été) obsolète depuis un moment maintenant:

AppletsDbusMigration - GNOME Live! : (2009)

Le panneau Gnome a récemment supprimé la dépendance à libbonobo (voir bogue n ° 572131 ).

liste de diffusion gnome-devel-list - Qu'est-ce qui remplacera bonobo? (2009)

Dbus ne remplace pas directement bonobo. Il n'y a pas de remplacement exact de bonobo en tant que tel.
...
Cependant, le cas d'utilisation principal de bonobo, qui incorpore une application à une autre (disons le balayeur de mines en gnumeric, ou (légèrement plus utile) un diagramme dia en gnumeric) n'est tout simplement pas très utilisé.

liste de diffusion gnome-components 'Re: Qu'est-ce qui remplacera bonobo?' (2005)

> À propos de DBUS, il est difficile de dire qu’il sera remplacé un jour.
> Le premier problème est qu’il ne s’agit pas d’un système à composants, mais d’une API de transmission de messages.
Faites-moi confiance, il est clairement envisagé de mettre en œuvre un compilateur IDL pour imiter le RPC de type CORBA en plus des messages D-BUS. Cela arrivera tôt ou tard.

Eh bien, shucks - je pense moi-même, "incorporer une application dans une autre" était très utile dans ce cas - pour exécuter (au moins quelques) applets dans Unity, avec le support pour eux supprimé _:)_ Bien sûr, c'était un ce qui est moins un arrangement "chanceux" de paquets de postes de travail dans Natty qui le permettait (étant donné qu'il s'agit toujours de Gnome 2 et qu'il possède toujours les bibliothèques bonobo, bien entendu, les versions ultérieures basées sur Gnome 3 ont bonobo supprimé complètement - et la technique ci-dessus d'instanciation dans une fenêtre Python-script ne fonctionnera très certainement pas là _:/_

La dernière question est la suivante: pourrions-nous utiliser de la même façon un script Python, mais avec des liaisons pour dbus, afin d'obtenir quelque chose de similaire au script ci-dessus basé sur bonobo?

Le plus proche de moi, c'est avec le script (gtk_dbus_applet_widget.py , cependant, ce script ne lève pas un applet dans une fenêtre - et ne peut même pas ajouter un applet à la barre! La seule chose à faire est de parler à l'applet "fabrique" via dbus et de lui demander de créer une applet; mais cette applet reste simplement sous forme de données quelque part sur le système de fichiers ( et elle persiste après le redémarrage! ), et ne devient jamais instancié en tant que widget Gnome ... Et étant donné les commentaires ci-dessus, je doute que quelque chose comme cela soit actuellement (bien, sur Natty au moins) possible avec dbus.

En conclusion - j'imagine que cela, ainsi que la technique gnome-panel , épuise les possibilités de lancer des applets de manière frivole sous Unity dans Natty.

3
sdaau

Vous pourriez avoir un petit panneau de gnome exécutant uniquement votre applet. Voir Comment utiliser le panneau GNOME dans Unity?

3
Egil

Rhinote possède des raccourcis clavier

2
RobotHumans

Pour ceux qui recherchent encore quelque chose de similaire, pratique et prenant en charge la fonctionnalité Catégorie de note, il existe des notes indicatrices.

Installation:

Sudo add-apt-repository ppa:umang/indicator-stickynotes

Sudo apt-get update

Sudo apt-get install indicator-stickynotes

J'espère que ça va aider ... Enjoy!

0
SAdATT