Posts Tagged ‘brillo’

A vueltas con el brillo de la pantalla del mac book pro

julio 8, 2012

Yo ya conseguí poder modular el brillo de la pantalla del mac book pro usando las teclas tal y como expliqué en: Modular brillo pantalla en Mac Book Pro. Pero si recordáis bien esto es cuando se está usando la tarjeta nvidia. Y conseguí, por defecto, usar la tarjeta intel como expliqué en: Usar tarjeta intel integrada en Debian Unstable para MacBook Pro 6,2 .

Con esta última configuración el slider del monitor de batería ya me dejaba cambiar el brillo. Pero la modulación via teclas no me funcionaba. ¿Por qué? Pues porque yo ya la había programado manualmente para usar el script de nvidia.

Hasta ahora no había tocado este tema porque no me había hecho falta. El otro día me dí cuenta de que la opción de bloquear la pantalla no me funcionaba. Simplemente le das a bloquear pantalla y la pantalla sigue bloqueada. No podía ser esto.

 

Así es que para solventar este problema he instaldo el paquete xlock. Me he hecho un lanzador que lo ejecute y voila ya tienes la pantalla protegida cuando quieras.

 

No obstante esto tiene un inconveniente, al cabo de, digamos unos 20 minutos, el brillo de la pantalla baja a mínimos. Tan a mínimos que parece que está apagada. Y entonces es cuándo no me van las teclas por lo que he comentado más arriba. Si estoy conectado a otro monitor puedo desbloquear con la contraseña y ver el escritorio arriba dónde en un mi kde añado un widget de batería y ahí puedo modular el brillo.

 

Pero no quiero ir andando haciendo esto. Así que quiero hacerlo con las teclas, pero, claro, que me pueda servir también arranque en el modo nvidia, o consiga poder hacer switch en el momento.

Para ello por un lado el script para nvidia que ya tenía se renombra a:

custom-backlight-macbookpro_nvidia

. Y por otro lado creo un script muy parecido pero para Intel que copio y pego a continuación:

#!/bin/bash

# Adapted from http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/script-to-set-up-brightness-of-backlight-in-xfce-903704/
# Script for changing backlight brightness in /sys/class/backlight/acpi_video0/brightness
# can take values 0-15, in real (my notebook) works only values 2-15

#IMPORTANT: you must have writing rights to /sys/.../brightness (I must solute it with visudo or something like that...)
#IMPORTANT: for proper work after reboot must exist directory .bright in your home directory and file last_bright in .bright directory 

#reads content of brightness and save it into variable

BRIGHTNESS_FILE="/sys/devices/virtual/backlight/acpi_video0/brightness"
BRIGHT_CONF_DIR="$HOME/.brightintel"
LAST_BRIGHT_FILE="${BRIGHT_CONF_DIR}/last_bright"
BRIGHT=$(cat ${BRIGHTNESS_FILE})

while getopts "pmlhc" optname
 do
  case "$optname" in
   "p")
    #Add more brightness
    #BRIGHT++
    BRIGHT=$(($BRIGHT+8800))
    #protect mechanism (BRIGHT must be lower or equal to 15)
     if (($BRIGHT>132000))
     then
        BRIGHT=$((132000))
     fi
    ;;
   "m")
    #decrease brightness
    #BRIGHT--
    BRIGHT=$(($BRIGHT-8800))
    #protect mechanism (BRIGHT must be bigger or equal to 2)
     if (($BRIGHT<17600))
     then
        BRIGHT=$((17600))
     fi    
    ;;
   "l")
    echo "Loading last value of brightness."
    #Load last value, saved in file last_bright
    BRIGHT=$(cat ${LAST_BRIGHT_FILE})
    echo "Last value of brightness was: $BRIGHT"
    ;;
   "h")
     echo "Help: "
     echo "-p    Increase brightness"
     echo "-m    Decrease brightness"
     echo "-l    Load last brightness value"
     echo "-c N Set to custom value"
     echo "-h    This help"
     echo "Programmed by: ElectricZero"
     echo "Improved by: adrian15"
     exit 0;
     ;;
    "c")
     BRIGHT=$2
     if (($BRIGHT>132000))
     then
        BRIGHT=$((132000))
     fi

     if (($BRIGHT<17600))
     then
        BRIGHT=$((17600))
     fi
     ;;
    "?")
     echo "Unknown argument, try bright -h for help"
     exit 1;
     ;;
    *)
    # Should not occur
    echo "Unknown error while processing options"
    exit 2;
    ;;
  esac
