Como escrever Appindicators em python?

22

Estou procurando tentar desenvolver alguns indicadores simples, para numlock / capslock e brigthness, etc. Como eu iria criar indicadores em python? Existem tutoriais que me orientam a escrever meu primeiro appindicator (como aplicativos rapidamente)? Alguma solução fácil para começar como modelos rapidamente?

DoGoDo
fonte
Especialmente indicadores de aplicação para pyqt5 ou pygi e python3 (que também funcionarão fora da unidade).
Mateo

Respostas:

12

Você pode encontrar a página para escrever indicadores de aplicativos aqui:

Veja também:

Nessa página, você encontrará links para exemplos no Python e na documentação da API. O modelo de aplicativo ubuntu em Rapidamente deve ter exemplos de uso de indicadores de aplicativos. Boa sorte!

Jorge Castro
fonte
Obrigado! Eu estava esperando um tutorial mais passo a passo para minha primeira tentativa, mas vou me contentar com o que é. Vou manter a pergunta em aberto por enquanto, caso alguém conheça outros tutoriais.
DoGoDo 11/11
Você encontrará um tutorial para começar no developer.ubuntu.com/get-started - confira a seção de recursos para obter mais conteúdo também! developer.ubuntu.com/resources/app-developer-cookbook/unity
David Planella
Obrigado, @DavidPlanella Eu assisti esse tutorial para começar com programas normais, mas nem sequer menciona indicadores. Nem o outro link.
DoGoDo
O que você não entende sobre o exemplo aqui? É um exemplo simples e direto de trabalho (extraído do link na resposta) developer.ubuntu.com/resources/technologies/…
Timo
2
Semelhante ou a mesma pergunta aqui - askubuntu.com/questions/108035/…
fossfreedom
7

Acho que escrever indicadores com Python, GIR e GTK3 , como mencionado por @fossfreedom, aborda como criar indicadores para o Unity. (Leia o primeiro)

Estou usando o Ubuntu 14.04, Rapidamente 12.08.1. Esta é uma demonstração para um exemplo completo de trabalho criado a partir de um modelo Rapidamente.

  1. O OP quer apenas um indicador (não um aplicativo GUI completo), então vamos começar com o ubuntu-cli Template rapidamente:

    quickly create ubuntu-cli indicator-demo

    Pode gerar uma mensagem de erro para correção de bug não lançado ( bug # 1064110 ) neste modelo:

    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

    Corrigir permissões

    cd indicator-demo/
    chmod +x bin/indicator-demo

    Teste

    $ quickly run
    I'm launched and my args are:
  2. Há um bom exemplo de PYGI no Ubuntu Wiki: Indicadores de Aplicação . Deve ser fácil integrá-lo.

    Aberto para edição:

    quickly edit
    • Modifique __init__.py, inclua importações de módulos necessários:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
    • Na main()função, entre:

      print _("I'm launched and my args are: %s") % (" ".join(args))
      logging.debug(_('end of prog'))

      adicionar:

      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()
  3. Adicione ícones a uma pasta de dados recém-criada:

    mkdir data

    Copiei alguns ícones dos pacotes instalados, apenas para fazer o exemplo:

    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
  4. Teste-o:

    quickly run
  5. Crie um pacote e publique-o:

    quickly package
    quickly share --ppa your-ppa

Notas:

  1. Bem, eu não atualizei o arquivo de controle do pacote debian, mas as dependências foram adicionadas automaticamente ao DEB gerado:

    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

    Além disso, os ícones adicionados anteriormente na pasta de dados foram incluídos no pacote.

  2. Eu enfrentei um caso semelhante antes, como adicionar um applet de estado de modificador de teclado ao painel do Unity? . A resposta contém um indicador de teclado de exemplo / protótipo usando o libappindicator (mas na linguagem de programação c).

    O libappindicator não possui um recurso importante que facilite a portabilidade de outros indicadores de desktops. O ícone pode ser carregado apenas no caminho. Consulte o Bug # 812067 API necessária: suporte à configuração de ícones pixbuf

Referências:

Perguntas relacionadas:

user.dz
fonte
3

Este link o ensinará a criar um novo indicador básico de correio no python + unity, que funciona com o GMail. Isso fornecerá uma sólida base na estrutura básica de um applet, fornecendo um exemplo do mundo real (embora simplista) que você pode estender facilmente. É passar o script final, peça por peça.
Este é outro programa python com comentários em código, feito usando Pygtk

Prinz
fonte