MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

Nautilus scripts :: Configuración de Pantalla

No será por tener mucho tiempo libre pero me parecía útil programarlo y más compartirlo:

 

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#

import nautilus
import subprocess
import os

# put or comment Display configurators here.
# FORMAT
#   [ (string)command  ,        (boolean)need gksu  ]
HELPERS=[
    ["/usr/bin/displayconfig-gtk",              True],
    ["/usr/bin/nvidia-settings",                False],
    ["/usr/bin/gnome-display-properties",       False],
    ["/usr/bin/grandr",                         False],
]

class OpenDisplaySettings(nautilus.MenuProvider):
    def __init__(self):
        pass

    def open_window(self, *args):
        cmd=[]
        for helper in HELPERS:
            if os.path.exists(helper[0]):
                if helper[1]: cmd.append("/usr/bin/gksu")
                cmd.append(helper[0])
                subprocess.Popen(cmd,
                                shell=False,
                                bufsize=0,
                                stdout=subprocess.PIPE,
                                stderr=subprocess.STDOUT,
                                close_fds=True)
                return


    def get_background_items(self, window, _file):
        ICON="/usr/share/icons/gnome/16x16/devices/display.png"
       
        item = nautilus.MenuItem('NautilusPython::open-display-prop',
                                 'Configuración de pantalla',
                                 'Abrir configuración gráfica de pantalla')
        if not os.path.exists(ICON):
            ICON="gtk-dialog-warning"
        item.set_property('icon', ICON)
        item.connect('activate', self.open_window)
        return item,

Guardarlo como "open-display-prop.py" en el directorio ~/.nautilus/python-extensions/ (sino existe se crea)

¿Qué obtenemos?

 


Se pueden añadir más «helpers» o comentar alguno que no nos guste... los «helpers» se buscarán en órden, el segundo parámetro del helper es ver si necesita privilegios de root.

Para que funcione tenemos que tener instalado gksu y python-nautilus.


Articulos relacionados:

Comentarios

  1. J. Félix Ontañón Buen ejemplo de nautilus script
    27/01/2009 | 19:48

    ¡Vaya! Me has dado pie para posibles buenas ideas de scripts nautilus para mi trabajo.

    Claro, sencillo y práctico. ¡Buen post!

  2. Sergio No rula
    28/01/2009 | 22:25

    He hecho un copy+paste y no rula la opción (sí aparece pero no tiene efecto) ¿Dónde puede lcoalizarse algún tipo de log de qué puede estar fallando?

    (¿es correcto que termine con "return item," ?)

  3. 28/01/2009 | 22:33

    Es correcto que acabe en coma (debe devolver un diccionario)

    En cuanto a que no funcione prueba a añadir (el primero) "/usr/bin/xterm", False

    Creo que las extensiones de nautilus no escriben en stdout... quizás en stderr ( ~/.xsession-errors ). Sino "import syslog..."

  4. josh ayuda por favor
    25/03/2009 | 02:05

    cree la carpeta python-extensions dentro de /home/mycarpeta/.nautilus y dentro puse el open-display-prop.py y no funciona.
    tengo instalados gksu y python-nautilus

    perdon las molestias

Comentarios cerrados