domingo, 16 de diciembre de 2007

Apaga el monitor con una tecla

Intro
Acabo de descubrir que existe una función llamada xset que puede ser muy útil.
Leyendo el manual (man xset) descubro que puede manejar cosas como los leds del teclado, la velocidad y threshold (la sensibilidad) del ratón, el salvapantallas, colores del monitor, el pcspeaker, pero también el ahorro de energía, que si no me equivoco, debe estar activado.

Para saber la configuración puedes escribir "xset q".

Utilidad
Donde yo le veo utilidad es para apagar el monitor. ¿porqué tengo que dejar inactivo durante un tiempo el pc para que se apague el monitor? Pasado un tiempo se activa el salvapantallas, y a los X minutos se apaga el monitor. Pues yo quiero apagar el monitor ¡¡YA!! porque mi portátil tiene que ahorrar energía. Combinado con el bloqueo de pantalla, nos da un plus de seguridad. Y si a todo ese comando le ponemos un shortcut (combinación de teclas) ya es la **tia.

Por pasos:
xset dpms force off Apaga el monitor
gnome-screensaver-command --lock Bloquea la pantalla (me ha costado encontrarlo, así que ¡Bien por mí!)

No sé qué screensaver usa kde, pero si es xscreensaver el comando equivalente es "xscreensaver-command -lock".

Como ambos comandos no se pueden usar a la vez desde consola (piénsalo, si primero apagas el monitor, en cuanto pulses una tecla se enciende; y al revés: si primero bloqueas la pantalla no puedes usar el ordenador) hay que hacerse un script, o mejor aun, un acceso directo (lanzador) o mejor aun, un shortcut.

Crear un lanzador
He descubierto que un lanzador no puede ejecutar varios comandos seguidos. A continuación explico cómo hacer un lanzador para apagar el monitor:
  1. Clic secundario en escritorio. Crear un lanzador.
  2. Tipo: Aplicación. Nombre: Apagar monitor.
  3. Comando: xset dpms force off
Puedes cambiar el comando por gnome-screensaver-command --lock que bloquea la pantalla. Si no lo queremos en el escritorio lo podríamos arrastrar a cualquiera de las barras, donde se ejecutará con un clic.

Crear un script
En el caso de que queramos apagar el monitor y bloquear la sesión, debemos seguir los pasos, y luego hacer un lanzador:
  • Crear una carpeta por ahí perdida (oculta) y entramos en ella: mkdir ~/.Scripts && cd ~/.Scripts
  • Con gedit (nano para los freaks, y vim o emacs para los muy freaks) creamos un archivo nuevo BloquearYApagar.sh:
#!/bin/sh
gnome-screensaver-command --lock && sleep 1 && xset dpms force off;
  • Le damos permisos de ejecución: chmod +x ~/.Scripts/BloquearYApagar.sh
  • Y creamos el lanzador poniendo la ruta completa en "Comando": /home/<usuario>/.Scripts/BloquearYApagar.sh

Si no sabes cómo guardar el script en una carpeta oculta, guárdalo en el escritorio y luego haz desde la consola: mv ~/Desktop/ BloquearYApagar.sh ~/.Scripts/
El motivo por el que pongo sleep 1 es para retrasar el apagado un segundo, aprovechando el dimming del bloqueo, que hace que nuestro script sea más profesional ;-) Si os fijáis sí podemos ejecutar primero el bloqueo y después el apagado del monitor, puesto que no necesitamos interactuar con la interfaz.

Crear un shortcut (combinación de teclas)
Si nuestra orden es simple, no es necesario hacer el script. En cambio, para poner varios comandos debemos seguir los pasos del script anterior. Una vez seguidos los pasos, tenemos que... [Leer siguiente post] Razón: Merece la pena dedicarle un post a esa utilidad.

{Idea tomada de Think Ubuntu}

1 comentario:

gorylong dijo...

buen post, mientras tu quieres ahorrar, yo quiero hacer todo lo contrario =)

estoy probando si funciona, pero aun asi, es un gran aporte :-)


saludos!!