done
echo "Brightness set on $BRIGHT"
#Save variable BRIGHT into file brightness
echo $BRIGHT > ${BRIGHTNESS_FILE}
#Save variable BRIGHT into file last_bright
if [ ! -d ${BRIGHT_CONF_DIR} ] ; then mkdir ${BRIGHT_CONF_DIR} ; fi
echo $BRIGHT > ${LAST_BRIGHT_FILE}

Y he hecho un wrapper que me llama a los dos scripts para sólo tener que interactuar con uno. No comprueba qué script ha de ejecutar pero me da igual. A este script lo he llamado:

custom-backlight-macbookpro_both

y aquí os pongo el código:

#!/bin/bash


NVIDIA_BL_BINARY="/usr/local/bin/custom-backlight-macbookpro_nvidia"
INTEL_BL_BINARY="/usr/local/bin/custom-backlight-macbookpro_intel"

while getopts "pmlhc" optname
 do
  case "$optname" in
   "p")
    #Add more brightness
    ${NVIDIA_BL_BINARY} -p
    ${INTEL_BL_BINARY} -p
    ;;
   "m")
    #decrease brightness
    ${NVIDIA_BL_BINARY} -m
    ${INTEL_BL_BINARY} -m
    ;;
   "l")
    echo "Loading last value of brightness."
    ${NVIDIA_BL_BINARY} -l
    ${INTEL_BL_BINARY} -l
    ;;
   "h")
     echo "Help: "
     echo "-p    Increase brightness"
     echo "-m    Decrease brightness"
     echo "-l    Load last brightness value"
     echo "-c N Set to custom value"
     echo "-h    This help"
     echo "Programmed by: ElectricZero"
     echo "Improved by: adrian15"
     exit 0;
     ;;
    "c")
     BRIGHT=$2
     if (($BRIGHT>15))
     then
        BRIGHT=$((15))
     fi

     if (($BRIGHT<2))
     then
        BRIGHT=$((2))
     fi
    let INTELBRIGHT=${BRIGHT}*8800
    ${NVIDIA_BL_BINARY} -c ${BRIGHT} 
    ${INTEL_BL_BINARY} -c ${INTELBRIGHT}
     ;;
    "?")
     echo "Unknown argument, try bright -h for help"
     exit 1;
     ;;
    *)
    # Should not occur
    echo "Unknown error while processing options"
    exit 2;
    ;;
  esac
done

 

Pues básicamente es eso. Sólo falta editar el archivo /etc/sudoers para habilitar el script que termina en both en lugar del antiguo (miraros el artículo del brillo de la nvidia) y ya lo tenemos.

Y ahora voy a ver si me funciona o no el suspender en modo tarjeta intel que igual en todo este tiempo lo que ha pasado es que volvía a la vida pero con el brillo mínimo y aparentaba no funcionar.

Modular brillo pantalla en Mac Book Pro

marzo 19, 2012

Realmente el artículo es para quién a parte de tener un Mac Book Pro tenga por un lado KDE puesto que las teclas rápidas las configuro en base a él y puede que quién tenga un Debian Unstable. No sé qué soporte hay de esto en Ubuntu, quizás ya venga de serie. Y, bueno, de facto, es para todo el mundo que tenga un Mac Book Pro. Se mira el script y listo. En mi caso el Mac Book Pro es un 6,2.

 

Lo primero es crear el fichero:

/usr/local/bin/custom-backlight-macbookpro

que he adaptado de: Script to set-up brightness of backlight in XFCE

Su contenido será

#!/bin/bash

# Adapted from http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/script-to-set-up-brightness-of-backlight-in-xfce-903704/
# Script for changing backlight brightness in /sys/class/backlight/acpi_video0/brightness
# can take values 0-15, in real (my notebook) works only values 2-15

#IMPORTANT: you must have writing rights to /sys/.../brightness (I must solute it with visudo or something like that...)
#IMPORTANT: for proper work after reboot must exist directory .bright in your home directory and file last_bright in .bright directory 

