Archive for the ‘ Truco del almendruco ’ Category

Preparar un entorno de trabajo con wmctrl

wmctrl es un programa que nos va a ayudar a generar un entorno de trabajo en el que usamos una serie de aplicaciones de forma habitual con un layout concreto.

El ejemplo siguiente funciona sobre Gnome 3 que genera de forma dinámica los escritorios virtuales (workspaces) por lo que habrá que jugar también con el comando sleep para darle tiempo a crear nuevos workspaces.

En el ejemplo se creará un entorno con una terminal, el IDE de programación Pida, un navegador, dos ventanas y Rhythmbox para escuchar música.

#!/bin/bash
# primer escritorio
wmctrl -s 0
pida &
iceweasel &
terminator --working-directory=/home/javi/Escritorio/PFC -l pfc &
sleep 5s
wmctrl -x -F -r "terminator.Terminator" -e 0,842,0,1078,1080
wmctrl -x -F -r "pida.Pida" -e 0,0,0,840,1047
wmctrl -x -F -r "Navigator.Iceweasel" -e 0,1920,369,1280,742
wmctrl -r "Iceweasel" -t 0

#segundo escritorio
nautilus /home/javi/Escritorio/PFC &
sleep 2s; 
wmctrl -F -r "PFC" -e 0,2150,330,871,638 
wmctrl -F -r "PFC" -t 1

#tercer escritorio
nautilus /home/javi/Escritorio/PFC/Documentación &
sleep 2s; 
wmctrl -r "Documentación" -e 0,2150,330,871,638 
wmctrl -r "Documentación" -t 2

#cuarto escritorio
rhythmbox &
sleep 3s; 
wmctrl -xF -r "rhythmbox.Rhythmbox" -e 0,1920,369,1280,742
wmctrl -xF -r "rhythmbox.Rhythmbox" -t 3
exit 0

Como se puede ver hay que dejar tiempos de espera con sleep para que haya tiempo para lanzarse la aplicación o crearse el workspace virtual por parte de Gnome 3.
En algunos casos se ha usado el parámetro -x la ventana usando la clase del programa cuando el programa sustituye su nombre en el título de la ventana por otro texto (caso Pida). En otros se ha usado -r que busca dicha cadena en el título de la ventana.
El parametro -F obliga a buscar estrictamente la cadena (case sensitive)

Por último, este script se puede guardar en un directorio del path como ~/bin para poder ejecutarlo fácilmente usando Alt+F2 en Gnome.

Anuncios

Recuperar un Grub al fallar la instalación

Arrancar desde una live distro. Se puede configurar una fácilmente usando unetbootin en un USB.

Montar la partición con /boot en algún directorio. Pej. /mnt/debian


grub-install --root-directory=/mnt/debian/ /dev/sda

Rearrancar. Debería aparecer un prompt así: grub>

linux /boot/vmlinuz-x.x.x-x-xxxxxx root=/dev/sdXY ro

initrd /boot/initrd.img-x.x.x-x-xxxxx

boot

Una vez haya arrancado el sistema


grub-install

update-grub2

Encriptado de partición home: cryptsetup y luks

Lo he obtenido de http://disonanciamental.dyndns.org

Si bien esto vale para cifrar la partición home, en mi caso he preferido cifrar únicamente un directorio “Documentos” de mi home que es donde guardo la información sensible.
He usado una partición libre de 20GB /dev/sda2 donde se guardará la información cifrada.
Se comienza por instalar cryptsetup y libpam-mount para montar las particiones.

aptitude install cryptsetup libpam-mount

Se cargan los modulos para no reiniciar

modprobe -a aes dm_mod dm_crypt sha256

Se actualiza pam para activar pam-mount:

pam-auth-update

Se crea la partición cifrada con la contraseña de nuestro usuario (para que el proceso de montaje sea transparente vía pam)

cryptsetup luksFormat /dev/sda2

Se le cambia el nombre a la partición. En mi caso “Documentos” para que después al montarse los enlaces de Gnome 3 sigan teniendo “Documentos” como nombre. Esto lo hice con el editor de particiones/discos de gnome.

cryptsetup luksOpen /dev/sda2 crypt-home

Se da formato a la partición.

mkfs.ext4 /dev/mapper/crypt-home

Se copian los datos a dicha partición

mount /dev/mapper/crypt-home /mnt/
rsync -tarv /home/user/ /mnt/

Se indica a pam-mount el punto de montaje

vi /etc/security/pam_mount.conf.xml

Bajo “Volume definitions” se añade

<volume user="ratoncio" fstyp="crypt" path="/dev/sda2" mountpoint="/home/ratoncio" />

Al iniciar con el usuario se cargará automáticamente la partición cifrada de con los documentos.

Por último, para cambiar la contraseña se haría lo siguiente:
Se busca la clave que está en uso en los slots. Si nunca se ha hecho esto, lo más probable es que sea el slot 0

cryptsetup luksDump /dev/sda2

Se añade una nueva clave. Se pedirá una de las claves en uso, en este caso la única que existe, la del slot 0.

cryptsetup luksAddKey /dev/sda2

Se borra la clave anterior. Esto sólo funciona si al menos hay otra clave creada.

cryptsetup luksKillSlot /dev/sda2 0 

Filtrar PowerPoints en gmail

Este truquillo está muy  bien para filtrar correos que tengan powerpoints adjuntos (que odio con toda mi alma) sin tener que marcar como spammer al remitente. Los pasos son:

  • Habilitar la extensión de google labs: “enviar respuesta prediseñada
  • Escribir un correo nuevo y, en lugar de enviar, guardar como respuesta prediseñada.
  • Crear un filtro que contenga las palabras: filename:.pps OR filename:.ppt y marcar el checkbox “contiene archivos adjuntos“.
  • Habilitar las opciones: “Omitir Recibidos” (Archivarlo), “Aplicar la etiqueta” (para enviarlo a otra carpeta en gmail) y “Enviar respuesta prediseñada” (para responder automáticamente)

Cualquier correo que nos envíen conteniendo powerpoints será filtrado y comunicado al remitente de forma automática.