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.