Miniaplicativos gnome "simples" no Unity - stickynotes

7

Eu acho que esta é uma questão relacionada a Posso usar applets do GNOME no Unity? ? (movido por sugestão de @ Jorge Castro )

Eu gostaria de usar stickynotes_applet no Unity. Agora no Gnome, esse applet é adicionado a uma barra, então eu tenho que clicar nele para criar uma nova nota, e eu posso chamar preferências para ter as notas no desktop - que é tudo que eu preciso.

Obviamente, como mencionado aqui, não será possível usar este applet diretamente no Unity; mas basicamente, tudo que eu preciso fazer é levantar a janela Preferences (para fazer as notas ficarem) e, de alguma forma, emitir um comando para uma nova nota (que, de outra forma, seria executada clicando no ícone do applet em a barra do Gnome).

Eu tentei executar ' /usr/lib/gnome-applets/stickynotes_applet ' e, aparentemente, ele é executado, embora nenhum ícone de applet seja exibido (o que é esperado) e nenhuma outra janela (que, caso contrário, mostraria :)).

Então eu estava vagando - dado que este applet não (parece) tem nada de especial relacionado ao desktop - existe uma linha de comando para basicamente executar este applet, emitir um 'Show Preferences 'comando para ele, e emite um novo comando note para ele dentro de um ambiente Unity ( atualmente eu posso chamar tomboy da linha de comando e funciona - mas suas janelas são muito desajeitadas para o meu gosto )?

(e pergunta bônus - como você iniciaria uma janela relacionada ao applet somente a partir da linha de comando do Gnome clássico?)

A integração de desktop não importa tanto para mim - eu teria executado isso manualmente na linha de comando com prazer, contanto que eu tenha pequenas notas compactas que permaneçam na área de trabalho (contanto que o processo esteja ativo). .

Obrigado por quaisquer comentários,
Felicidades!

    
por sdaau 18.04.2011 / 08:24

4 respostas

3

Voltei a esse problema novamente (ainda no Natty); então pensei em postar meus resultados.

Primeiro, eu comecei a pesquisar se você pode executar os applets do Gnome a partir da linha de comando, e em uma janela separada - essa é uma técnica para depurar applets do Python;

Este é o 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()

... e o script estendido (com saída de depuração e vários comentários confusos) está em gtk_bonobo_applet_widget. py .

Isto é exatamente o que eu queria e, a princípio, eu pensei que seria aplicável a todos os applets - pelo menos em Natty (e entre eles stickynotes ); mas ai, não :

Agora, Natty é um pouco específico, porque é o último Gnome 2 Ubuntu - no entanto, também possui (o primeiro) Unity. Como tal:

  • alguns applets são baseados em (ou expor) uma interface bonobo / CORBA (em Python, via gnomeapplet ); aqueles, como invest-applet ou brightness-applet , podem usar a técnica acima para serem gerados em sua própria janela - e podem ser consultados através de libbonobo2-bin tools (como activation-client )
  • outros applets, como stickynotes , migraram para a base GSettings / DBUS (interface)

Na verdade, stickynotes migrou de bonobo para dbus pouco antes de Natty sair (na revisão Porta para a nova API do applet libpanel ); o que é óbvio pela substituição da macro PANEL_APPLET_BONOBO_FACTORY por PANEL_APPLET_OUT_PROCESS_FACTORY . Indiscutivelmente, se alguém fizer check out da última revisão de stickynotes com base em bonobo e compilá-la - também deverá ser possível usar a técnica acima para instanciar o applet em uma janela separada e executá-lo a partir daí, mesmo sem% código%.

Eu teria acreditado, que os todos applets (ou melhor, o applet de desenvolvimento de frameworks) deveriam ter a capacidade de rodar em uma janela separada como essa - se não por qualquer outra razão, então para facilitar depuração de applets durante o desenvolvimento. E dado que alguns applets têm opções de linha de comando para execução em uma janela separada (tanto o "guia do iniciante" acima, e também gnome-panel , apresentam tais opções) - Eu esperava que invest-applet também apresentasse tais argumentos de linha de comando; no entanto, eu fiz grep através de seus arquivos de origem - e, infelizmente, não consigo encontrar qualquer menção de opções de linha de comando.

Mas então, eu me perguntei - por que essa migração? Bem, é porque stickynotes é (ou melhor, foi) obsoleto por um tempo agora:

AppletsDbusMigration - GNOME Live! : (2009)

  

O Gnome Panel descartou a dependência da libbonobo recentemente (veja bug # 572131 ).

lista de discussão do gnome-devel-list - O que irá substituir o bonobo? ( 2009)

  

O Dbus não é um substituto direto para o bonobo.   Não há substituição exata do bonobo como tal.
  ...
  No entanto, o principal usecase do bonobo, que é embutir um aplicativo em outro (digamos, varredor de mina em gnumeric, ou (um pouco mais útil) um diagrama de dia em gnumeric) simplesmente não é usado tanto assim.

lista de discussão do gnome-components 'Re: O que irá substituir o bonobo?' (2005)

  

& gt; Sobre o DBUS, é difícil dizer que ele será substituído algum dia.
  & gt; O primeiro problema é que não é um sistema de componentes, apenas uma API de transmissão de mensagens.
  Confie em mim, há definitivamente planos para implementar um compilador IDL de   algum tipo de imitação de RPC estilo CORBA no topo das mensagens D-BUS. Será   acontecer mais cedo ou mais tarde.

Bem, shucks - Eu mesmo acho que o "embutir um aplicativo em outro" foi muito útil neste caso - rodar (pelo menos alguns) applets no Unity, com suporte para eles removidos bonobo Claro, foi um arranjo mais ou menos "sortudo" de pacotes de desktop no Natty que permitiu isso (já que ainda é o Gnome 2 e ainda tem as bibliotecas :) ) - obviamente, versões posteriores que são baseadas no Gnome 3 têm bonobo removido completamente - e a técnica de instanciação em janela de script em Python acima definitivamente não funcionará lá bonobo

A questão final é - poderíamos usar de forma semelhante um script Python, mas com ligações para :/ , para alcançar algo semelhante ao script acima baseado em dbus ?

Mais próximo eu cheguei a isso, é com o script gtk_dbus_applet_widget.py , no entanto, esse script não crie um applet em uma janela - e não é possível adicionar um applet à barra! A única coisa que pode fazer é conversar com o applet "factory" via bonobo e instruí-lo para criar um applet; mas este applet permanece simplesmente como dados em algum lugar do sistema de arquivos ( e persiste através de reinicializações! ), e nunca é instanciado como um widget do Gnome ... E dado os comentários acima , Duvido que algo assim seja atualmente (bem, pelo menos em Natty) possível com dbus .

Em conclusão - eu acho que isso, junto com a técnica dbus , esgota as possibilidades de executar miniaplicativos frivolamente sob Unidade em Natty.

    
por sdaau 28.03.2013 / 23:04
3

Você pode ter um pequeno painel gnome executando apenas o seu applet. Veja Como eu uso o Painel do GNOME no Unity?

    
por Egil 05.05.2011 / 10:29
2

Rhinote tem atalhos de teclado

    
por RobotHumans 18.04.2011 / 08:38
0

Para aqueles que ainda estão procurando por algo semelhante, prático e compatível com o recurso Nota da categoria, há notas indicativas.

Instalação:

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

sudo apt-get update

sudo apt-get install indicator-stickynotes

Espero que ajude ... Aproveite!

    
por SAdATT 29.05.2017 / 00:06