¿Cómo escribir Appindicators en Python?

22

Estoy buscando probar y desarrollar algunos indicadores simples, para numlock / capslock y brillo, etc. ¿Cómo haría para crear indicadores en python? ¿Hay algún tutorial que me guíe para escribir mi primer appindicator (como para las aplicaciones rápidamente)? ¿Alguna solución fácil para comenzar como plantillas rápidamente?

DoGoDo
fuente
Especialmente aplicaciones para pyqt5 o pygi y python3 (que también funcionarán fuera de la unidad).
Mateo

Respuestas:

12

Puede encontrar la página para escribir indicadores de aplicaciones aquí:

Ver también:

En esa página encontrará enlaces a ejemplos en Python y la documentación de la API. La plantilla de aplicación ubuntu en Quickly debería tener ejemplos sobre el uso de appindicators. ¡Buena suerte!

Jorge Castro
fuente
¡Gracias! Esperaba un tutorial más paso a paso para mi primer intento, pero haré lo que sea. Mantendré la pregunta abierta por ahora en caso de que alguien sepa de otros tutoriales.
DoGoDo
Encontrarás un tutorial para que comiences en developer.ubuntu.com/get-started . ¡Consulta la sección de recursos para obtener más contenido también! developer.ubuntu.com/resources/app-developer-cookbook/unity
David Planella
Gracias, @DavidPlanella. Vi ese tutorial para comenzar con los programas normales, pero ni siquiera menciona indicadores. Tampoco el otro enlace.
DoGoDo
¿Qué no entiendes sobre el ejemplo aquí? Es un ejemplo directo, simple y funcional (tomado del enlace en la respuesta) developer.ubuntu.com/resources/technologies/…
Timo
2
Pregunta similar o la misma aquí: askubuntu.com/questions/108035/…
fossfreedom
7

Creo que escribir indicadores con Python, GIR y GTK3 , como lo menciona @fossfreedom, cubre cómo crear indicadores para Unity. (Lea eso primero)

Estoy usando Ubuntu 14.04, rápidamente 12.08.1. Esta es una demostración para una compilación de ejemplo de trabajo completa a partir de una plantilla Quickly.

  1. OP quiere solo un indicador (no una aplicación GUI completa), así que comencemos con la plantilla ubuntu-cli Quickly:

    quickly create ubuntu-cli indicator-demo

    Puede generar un mensaje de error para la corrección de errores inéditos ( error # 1064110 ) en esta plantilla:

    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

    Arreglar permisos

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

    Prueba

    $ quickly run
    I'm launched and my args are:
  2. Hay un buen ejemplo PYGI de Ubuntu Wiki: Indicadores de aplicación . Debería ser fácil integrarlo.

    Abierto para editar:

    quickly edit
    • Modificar __init__.py, agregar importación de módulos de necesidad:

      from gi.repository import Gtk
      from gi.repository import AppIndicator3 as appindicator
    • En la main()función, entre:

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

      añadir:

      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. Agregue iconos a una carpeta de datos recién creada:

    mkdir data

    Copié algunos íconos de los paquetes instalados, solo para hacer el ejemplo:

    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. Pruébalo:

    quickly run
  5. Crear paquete y publicarlo:

    quickly package
    quickly share --ppa your-ppa

Notas:

  1. Bueno, no actualicé el archivo de control del paquete debian, pero las dependencias se agregaron automáticamente al DEB generado:

    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

    Además, los iconos agregados previamente en la carpeta de datos se incluyeron en el paquete.

  2. Me enfrenté a un caso similar antes, ¿Cómo agregar un applet de estado modificador de teclado al panel de Unity? . La respuesta contiene un ejemplo / indicador de teclado prototipo usando libappindicator (Pero en el lenguaje de programación c).

    libappindicator carece de una característica importante que facilite la conexión de otros indicadores de escritorios. El icono solo se puede cargar desde la ruta. Ver Bug # 812067 API necesaria: compatibilidad con la configuración del icono pixbuf

Referencias

Preguntas relacionadas:

user.dz
fuente
3

Este enlace le enseñará a crear un nuevo indicador de correo básico en python + unity, que funciona con GMail. Esto le proporcionará una base sólida en la estructura básica de un applet al tiempo que proporciona un ejemplo del mundo real (aunque simplista) que puede ampliar fácilmente. Es pasar por el guión final pieza por pieza.
Este es otro programa de Python con comentarios en código, hecho usando Pygtk

Prinz
fuente