#reads content of brightness and save it into variable

BRIGHTNESS_FILE="/sys/devices/virtual/backlight/apple_backlight/brightness"
BRIGHT_CONF_DIR="$HOME/.bright"
LAST_BRIGHT_FILE="${BRIGHT_CONF_DIR}/last_bright"
BRIGHT=$(cat ${BRIGHTNESS_FILE})

while getopts "pmlhc" optname
 do
  case "$optname" in
   "p")
    #Add more brightness
    #BRIGHT++
    BRIGHT=$(($BRIGHT+1))
    #protect mechanism (BRIGHT must be lower or equal to 15)
     if (($BRIGHT>15))
     then
        BRIGHT=$((15))
     fi
    ;;
   "m")
    #decrease brightness
    #BRIGHT--
    BRIGHT=$(($BRIGHT-1))
    #protect mechanism (BRIGHT must be bigger or equal to 2)
     if (($BRIGHT<2))
     then
        BRIGHT=$((2))
     fi    
    ;;
   "l")
    echo "Loading last value of brightness."
    #Load last value, saved in file last_bright
    BRIGHT=$(cat ${LAST_BRIGHT_FILE})
    echo "Last value of brightness was: $BRIGHT"
    ;;
   "h")
     echo "Help: "
     echo "-p    Increase brightness"
     echo "-m    Decrease brightness"
     echo "-l    Load last brightness value"
     echo "-c N Set to custom value"
     echo "-h    This help"
     echo "Programmed by: ElectricZero"
     echo "Improved by: adrian15"
     exit 0;
     ;;
    "c")
     BRIGHT=$2
     if (($BRIGHT>15))
     then
        BRIGHT=$((15))
     fi

     if (($BRIGHT<2))
     then
        BRIGHT=$((2))
     fi
     ;;
    "?")
     echo "Unknown argument, try bright -h for help"
     exit 1;
     ;;
    *)
    # Should not occur
    echo "Unknown error while processing options"
    exit 2;
    ;;
  esac
done
echo "Brightness set on $BRIGHT"
#Save variable BRIGHT into file brightness
echo $BRIGHT > ${BRIGHTNESS_FILE}
#Save variable BRIGHT into file last_bright
if [ ! -d ${BRIGHT_CONF_DIR} ] ; then mkdir ${BRIGHT_CONF_DIR} ; fi
echo $BRIGHT > ${LAST_BRIGHT_FILE}

Ahora le daremos permisos de ejecución con

chmod +x /usr/local/bin/custom-backlight-macbookpro

y para que esto pueda funcionar sin hacer muchas comedias vamos a autorizar a nuestro usuario a ejecutar el script como root. Para ello editaremos el fichero sudoers:

sudoedit /etc/sudoers

añadiendo una linea tal que:

usuario ALL= NOPASSWD:/usr/local/bin/custom-backlight-macbookpro

.

Hasta aquí sería la parte no gráfica. Ahora pasaremos a lo aburrido.

Nos vamos a Preferencias Generales (Es una aplicación exclusiva de KDE). Acceso rápidos y gestos. Accesos rápidos personalizados.

En estos he creado un nuevo grupo (botón derecho en espacio blanco), y dentro de él dos Nuevos acceso rápidos globales basados en orden/Url.

El acceso rápido aumentar brillo como disparador tiene la tecla “Aumentar brillo” del mac. Como orden/URL tiene:

sudo /usr/local/bin/custom-backlight-macbookpro -p

De forma análoga el acceso rápido disminuir brillo como disparador tiene la tecla “Disminuir brillo” del mac. Como orden/URL tiene:

sudo /usr/local/bin/custom-backlight-macbookpro -m

Marcamos el tick para que todo el grupo esté activo y aplicamos.

En principio desde ahora cuando pulsemos las teclas “disminuir brillo” y “aumentar brillo” harán lo que se nombre indica en el rango 2-15 aunque el permitido fuera 0-15.

Si habéis consultado el enlace del script original veréis que no tenía una opción custom (para poner el valor de brillo que uno quiera) y este sí. Esto es así porque lo usaré en el cambio de modos de ahorro energía de KDE. Pero esto ya será para otro post.