sábado, 6 de octubre de 2012

Modificar tablet Odys Next para poder cargar la batería también por USB


Nota: Idea original sacada del foro alemán Android-Hilfe, de este post, donde no explican mucho, simplemente ponen un par de fotos. Aquí me he limitado a repetir yo el experimento y poner instrucciones más detalladas.

La tablet Odys Next es un dispositivo que viene con Android 4.0 ICS, pantalla de 7" 800x600, una CPU Cortex A8 a 1,2 GHz (ARM), 1 GB de RAM, 8 GB de memoria interna... Por su precio (130 € más o menos) no está nada mal, es un dispositivo multimedia interesante y funciona de forma bastante fluida. Lo único, que la pantalla se queda corta de resolución, pero en una tablet de ese precio no podemos pedir más y se ve bastante bien.

Bueno, resulta que en el lateral de la tablet nos encontramos lo siguiente:


  • El puerto USB PC, como su nombre indica, podemos usarlo para transferir datos entre la tablet y el PC, exclusivamente. 
  • El USB host, para conectar un teclado, ratón, memoria USB o módem 3G mediante un adaptador adecuado (este).
  • El conector DC 5V es la única manera que tenemos de cargar el dispositivo... de momento.

Con este pequeño tutorial de electrónica, conseguiremos que el puerto USB PC también sirva para cargar la tablet (sin quitar la funcionalidad del conector DC 5V). De esta manera, podemos utilizar el mismo cable que usamos para otros dispositivos (mini-USB) y/o cargar la tablet mientras está conectada al PC transfiriendo archivos.

En mi caso, el conector DC 5V hembra (el de la foto) se me debe haber roto, ya que para poder cargar la tablet debo mover y sujetar el cable constantemente, hay algún contacto suelto por dentro. Bueno, pues con este tutorial también he arreglado este problema. 

Es conveniente que se tenga, al menos, algo de experiencia al soldar. Los puntos de suelde son muy pequeños, y una gota de estaño fuera de lugar o un sobrecalentamiento de la placa debido a la alta temperatura del soldador pueden causar daños irreparables a la tablet. No me hago responsable si alguien la rompe, es un proceso delicado.

Materiales necesarios:

         
Tablet Odys Next
                               
                                       Pequeño destornillador (plano o de estrella)
        
Soldador (de punta fina mejor) y estaño
                                
                                          Cable mini-USB (diferente del micro-USB)

Trozo de cable (mejor de un solo hilo, es decir,
que por dentro no tenga un conjunto de hilos de cobre
trenzados, sino uno solo. Esto facilitará el soldar luego.
Si no tienes, uno de hilos trenzados puede servir.) 



















Cinta adhesiva


Pasos para realizar el tutorial

1.) Lo primero que haremos será quitar la carcasa principal de la tablet, lo cual nos permitirá acceder a su placa base, batería, etc. En este aparato es muy sencillo, ya que únicamente hay que quitar los dos tornillos que aparecen en el lateral derecho, a ambos lados de los puertos USB, microSD, etc. Cuidado con perderlos, son muy pequeños. 






2.) Posteriormente no tenemos más que extraer la carcasa tirando suavemente de todos los laterales. Ahora "doblamos" la pantalla hacia abajo poniendo al descubierto la placa base, batería, etc.


3.) Ahora, hay que fijarse bien en la parte de los puertos, vista desde dentro. Se ve algo así:

Clic para agrandar

Levantamos un poco la cinta transparente naranja que hay dentro, para dejar ver los puntos que he marcado en verde a la izquierda de la foto. El objetivo es unir mediante un cable los puntos verdes de la izquierda (uno de los dos) con el de la derecha. 

Respecto a los de la izquierda, he puesto los dos porque es igual, es el mismo nodo, están conectados. Sin embargo es más fácil utilizar el de la derecha de los dos, ya que la resistencia que hay allí es un poco más grande y nos será algo más cómodo soldar (no mucho más...).


Antes de soldar: Comprueba con cualquier cable que si unes dichos puntos sin tocar nada más cuando hay un cable mini-USB conectado desde el puerto USB PC hasta un PC o una toma de corriente USB, el LED rojo que está al lado del micrófono, a la derecha del conector DC 5V, se ilumina. Ejemplo ->

4.) A soldar. Cogemos el trozo de cable que hemos buscado. Es mejor que sea un cable de hilo único, como decía arriba, ya que como vamos a soldar en un espacio muy pequeño, tenemos de esta manera más precisión, pero no es importante. En todo caso, que sea un cable fino.

La manera más fácil es comenzar por el punto de la derecha, el que está en el conector DC 5V. Estañamos un poco el punto, con cuidado de que el estaño no toque ninguna otra zona. Nuestro soldador casero no fundirá el metal utilizado en la soldadura que viene hecha, así que nada, paciencia hasta que algo de estaño se nos quede ahí pegado.

5.) Es buen momento para cortar el cable que sobre. El otro extremo debe quedar casi justo sobre el punto donde lo vamos a poner. No podemos dejar ahí dentro dos metros de cable, encima de eso va la pantalla y casi no tenemos hueco entre ésta y la placa. De nuevo, antes de soldar el 2º punto, comprobamos que el LED rojo se sigue encendiendo, para asegurarnos que hemos soldado bien el punto de la derecha.
6.) Llega un momento crítico: soldar el punto de la izquierda, el de la miniresistencia. Es un punto DIMINUTO, aquí hay que tener aún más cuidado. Para estañar, con que quede una gotita de estaño sobre ella basta y sobra, que tampoco se puede mucho más. Vigila que los extremos pelados del cable al lado de las soldaduras no tocan ningún otro componente cercano.
7.) Tras comprobar de nuevo que el LED se enciende (= está cargándose), por si hubiera que rehacer o retocar alguna soldadura, pegamos el cable contra la placa para que no incordie. Podemos utilizar parte de la cinta naranja que retiramos al principio, y añadir algo de cinta adhesiva nosotros. Que quede algo similar a:

De esta manera aplanaremos el cable, y la pantalla no tendrá problemas de espacio.

8.) Ponemos la pantalla en su sitio, ponemos la carcasa a presión y la atornillamos. Ya tenemos nuestra tablet cargable por USB lista :)

Importante: La corriente máxima que puede proporcionar un puerto USB  de los de nuestro PC es de unos 500mA o poco más. Esto es importante, ya que la corriente máxima que admita es la que determina la velocidad a la que se va a cargar la tablet. El adaptador DC que viene con la tablet proporciona 2 amperios, por lo que si cargamos por el puerto USB del PC tardará probablemente... 4 veces más. Pero es útil para que se vaya cargando mientras transferimos datos, como una película grande (y que no se acabe la batería en la transferencia...).

Para que cargue a la misma velocidad, hay que utilizar un adaptador USB de corriente parecido a este
pero que sea capaz de proporcionar 2 amperios máximo. La mayoría de los que se venden proporcionan 500mA, 850mA, 1A... La corriente máxima aparece especificada en una pegatina o un grabado en el mismo adaptador.

¿Por qué utilizar ese adaptador y cargarla por USB en lugar de con el que viene por defecto, que ya la carga desde la toma de corriente? Pues porque el conector DC 5V se puede romper, como me ha pasado, y por lo cual he hecho esta modificación. El puerto mini-USB es mucho más seguro físicamente, es complicado que se rompa la conexión propiamente física.

Fotos de prueba, cargándose tras ser montada:

lunes, 1 de octubre de 2012

Script de Nautilus o Caja para quitar la contraseña de uno o varios PDF

Aviso: Este método no crackea la contraseña, debes conocerla ya. Pero es útil para dejar un PDF limpio de protecciones de manera rápida y cómoda, con apenas dos clicks encima del archivo. Si utilizas este script con un PDF sin contraseña, lo dejará igual, le digas la contraseña que le digas.

Lo primero: Nautilus es el explorador de archivos de Gnome y Caja es el explorador de archivos de Mate, un fork de Gnome 2 que utiliza, sobre todo, la distribución Linux Mint.

Los requisitos para poder utilizar este script son simplemente instalar

  • zenity (pequeño programa para generar ventanas con información/entrada de texto/etc. en GTK, suele venir preinstalado con Gnome o Mate)
  • qpdf (programa editor de PDF, es capaz de encriptar, desencriptar, y más cosas)

mediante la manera habitual de instalar paquetes de tu distribución (sudo apt-get install zenity qpdf por ejemplo, en Debian/Ubuntu/Linux Mint, etc).


Si utilizas Nautilus, debes guardar el script en la carpeta /home/tuusuario/.gnome2/nautilus-scripts y si utilizas Caja en la carpeta /home/tuusuario/.config/caja/scripts 

Este es el script que he hecho. Cambia la parte en rojo por $NAUTILUS_SCRIPT_SELECTED_URIS en caso de utilizar Nautilus en vez de Caja, el resto del script es exactamente igual.
#!/bin/bash
# Quitar la contraseña de un PDF si ya la conocemos

for archivo in $CAJA_SCRIPT_SELECTED_URIS; do
archivo=$(echo $archivo | cut -c 8-)
archivo=$(printf "${archivo//%/\\x}")
nombre=$(echo ${archivo##*/})
error=algo  # Vale, esto es poco ortodoxo, pero funciona
while [ "$error" != "" ]; do
if [ $(echo $archivo | tail -c 4) == "pdf" ]; then
input=$(zenity --text "Se eliminará la contraseña de $nombre\n\n¿Cuál es su contraseña actual?" --entry)
retval=$?
case $retval in
0)
error=`qpdf --password=$input --decrypt "$archivo" "$archivo.o" 2>&1 && mv -f "$archivo.o" "$archivo"`
echo $error
if [ "$error" != "" ] ; then zenity --text "Contraseña incorrecta." --info; fi
;;
1)
error=""
;;
esac;
else
zenity --text "El archivo $nombre no es un pdf." --info
error="";
fi
done
done

Lo copiamos y pegamos en un archivo llamado, por ejemplo, "Eliminar contraseña PDF" en el directorio de scripts que os he dicho antes y le damos permisos de ejecución. Se puede hacer dando a propiedades en el menú del botón derecho -> Permisos -> Permitir ejecutar el archivo como un programa, o bien abriendo una consola en dicha carpeta y escribiendo:
$ chmod +x Eliminar\ contraseña\ PDF

Una vez hecho todo esto, nos vamos a donde tengamos los PDF a los que queremos quitar la contraseña y los seleccionamos (se pueden seleccionar varios a la vez). Abrimos el menú con el botón derecho y seleccionamos Scripts -> Eliminar Contraseña PDF.


El script nos irá preguntando la contraseña de cada uno de ellos y, si ponemos la correcta, se la quitará. Ojo: El PDF original con contraseña desaparece, es sustituido con la versión limpia.

Captura del efecto:


Espero que a alguien le sea tan útil como a mí, buenas noches.






jueves, 12 de julio de 2012

Resolver el error del bucle "Obteniendo dirección IP..." en Android

Si te ha ocurrido que un día, en tu Android de cualquier versión, al intentar conectarte a una red Wi-Fi no se completa la conexión y se queda en un bucle infinito de "Conectando... --> Autenticando... --> Obteniendo dirección IP...", tienes dos posibles soluciones:

  • Limpiar archivos de configuración de DHCP (sólo root):
    • Necesitamos ser root en el terminal y tener un explorador root de archivos, como por ejemplo Solid Explorer (es mi favorito, es genial) que lo podéis obtener aquí, pero es válido cualquier otro.
    • Nos vamos a la ruta /data/misc/dhcp y borramos (se puede hacer un backup por si acaso, bastaría con renombrarlos) todos los archivos que hay dentro, que serán 3 o 4.
      Si no aparece la ruta /data/misc/dhcp se puede probar creando una nueva carpeta en /data llamada misc y luego metiéndose en ella, y aparecerá nuestra carpeta dhcp (si no, reinicia el móvil después de crearla),
    • Ahora reiniciamos el terminal e intentamos conectarnos de nuevo a una red. Debería funcionar ahora.

En caso de que no funcione, tenemos una segunda opción, más limitada:
  • Asignar una IP estática a la conexión (sólo válido para redes domésticas): Para ello, en los ajustes del sistema, en Conexiones Inalámbricas y Redes -> Ajustes de Wi-Fi -> Pulsamos en nuestra red Wi-Fi (si ya la teníamos guardada, pulsación larga --> Modificar red) y pulsamos en Mostrar opciones avanzadas --> Ajustes de IP --> IP Estática.

    Rellenamos los datos de esta manera:
    • Dirección IP: 192.168.1.8 (Por ejemplo. El último número puede ser otro, pero no puede coincidir con ninguna IP que ya esté asignada a algún aparato en la misma red)
    • Puerta de enlace: 192.168.1.1 (Depende del router, pero en el 98% de ellos es esta)
    • Longitud prefijo de red: 24
    • DNS 1: 8.8.8.8 
    • DNS 2: 8.8.4.4 (Son los DNS propios de Google)
    Al dar a guardar, probablemente ya podamos conectarnos sin problema. Si no, prueba con 192.168.0.8 en Dirección IP  y con 192.168.0.1 en Puerta de enlace.
La solución anterior no es válida para redes corporativas, por ejemplo, en las que no puedes asignarte tu propia dirección IP válida. Además, debemos realizarlo en cada una de las redes wi-fi que tengamos configuradas.

martes, 3 de julio de 2012

Solucionar el error 403 al descargar aplicaciones Android desde Google Play

Hay un error que afecta en diversas circunstancias a usuarios de diversas ROM's, versiones de Android y teléfonos, que consiste en ir a descargar o actualizar cualquier aplicación de Google Play y obtener este mensaje:

Could not be downloaded due to an error.(403)

En español debe ser algo como No se ha podido descargar debido a un error. (403) imagino.

A mi me ocurrió nada más instalar la ROM CyanogenMod 9 RC1 en mi Sony Ericsson Xperia Neo V y posteriormente instalar las gapps (Google Apps, es decir, principalmente el Play Store para poder bajar nuevas aplicaciones cómodamente).

Tras probar de todo (limpiar el cache, reiniciar a fábrica el teléfono, reinstalar la misma ROM u otra diferente...) y comprobar que nada funcionaba, descubrí la solución de casualidad.

Pasos para solucionar el error:

  1. En Google Play, abrimos el menú y seleccionamos Cuentas.
  2. Damos a Añadir cuenta en la parte de abajo y creamos una nueva. Ponemos cualquier nombre de usuario de gmail que no esté ocupado y, si se quiere, nuestro email actual como dirección alternativa por si perdemos la contraseña.
  3. Una vez terminado, habremos accedido a Google Play con la nueva cuenta en vez de la antigua. Intentamos descargar algo y veremos que ahora ya nos deja perfectamente. 
  4. Una vez comprobado esto, volvemos a seleccionar nuestra cuenta antigua en Cuentas y comprobamos que ahora ya nos deja bajar todo.
  5. Finalmente, si no queremos nuestra nueva cuenta para nada, en Ajustes del sistema -> Cuentas y sincronización  podemos eliminarla.

Si no funciona, en los comentarios me ha señalado Roberto Aguilera que a él le han servido estos otros sencillos pasos:
  1. Buscamos Google Play Store en la lista de aplicaciones dentro de Ajustes y borramos el caché de la aplicación.
  2. Desconectamos el wi-fi e intentar descargar una aplicación de las que fallaban antes, pero mediante la conexión de datos móviles, y ya descargará.
Espero que una de las dos soluciones te sirva, un saludo.

sábado, 28 de abril de 2012

Agregar soporte para PAP en una red wi-fi 802.1x/EAP o WPA-Enterprise con wicd en Linux (Ej: red eduroam universitaria)

El tema de gestionar una red wi-fi en Linux siempre ha traído muchos quebraderos de cabeza, pero por suerte cada vez hay más utilidades y programas para hacerlo de forma gráfica.

wicd, programa para gestionar el wi-fi en Linux
Uno de los mejores, para mi gusto, es el programa wicd, fácil de instalar en cualquier distribución Linux buscando el paquete del mismo nombre.

Hace un tiempo publiqué una entrada en la que proporcionaba un script para conectarse a la red wi-fi eduroam para centros universitarios, que hace uso de un tipo de encriptación llamada usualmente WPA-Enterprise (o 802.1x/EAP), con el método TTLS con autenticación PAP.

De todas formas esa manera me he dado cuenta de que era poco útil, el script no funcionaba bien siempre y además obligaba a hacer todo por consola, lo cual echaba atrás a muchos usuarios poco experimentados, supongo. Por eso hoy voy a poner un método general para poder conectarse NO SÓLO A EDUROAM sino a cualquier red wi-fi que utilice este método de encriptación TTLS con PAP (y realmente cualquier otro método ya incluido en el programa wicd, simplemente este no se incluye por defecto).

Además este método vale para cualquier distribución Linux del universo conocido siempre que tengas interfaz gráfica y los drivers de la tarjeta wi-fi funcionando, lo cual no es parte de este tutorial.

El gestor de red de Gnome, el Network Manager, ya incluye soporte para este método, pero si no utilizas Gnome o bien quieres sustituirlo por este otro gestor (lo cual te recomiendo, para mí es bastante mejor) te será útil el tutorial.

  • Lo primero será, claramente, instalar el programa wicd de la forma usual en tu distribución (apt-get install wicd, emerge -av wicd, pacman -S wicd, etc). En principio al instalar el paquete se configura para iniciarse con el sistema (no el modo gráfico, pero sí el demonio para gestionar las conexiones).
  • Si lo abrís veréis que os gestiona tanto la conexión por cable como las conexiones wi-fi, prefiriendo por defecto la de cable si este está conectado (siempre es más fiable). Una vez que añadáis los datos para una red wi-fi en concreto recordará las opciones y se conectará automáticamente la siguiente vez que la detecte.

Para añadir el soporte para autenticación PAP a las opciones ya disponibles:
  • Necesitamos crear un archivo concreto y poner unos datos en él, para ello:
$ sudo nano /etc/wicd/encryption/templates/ttls-80211
  • En el archivo ponemos lo siguiente:
name = TTLS para WPA
author = Alexander Clouter
version = 1
require anon_identity *Identidad_anónima identity *Identidad password *Contraseña
optional ca_cert *Ruta_al_certificado_CA cert_subject *Sujeto_del_certificado
-----
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="$_ESSID"
scan_ssid=$_SCAN
key_mgmt=WPA-EAP
eap=TTLS
ca_cert="$_CA_CERT"
subject_match="$_CERT_SUBJECT"
phase2="auth=PAP"
anonymous_identity="$_ANON_IDENTITY"
identity="$_IDENTITY"
password="$_PASSWORD"
}
  • Guardamos el archivo y añadimos una pequeña línea a otro, así:
$ sudo echo ttls-80211 >> /etc/wicd/encryption/templates/active

Pues ya está. Ahora si abrimos la interfaz gráfica del programa wicd (el comando es wicd-client, o si no aparecerá en los menús de aplicaciones de tu entorno de escritorio) e intentamos conectarnos a una red con el tipo de encriptación TTLS no tenemos más que seleccionar "TTLS para WPA" y añadir los datos ( identidad anónima, identidad, contraseña y si es necesario un certificado CA) y ya debería funcionar sin mayor problema.

Recuerdo los datos para eduroam, aunque tu universidad te los debería dar. Cambia uva.es con el dominio de tu Uni:
  • Identidad anónima: anonymous@uva.es
  • Identidad: e11111111a@uva.es (aquí pon tu DNI con esa e delante)
  • Contraseña: La tuya.
  • Certificado CA: Sólo si es necesario. Por ejemplo, en la UVa (Universidad de Valladolid) no hace falta.
Bueno, espero como siempre que le sea útil a alguien, un saludo.

Si te da error o no te deja conectar de ninguna manera: 
Prueba a borrar la línea que dice subject_match="$_CERT_SUBJECT" en el archivo /etc/wicd/encryption/templates/ttls-80211 .

También puedes probar en las preferencias de wicd a cambiar el cliente DHCP entre los que tengas instalados (sección Programas Externos) y a cambiar las Opciones Avanzadas (controlador de WPA Supplicant e Infraestructura). Normalmente el controlador wext y la infraestructura ioctl van bien, pero puede que otra configuración te funcione mejor (o directamente te funcione).

viernes, 9 de marzo de 2012

wmii: Trucos avanzados (III)


Tutorial wmii:
  1. wmii: Introducción e instalación (I)
  2. wmii: Configuración y comandos de uso básico (II)
  3. wmii: Trucos avanzados (III)
Si habéis seguido el tutorial hasta aquí, tendréis un sistema con wmii funcionando perfectamente. Pero aún le podemos sacar muchísimo más partido, como veremos ahora. La mayor parte de estos trucos, si no todos, requerirán editar el archivo de configuración básico de wmii que ya usamos en las anteriores entradas, del que recomiendo que hagáis copia de seguridad de vez en cuando, por si acaso. Este archivo se encuentra en
/usr/local/etc/wmii-hg/wmiirc
si no cambiasteis el directorio por defecto al instalar wmii. Empecemos pues.

Cambiar colores

Es realmente simple. En el archivo de configuración, al principio veréis unas líneas como estas:
export WMII_NORMCOLORS='#000000 #c1c48b #81654f'
export WMII_FOCUSCOLORS='#000000 #81654f #000000'
export WMII_BACKGROUND='#333333'
 La variable WMII_NORMCOLORS se refiere a todas las barras excepto la de la ventana activa en este momento. Los 3 campos de colores, como #000000, son, respectivamente, los colores del texto, fondo y borde, en ese orden.

La variable WMII_FOCUSCOLORS se utiliza igual, pero se refiere a la barra de título de la ventana activa.

Por último, la variable WMII_BACKGROUND especifica el color de fondo del escritorio, que será un color sólido si en la entrada II del tutorial ignorasteis la sección "Añadir un fondo de pantalla".

Los códigos de colores son códigos hexadecimales (HEX). Maneras de conseguir el código hexadecimal de un color concreto hay muchas, en cualquier programa de dibujo lo podemos obtener, o si no os dejo aquí un pequeño selector parecido al del Photoshop en el que el código HEX sale abajo:


Recordad poner el # al poner el código en el archivo de configuración.

Escoger qué ventanas se abrirán automáticamente en la capa flotante

Hay ciertos programas que no están preparados para el sistema de ventanas de mosaico de wmii, y cada vez que se abren nos toca pasarlos a la capa flotante con la combinación Mod+shift+espacio para poder usarlos correctamente. Pero podemos crear filtros para que wmii lleve automáticamente a esta capa las ventanas que le digamos.

Para ello debemos buscar una sección (las secciones empiezan por un #) en nuestro archivo de configuración que se llama Tagging Rules (es la 4ª después de las variables del inicio)

Por defecto, en esa sección hay unas líneas que ponen:

# MPlayer and VLC don't float by default, but should.
/MPlayer|VLC/ floating=on
Las ventanas que contengan en su título algunas de las palabras que añadamos a esa lista, se irán por defecto a la capa flotante. Las palabras o frases deben ir separadas con un | y la lista debe tener un / a cada lado. Un ejemplo típico de esto es las ventanas de operaciones sobre archivos de muchos exploradores (las de "Copiando...", "Moviendo...", etc) ya que suelen ser ventanas pequeñas, y por defecto wmii nos las maximizaría a toda la columna. En este caso dejaríamos la lista así: 
/MPlayer|VLC|Copiando|Moviendo/ floating=on

Si os interesa la siguiente sección, combinaciones personalizadas de teclas, añadid a esa lista "Event Tester".

Combinaciones de teclas personalizadas

En el archivo de configuración se encuentran definidas todas las combinaciones de teclas que ya conocemos,  ya que las combinaciones que entiende wmii son las que aparecen en este archivo. ¿Por qué no añadir las nuestras propias? Por ejemplo: Usamos mucho el programa eclipse y queremos asignar su apertura a una combinación de teclas para abrirlo más rápido.

Pero el que podamos añadir nuestras propias combinaciones es casi necesario en wmii, porque por ejemplo ¿qué pasa con las teclas de subir y bajar el volumen que tan bien funcionan en Windows o en Ubuntu? Nuestro wmii no maneja nada de eso por defecto...

Lo primero de todo, debemos instalar un pequeño programa llamado xev, que simplemente nos permitirá saber el "nombre real" o ID de cada una de las teclas que pulsamos en el ordenador, de forma que luego al escribir nuestras combinaciones personalizadas el wmii sepa qué hemos pulsado exactamente y actúé en consecuencia. El programa xev está en los repositorios de cualquier distro, así que no habrá problema en encontrarlo e instalarlo.

Cuando lo tengamos, abrimos una terminal y escribimos: xev
Se abrirá una pequeña ventanita blanca en la capa flotante (mirar sección anterior, la última línea). En la terminal de detrás irá apareciendo cualquier acción (mover ratón, pulsar tecla, soltar tecla) que hagamos si tenemos el ratón en esa ventanita. Por ejemplo, al pulsar y soltar la tecla "k" obtendremos estos dos eventos:

KeyPress event, serial 31, synthetic NO, window 0x1a00001,
    root 0xba, subw 0x0, time 82478811, (163,178), root:(1532,195),
    state 0x10, keycode 45 (keysym 0x6b, k), same_screen YES,
    XLookupString gives 1 bytes: (6b) "k"
    XmbLookupString gives 1 bytes: (6b) "k"
    XFilterEvent returns: False
KeyRelease event, serial 31, synthetic NO, window 0x1a00001,
    root 0xba, subw 0x0, time 82478875, (163,178), root:(1532,195),
    state 0x10, keycode 45 (keysym 0x6b, k), same_screen YES,
    XLookupString gives 1 bytes: (6b) "k"
    XFilterEvent returns: False
Al pulsar otra tecla cualquiera, aunque no sea una letra, obtendremos su ID, que aparecerá en una línea de la forma: state ###, keycode ### (keysym ###, ID), same_screen YES,
(los ### variarán según la tecla pulsada).

No sólo las teclas "normales" generan eventos. Las teclas especiales de algunos teclados, el botón de encendido de los portátiles, las teclas de función Fn+Tecla (símbolos azules en teclas de algunos teclados de portátiles), etc también los generan, por tanto los podemos utilizar en una combinación exactamente igual que el Control o las letras. 

Esto nos valdrá, por ejemplo, para controlar el volumen del sonido con las teclas Fn azules que hay casi siempre en los teclados de los portátiles, o abrir un cuadro de diálogo de ¿Desea apagar el sistema? al apretar el botón de apagado.

¡Bien! Ya tenemos la ID de nuestras teclas a utilizar. Nos falta decir qué harán esas teclas. Podemos asociar las combinaciones a un comando concreto, cualquiera que funcione en nuestra terminal. Puede ser simplemente el nombre de un programa para iniciarlo o comandos más complejos, como los de subir y bajar el volumen.

Ojo: Algunas teclas no tienen exactamente la misma ID para wmii que la que aparece en el xev, pero sí el 99%, por eso os pongo este truco. Algunas teclas que NO funcionarán con su ID de xev y su ID real son:

  • La tecla Control Izquierdo probablemente salga con ID Control_L. Pues el nombre a poner es simplemente Control.
  • La tecla Alt se llama Mod1 (en mi teclado. Puede que se llame Mod[otronúmero]. Prueba)
  • La tecla Alt Gr se llama Mod5 (de nuevo, en mi teclado al menos).


Ahora para crear efectivamente la combinación nos vamos al final de nuestro fichero de configuración, justo encima de la tercera sección empezando por abajo, subimos hasta que veamos la línea KeyGroup Other y a partir de ahí vamos poniendo nuestras combinaciones (para ordenar un poco la lista, ya que ahí estarán todas las combinaciones predefinidas también).

¿Pero cómo se ponen las combinaciones? No hay más que usar esta sintaxis:
Key IDtecla1-IDtecla2-IDtecla3
(comandos a ejecutar)
Simplemente cambiando lo rojo por las IDs de las teclas que queremos que activen la combinación al pulsarlas a la vez. También se puede usar una sola tecla.

Ojo: Si en la combinación que vais a poner alguna de las teclas tiene una ID del tipo Mod[número], poned esa tecla la primera de la combinación o no funcionará, no sé bien por qué.

Os pongo algunos posibles comandos útiles para que los añadáis a las teclas que os apetezcan:

Subir volumen:
amixer -c 0 set Master -- 2%+


Bajar volumen:
amixer -c 0 set Master -- 2%-


Sonido on/off:
amixer -c 0 set Master toggle


(para estos dos siguientes hay que instalar el programa xbacklight)


Aumentar brillo pantalla portátil:
xbacklight + 10


Disminuir brillo pantalla portátil:
xbacklight - 10


Menú de apagado:


Este siguiente comando desplegará un menú con opciones de apagar, reiniciar, hibernar y suspender. Yo lo tengo añadido a la tecla de encendido del portátil, que en mi caso tenía ID "XF86PowerOff". Para que funcione hay que hacer un par de cosas.

Primero, instalar el paquete pm-utils que proporcionará los comandos de hibernación y suspensión.

Ahora debemos editar el fichero sudoers, que gestiona el comando sudo. No se puede (no se debe) editar directamente, tiene un comando propio. Ejecutamos:
$ sudo visudo
Se abrirá el nano y añadimos al final esta línea:
tunombredeusuario ALL=(ALL) NOPASSWD:/usr/sbin/pm-suspend, /usr/sbin/pm-hibernate, /sbin/poweroff, /sbin/reboot
En donde pongo "tunombredeusuario" cámbialo por el tuyo. Guardar y cerrar nano, y el fichero sudoers  se editará él solito, pero sólo si no habéis cometido errores de sintaxis que podrían hacer que sudo ya no funcionara... Por eso lo de usar el comando visudo, que comprueba que existan esos errores.

Bien, tras todo esto estamos en condiciones de añadir el comando a una combinación de teclas. El comando es:

msg="Opciones:$wi_newline"
                resp=$(wihack -type dialog xmessage -nearmouse -buttons Apagar,Reiniciar,Hibernar,Suspender,Cancelar -print \
                              -fn "${WMII_FONT%%,*}" "$msg")
                if [ "$resp" = "Apagar" ]; then
                        sudo poweroff
                elif [ "$resp" = "Reiniciar" ]; then
                        sudo reboot
                elif [ "$resp" = "Hibernar" ]; then
                        sudo pm-hibernate
                elif [ "$resp" = "Suspender" ]; then
                        sudo pm-suspend
                fi


Cambiar fuentes y activar anti-aliasing en ellas

En el archivo de configuración debemos buscar una línea que empieza por export WMII_FONT='... y cambiarla por:
export WMII_FONT='xft:nombrefuente-tamaño'
¿Qué ponemos en "nombrefuente"? El comando fc-list nos da una lista (probablemente larga) de todas las fuentes que tenemos instaladas, podemos elegir una de ahí. Yo lo tengo así:
export WMII_FONT='xft:Sans-9'
y se lee perfectamente y es mucho más agradable a la vista que la fuente que viene por defecto.

Modificar la información que sale en la barra inferior

El contenido de esa barra lo gestiona una función en el archivo de configuración. Buscadla, tendrá un aspecto así:
status() {
echo -n label blablabla...
}
 Lo que vaya después de label es un comando cuyo resultado debe ser una sola línea, podemos poner lo que queramos, se actualizará cada segundo. Lo normal es poner, al menos, un reloj y la fecha, como ya viene por defecto. Pero ¿qué son esos 3 números con 2 decimales cada uno? Son proporcionados por el comando uptime y simbolizan la carga de trabajo que tiene(n) la(s) CPU(s) en este momento con respecto a un momento anterior(1, 5 y 15 minutos en este caso).

Me explico. El primer número indica cuántas CPUs necesitaría ahora mismo para poder atender completamente los procesos que tenía hace un minuto. El segundo número, hace 5 minutos, y el tercer número, hace 15 minutos. El valor más cercano a la carga actual es claramente el primero, entonces. Por tanto, un número menor que 1 significa que no hay exceso de carga, la CPU está bastante liberada y le da tiempo a atender a todos los procesos corriendo actualmente sin hacer esperar a ninguno. Si tenemos más de un CPU o núcleo, este número hay que dividirlo entre el nº de CPUs/Núcleos que tengamos.

¿Que por qué se usa este sistema de carga de CPU en lugar del típico porcentaje del Administrador de Tareas de Windows? Porque representa de forma más realista el trabajo que está realizando nuestra CPU, ya que en porcentaje no habría diferencia en usar el 100% sin mucha carga de trabajo (no deja "nada pendiente" aunque lo hará en cuanto se le mande algo más) y usar el 100% con mucho trabajo pendiente (demasiados procesos a la vez, tienen que esperar su turno de CPU, lo que deriva en un funcionamiento más lento del sistema).

Bueno, estábamos con la modificación de la información de la barrita inferior para poner lo que queramos. Para que aparezca, debemos poner el comando cuyo resultado queremos de esta manera:
echo -n label $(comando)
Como ejemplo, os dejo el comando que tengo yo:
echo -n label $(echo Carga CPU: $(uptime | sed 's/.*://; s/, / /g' | cut -c 2-5)) '|' RAM usada: $(free -m -o | sed -n 2p | cut -c 26-29)/$(free -m -o | sed -n 2p | cut -c 15-18) MB '|' $(date +"%a %e %b %Y | %T") '|' Volumen: $(if [ -z $(amixer get Master | sed 1,6d | grep -o off) ]; then echo $(amixer get Master | sed 1,6d
 | cut -d '[' -f2 | cut -d ']' -f1); else echo 'Off'; fi) $(if [ "$(acpi -a)" = "Adapter 0: off-line" ]; then echo "| Batería: $(acpi | cut -d' ' -f4,5 | sed -e 's/,//' -e 's/:..$//') horas"; fi
)
Sí, es un poco largo, pero consigo que me salga esta información:
  • Carga CPU: El primer número de los 3 que he comentado antes
  • RAM usada/disponible, en MB
  • Fecha y hora
  • Volumen de audio en porcentaje (o Off si lo tengo silenciado)
  • Batería restante del portátil en porcentaje y tiempo en horas, sólo cuando tengo desconectado el adaptador de corriente.

jueves, 8 de marzo de 2012

wmii: Configuración y comandos de uso básico (II)

Tutorial wmii:
  1. wmii: Introducción e instalación (I)
  2. wmii: Configuración y comandos de uso básico (II)
  3. wmii: Trucos avanzados (III)
En la primera entrega del tutorial sobre wmii he mostrado un poco por encima cómo es el gestor de ventanas de mosaico wmii, su funcionamiento y apariencia, e instrucciones para instalarlo.
En esta segunda parte del tutorial vamos a aprender su uso básico con las combinaciones de teclas (es fácil) y a configurar cosas sencillas.

Si habéis seguido las instrucciones, al encender el sistema wmii se abrirá y os aparecerá en pantalla un mensaje tal que este:
Welcome to wmii
Most of wmii's default key bindings make use of the
Windows key, or equivalent. For keyboards lacking such
a key, many users change this to the Alt key.
Which would you prefer?
Que traducido significa que la mayoría de las combinaciones de teclas de wmii se hacen pulsando una "tecla básica" (a partir de ahora la llamaremos Mod) junto con otras, según el comando.
Esta tecla básica, nos dan a elegir entre la tecla Alt y la tecla Windows (también conocida como Super). Yo os recomiendo la tecla de Windows, porque la tecla Alt ya se utiliza en las combinaciones de teclas de muchos programas, para evitar conflictos.

Ahora os aparecerá otro mensaje de bienvenida con un pequeño tutorial en inglés de cómo dar los primeros pasos en wmii. Recomiendo que lo sigáis para familiarizaros, de todas formas en esta entrada voy a explicar todo lo necesario para utilizar el gestor en todas sus facetas.

Aviso: Si la tecla Mod no os funciona después de haber escogido la tecla de Windows y no os deja hacer nada, tenéis que editar el fichero
/usr/local/etc/wmii-hg/wmiirc
Y en una de las primeras líneas, que pone "MODKEY=Mod2" o similar, cambiad el 2 por un 4, o por un 3... depende del teclado. A mi me funcionó el 4. Es decir: "MODKEY=Mod4". Esto quiere decir que nuestra tecla Windows se llama internamente Mod4 para el wmii. Guardáis y volvéis a iniciar wmii y ya debería funcionar.

Todas las combinaciones de teclas que voy a poner aquí las pongo suponiendo que habéis dejado la configuración por defecto, ya que cualquier combinación de teclas se puede configurar al gusto. Luego pasaré a eso. Recordar que Mod es la tecla de Windows o Alt, según hayáis puesto antes. Una combinación a+b significa pulsar a la vez las teclas a y b.

Abrir una terminal: Mod+Intro
Es la combinación más básica, ya que lo más probable es que tengáis que estar abriendo terminales constantemente, ya que es la herramienta básica de un sistema Linux. Se abrirá en la misma columna que la ventana activa actual. Si al iniciar wmii esta combinación parece no hacer nada, mirad al final de la entrada.

Gestión de las ventanas

Escoger ventana activa: Todo esto se puede hacer con el ratón también:
  • Activar ventana encima de la actual, en la misma columna: Mod+k
  • Activar ventana debajo de la actual, en la misma columna: Mod+j
  • Activar ventana en la columna de la derecha: Mod+l (ele)
  • Activar ventana en la columna de la izquierda: Mod+h
  • Activar ventana en capa flotante/normal: Mod+Espacio
Mover ventana activa:
  • Mover ventana un puesto hacia arriba en su columna: Mod+Shift+k
  • Mover ventana un puesto hacia abajo en su columna: Mod+Shift+j
  • Mover ventana a la columna de la derecha: Mod+Shift+l (ele)
  • Mover ventana a la columna de la izquierda: Mod+Shift+h
  • Mover ventana a la capa flotante/volver a la capa normal: Mod+Shift+Espacio
  • Modo pantalla completa con esta ventana on/off: Mod+f

Como veis, hay unas pautas comunes: 
h = izquierda, j = abajo, k = arriba, l = derecha, Espacio = flotante
Mod+dirección = Elegir ventana activa en esa dirección
Mod+Shift+dirección = Mover ventana activa a esa dirección

También podemos mover una ventana entre columnas pulsando Mod y clicando en su barra de título, y arrastrándola a donde queramos.

Disposición de las columnas

En la entrada anterior hablé de las 3 posibles disposiciones de las ventanas dentro de una columna: default, maximum y stacking. Para cambiar la disposición de la columna donde tenemos activa la ventana:
  • Stacking: Mod+s
  • Default: Mod+d
  • Maximum: Mod+m
Etiquetas

En la entrada anterior describí qué eran las etiquetas y dije que las más cómodas son los números. Estas son las combinaciones de teclas para gestionar etiquetas o tags. Se ve claramente lo que decía de los números:
  • Ir a etiqueta numérica: Mod+número (0-9)
  • Ir a etiqueta cualquiera (el texto que pongamos): Mod+t, se activa la escritura, escribimos el nombre de la etiqueta y damos a Intro. Se puede usar el botón Tab para autocompletar y no tener que escribir la etiqueta completa.
  • Ir a etiqueta siguiente: Mod+n
  • Ir a etiqueta anterior: Mod+b
  • Etiquetar ventana con un nº (sustituye tags anteriores de la ventana): Mod+Shift+número (0-9)
  • Etiquetar ventana con las etiquetas que queramos: Mod+Shit+t, se activa la escritura, escribimos los nombres de las etiquetas separados con un + y damos a Intro. Efectivamente, podemos asignar más de una etiqueta a la misma ventana, y así que aparezca en todas ellas. Para asignar, por ejemplo, las etiquetas 2 y navegadores a nuestra ventana, escribiríamos: 2+navegadores. Si sólo queremos asignar una etiqueta se puede usar el botón Tab para autocompletar, pero solamente si la etiqueta ya existe.
De nuevo hay unas pautas comunes:
Mod+comando: Ir a etiqueta.
Mod+Shift+comando: Etiquetar ventana.

¿Vais viendo como va la lógica de los comandos de wmii? Es fácil de aprender. Además, podemos añadir nuestros propios comandos, explicaré cómo en la tercera parte del tutorial.

Añadir un fondo de pantalla

En wmii no hay un menú en el que das al botón derecho y eliges un wallpaper, sino que tienes que hacer todo a mano editando ficheros de texto, pero no os preocupéis que es fácil.

Primero tenemos que instalar un pequeño programa de manejo de imágenes, muy simple y ligero, que será el encargado de poner el fondo en nuestro escritorio wmii. El programa se llama feh y lo podemos instalar igual que cualquier otro paquete de nuestra distro, es decir:
# apt-get install feh
# pacman -S feh
# emerge feh
Etcétera. Ahora editamos el fichero de configuración principal de wmii:
# nano /usr/local/etc/wmii-hg/wmiirc
Buscamos la línea en la que pone:
 xsetroot -solid "$WMII_BACKGROUND" &
 (está al final, justo antes de la sección "# Misc") y la sustituimos por esta:
feh --bg-scale /ruta/a/vuestra/imagen/de/fondo/jpg/png/etc &
Cuidado con el & al final. Guardamos el archivo. Ya está, en cuanto reiniciemos wmii veremos nuestro fondo. Para otras opciones de colocado, podemos cambiar el --bg-scale (escalado) por --bg-tile (mosaico), --bg-center (centrado), --bg-max (escalado proporcional con razón de aspecto) o --bg-fill (escalado proporcional).

Arrancar un programa

Si en wmii no hay iconos ni menús... ¿Cómo arranco un programa?

Lo primero de todo: Para arrancar una terminal la combinación es  Mod+Intro, como ya dije al inicio de la entrada. Con este comando no necesitáis nada más, podéis abrir una terminal y desde ahí ejecutar el comando del programa que queráis, que suele coincidir con su nombre. Pero si no queréis estar abriendo terminales para cada programa existe una manera más rápida de abrir programas que tengáis instalados.

Con la combinación Mod+p la barra de la parte inferior de la pantalla cambia, aparece una larga lista de comandos y nos permite escribir. Para ejecutar un programa, simplemente empezamos a escribir su nombre, lo que va filtrando los comandos que aparecen a la derecha. Al dar a Intro se ejecutará el primer comando que quede en la lista, por tanto al escribir "fire" y dar a Intro seguro que se nos abre el Firefox si lo tenemos instalado. Es una manera muy rápida y cómoda de abrir programas, y no nos hacen falta iconos ni accesos directos de ningún tipo.

Explorador de archivos

La terminal, si la sabéis usar, puede ser un genial sustituto del típico explorador de archivos, ya que en wmii ahora no tenemos uno propio. Gnome traía el Nautilus, KDE el Dolphin...

Pero claro, gráficamente todo es más bonito, ¿verdad? Pues tenemos varias opciones. Si teníamos instalados Gnome o KDE de antes, los exploradores "nautilus" o "dolphin" los seguiremos teniendo, podemos utilizarlos, pero tardarán en arrancar (librerías exclusivas de Gnome, KDE, etc. que al no estar usándolos no tendremos precargadas y las tendrán que cargar para abrirlos...) así que podemos utilizar algún otro. Como siempre en el mundo de Linux, tenemos dónde elegir.

A mi me gusta el Thunar, que es el explorador por defecto en el entorno Xfce, ya que es ligero y funciona perfectamente, y visualmente es muy parecido a los dos grandes. Para instalarlo, lo de siempre:
# apt-get install thunar
# pacman -S thunar
# emerge thunar
Etcétera. Luego, para abrirlo, recordad: Mod+p y escribir "thun" y luego Intro.

Por Internet podéis encontrar fácilmente más alternativas, como en este post de Taringa.


¿Qué hacer si al dar a Mod+Intro no se abre ninguna terminal?


Eso es porque wmii escoge como terminal por defecto un programa de terminal llamado "xterm". En muchos sistemas Linux este programa se encuentra presente, de todas formas si no es vuestro caso no tenéis más que instalarlo:
# apt-get install xterm
# pacman -S xterm
# emerge xterm
Etcétera. Por otro lado, si no os gusta ese programa de terminal (yo, personalmente, lo odio) y preferís utilizar otro como gnome-terminal/konsole o cualquiera de los que vienen en este enlace, lo podéis hacer de esta manera:

Editamos el fichero de configuración de wmii como antes:
# nano /usr/local/etc/wmii-hg/wmiirc
Buscamos la línea export WMII_TERM="xterm" que se encuentra bastante al principio del archivo y cambiamos xterm por el comando del programa emulador de terminal de nuestra elección. Si antes usabais Gnome, tendréis instalado gnome-terminal y si usabais KDE tendréis el konsole, pero también tenéis otras opciones como los que vienen en el enlace que he puesto. Guardamos el archivo y la próxima vez que se inicie wmii al pulsar Mod+Intro se abrirá el programa que hayamos escogido.

Bueno, espero que con esto tengáis todo lo necesario para utilizar de forma habitual este genial gestor de ventanas, diferente y muy cómodo. En la 3ª entrega del tutorial enseñaré trucos más avanzados para sacarle aún más partido y hacer alguna virguería tonta. ¡Un saludo!

miércoles, 7 de marzo de 2012

Qué hacer si no se abre el Catalyst Control Center de AMD en Windows 7

Al actualizar los drivers de la tarjeta gráfica ATI en Windows 7 al reiniciar el PC, en ocasiones ni se abre el Catalyst Control Center al seleccionarlo en el menu contextual del escritorio (ni desde el Panel de Control) ni aparece su icono en la bandeja de notificaciones de la barra de tareas.

En principio puede ocurrir porque quedan restos de la instalación anterior que entran en conflicto con el nuevo driver. Si hemos desinstalado correctamente el anterior, no debería pasar nada, pero no siempre el programa de instalación actúa como debe, o puede que haya tenido un error, etc. Hay un programa, Driver Sweeper, que dice borrar hasta el último reducto de los drivers instalados y evitar problemas como este, pero ni a mi ni a mucha gente nos ha funcionado, y por eso esta entrada.

Otra solución más manual es la siguiente:

  1. Desinstalar todo lo relacionado con ATI/AMD que tengamos instalado (por si acaso). Reiniciar.
  2. Abre un explorador de archivos y vete a la carpeta C:/Windows/assembly , clica en "Símbolo de clave pública" para ordenar los archivos según esa cadena alfanumérica y localiza los archivos con la clave  90ba9c70f846762e.
  3. Mantén abierta esa ventana y vete al Menú Inicio. Escribe en el cuadro de búsqueda: cmd.exe y aparecerá arriba. No des a Intro, dale botón derecho --> Ejecutar como administrador. (Para los linuxeros: acabamos de abrir una consola de root en Windows, que es así de fácil. Cuidado con lo que hacemos con ella).
  4. En la consola, apareceremos por defecto en la carpeta C:/Windows/system32. Si escribimos cd ../assembly apareceremos directamente en nuestra carpeta.
  5. Ahora debemos borrar todos los archivos que vimos antes con esa clave que he puesto, debemos hacerlo desde la consola porque desde el explorador no se puede directamente. Para ello vamos escribiendo: del /S [nombrearchivo]
  6. Como son muchos, podemos acortar el proceso. Muchos de ellos empiezan por CLI, por ejemplo, pues para eliminarlos a la vez podemos usar el comando del /S CLI* utilizando el asterisco como comodín. Cuidado de no borrar ningún archivo que no tenga la clave 90ba9c70f846762e.
  7. Podemos reiniciar para asegurarnos, pero no es necesario. Ahora instalamos la última versión del driver de AMD/ATI bajado de su web (ahora sí pedirá reiniciar) y ya nos funcionará sin problemas.

Explicación un poco más detallada de qué estamos haciendo:


La carpeta C:/Windows/assembly se utiliza para almacenar el Global Assembly Cache que básicamente es una base de datos de pequeñas librerías que utilizan muchos programas, en las cuales se almacena información sobre las versiones del programa instalado, cuestiones de seguridad, firma digital del fabricante... Es precisamente esto último lo que en nuestro caso significa el código este de 90ba9c70f846762e, ya que identifica a la empresa AMD. Por tanto, cualquier archivo de la carpeta con ese código será parte de un programa de la empresa, típicamente los drivers de la tarjeta gráfica.

Es relativamente común que un programa no funcione correctamente si no tiene bien los datos en sus archivos assembly, y so puede ocasionar errores como este que nos ocupa, que no se inicie el programa. Puede haber ocurrido por actualizar los drivers y que, por alguna razón, se hayan conservado los assemblies de la versión anterior, lo que probablemente sea la causa de todo el follón.



IMPORTANTE: Si tienes alguna duda, mira primero aquí abajo en los comentarios respondidos antes de escribir el tuyo. Muchas dudas ya están resueltas. Gracias.

jueves, 16 de febrero de 2012

wmii: Introducción e instalación (I)

Tutorial wmii:
  1. wmii: Introducción e instalación (I)
  2. wmii: Configuración y comandos de uso básico (II)
  3. wmii: Trucos avanzados (III)
En la entrada anterior he hablado de los distintos tipos de gestores de ventanas, de la no obligatoriedad de instalar un entorno de escritorio completo y de las posibles ventajas que puede tener el optar por instalar un gestor de ventanas ligero por sí sólo en sistemas Linux.

En esta entrada comienzo un pequeño tutorial sobre un gestor de ventanas concreto del tipo mosaico (las ventanas no se superponen; ocupan, cada una, una división de la pantalla, como un mosaico): wmii.

En esta primera parte del tuto nombraré sus características y la forma de instalarlo. Se trata del gestor que utilizo en mi portátil, y me gustaría darlo a conocer, ya que incorpora una manera de trabajar con el ordenador bastante diferente al paradigma de escritorio con ventanas rollo Windows/Mac/Ubuntu (es decir, gestores de ventanas de pila). A mi parecer se trabaja mucho más cómoda y rápidamente que con dicho paradigma, una vez te habitúas a la forma de utilizarlo, cosa que tampoco requiere ni mucho esfuerzo ni mucho tiempo. Pero eso ya son gustos y preferencias de cada uno, por lo menos es bueno saber que existen estas opciones.

Lo primero: ¿En qué se diferencian los gestores de ventanas tipo mosaico de los de tipo pila (Windows/Mac/Ubuntu)? 

Básicamente en los de tipo pila tenemos una serie de ventanas en el escritorio las cuales pueden perfectamente superponerse y taparse las unas a las otras, en cuyo caso sólo se muestra completamente en la pantalla la ventana que tengamos activa en este momento. Las ventanas se pueden redimensionar cada una por separado, maximizar, minimizar...

En los de tipo mosaico, por el contrario, las ventanas no se tapan unas a otras, sino que cada una tiene su espacio rectangular en la pantalla, que ocupa completamente. Se pueden redimensionar, lo que hará que al disminuir el espacio dedicado para una ventana, aumente el de la ventana de al lado y viceversa, ya que no quedan huecos en la pantalla. Según el gestor de ventanas que utilicemos, existirán también opciones de maximizar para que una ventana ocupe la pantalla completa temporalmente, y opciones similares.

Tipo pila
Tipo mosaico
Pequeña introducción a wmii

Las columnas

Dos columnas en wmii
(Pinchar para aumentar)
En el caso particular de wmii, las ventanas se organizan en columnas. Si sólo tenemos una ventana abierta, tendremos una sola columna cuyo ancho será el de toda la pantalla. A partir de tener dos ventanas abiertas, podemos (si lo deseamos) mover cualquiera de ellas hacia un lado y formar con ello una nueva columna. De esa manera el ancho de la pantalla ahora quedará dividido entre las dos columnas que tengamos, como se puede ver en la imagen de la izquierda.



El ancho dedicado a cada una de estas nuevas columnas podemos variarlo fácilmente pinchando y moviendo hacia los lados la línea que las separa. Si tenemos más ventanas y queremos más columnas, el proceso es el mismo, podemos tener el número de columnas que queramos, y en cada columna las ventanas que queramos. Si movemos la última ventana de una columna a otra, la columna que queda vacía se elimina al instante.

Una vez estamos en una misma columna con varias ventanas, tenemos 3 modos diferentes o disposiciones de gestionar cómo aparecen en ella, entre los cuales podemos cambiar fácilmente según nuestras necesidades de cada momento:

Disposición default con una sola
columna
  • Disposición default: Esta disposición organiza todas las ventanas de la columna en una fila cada una, de la misma altura inicialmente pero pudiendo cambiar los tamaños simplemente arrastrando la línea que las separa (como hacíamos con las columnas).





    Disposición maximum
  • Disposición maximumEsta disposición maximiza la ventana activa para que ocupe completamente el espacio asignado a la columna. En la barra de título de la ventana, en la parte derecha, aparecerá una fracción, por ejemplo 2/3, designando que en esa columna hay 3 ventanas y que la que se encuentra activa es la número 2. Pinchar en la imagen de la derecha para verlo mejor.



Disposición stacking
  • Disposición stacking: Esta disposición es idéntica a la maximum excepto en que en vez de aparecer una sola barra, la de la ventana activa, aparecen en orden todas las barras de las ventanas de la columna, aunque sólo se visualiza la ventana activa. Para haceros una idea, de nuevo, clicad en la imagen.



Por último: se puede elegir una disposición diferente para cada columna, no es una opción global.

Las etiquetas

En otros escritorios como por ejemplo Gnome se utiliza la idea de "multiples escritorios" o "espacios de trabajo" para organizar las ventanas que utilizamos. En wmii existe un sistema similar, pero mucho más potente: Las etiquetas.

Las etiquetas son "palabras clave" o números que se asignan a cada ventana. A cada ventana se le puede asignar más de una etiqueta, las que queramos, a diferencia de Gnome, KDE, etc. que sólo permiten elegir si una ventana se ve únicamente en el espacio de trabajo en el que se encuentre o bien que se vea en todos los espacios de trabajo.

Las etiquetas actuales aparecen en la barra inferior de wmii y con un simple clic o una combinación de teclas seleccionamos la que queramos, por lo cual aparecerán en pantalla únicamente las ventanas con esa etiqueta (equivalente a los espacios de trabajo).

Etiquetas variadas

Las etiquetas más rápidas y cómodas de utilizar son los simples números (luego explico por qué) pero se puede utilizar cualquier palabra, e incluso configurar wmii de forma que cierto programa se autoinicie siempre con determinadas etiquetas, por ejemplo.



Una última cosa sobre esto: Cuando se cierre la última ventana con una determinada etiqueta y se seleccione otra etiqueta diferente, la etiqueta "vacía" se eliminará.

La capa flotante
Ventana en la capa flotante sobre
otras en mosaico

A pesar de que wmii es un gestor de ventanas de mosaico, tiene la opción de poner ventanas concretas en la llamada "capa flotante", que es un modo especial en el que una ventana se pone por encima del mosaico usual que tendremos ya creado y la podemos mover y redimensionar a voluntad. Esto está pensado porque hay bastantes programas que no encajan bien con las disposiciones en mosaico, o tal vez simplemente nos sea más cómodo en determinada situación. Para activar o desactivar el modo "capa flotante" en una ventana basta una sencilla combinación de teclas.


Instalación de wmii

Si a alguien le ha convencido y desea probar, aquí dejo unas pequeñas instrucciones. Esto no desconfigurará nada en caso de que alguien ame demasiado a su querido Gnome/KDE/Xfce y tenga miedo de perderlo, llegado un momento podéis elegir qué gestor de los instalados utilizar.

Descarga e instalación

Lo mejor es que busquéis el paquete wmii de vuestra distribución y lo instaléis normalmente. NO, no os lo bajéis del paquete de vuestra distribución. Los binarios compilados son MUY antiguos y funcionan MAL y con errores. Bajároslo así:
  • Instalar el paquete mercurial de vuestra distribución. 
  • Abrid una consola y escribir sencillamente esto, en orden:
$ hg clone https://code.google.com/p/wmii/
$ cd wmii
Lo habremos bajado a una carpeta de nombre wmii en nuestro home, y estaremos dentro de ella.

Ahora toca compilar e instalar. En el fichero config.mk se pueden editar ciertas opciones para esto, pero si no lo tocáis los valores que vienen por defecto no dan ningún problema. Para compilar e instalar:
$ make && sudo make install

 Bien, ahora tenemos dos opciones para ejecutar wmii:

Añadir wmii al login gráfico ya instalado

(En caso de haber instalado wmii mediante el paquete de vuestra distribución, este paso no es necesario y ya aparecerá en la pantalla de login, junto a las otras opciones)

Si antes utilizábamos una pantalla gráfica de login como las de KDE o Gnome (con dos cuadros en medio que ponen: usuario y password) y queremos seguir usándola hacemos esto:
    • En una terminal ejecutamos:
$ sudo nano /usr/share/xsessions/wmii.desktop
    • Ahora copiamos y pegamos esto en el editor de texto que nos sale:
[Desktop Entry]
Encoding=UTF-8
Type=XSession
Exec=wmii
TryExec=wmii
Name=wmii
Comment=Ejecutar wmii
    •  Ejecutamos CTRL+o, Intro y CTRL+x para guardar el archivo y cerrar el editor.
    • Ahora, al iniciar el PC; en la pantalla gráfica de login debe haber una opción para elegir qué sesión queremos iniciar. Basta con elegir la de wmii y se iniciará.

Configurar el login basado en texto (más rápido) y ejecutar posteriormente wmii

Tal vez alguien prefiere prescindir de las pesadas pantallas gráficas de login para acelerar aún más su sistema. Esto hará que el nombre de usuario y el password nos lo pida desde consola al iniciar el PC. Para conseguir esto y ejecutar wmii a continuación:
    • Debemos editar un fichero como root:
$ sudo nano /etc/inittab
    • En ese fichero debemos buscar una línea que diga algo similar a  id:5:initdefault: y lo único que debemos de hacer es cambiar ese 5 por un 3 para que quede id:3:initdefault:
    • Pulsamos CTRL+o, Intro y CTRL+x para guardar y salir del editor.
    • Ahora debemos editar este otro fichero de nuestro home:
$ nano .xinitrc
    • Debemos borrar cualquier cosa que tenga y dejarlo así:
#!/bin/sh
# ~/.xinitrc
setxkbmap es
exec ck-launch-session dbus-launch wmii
    • El setxkbmap le dice que nuestra disposición de teclado es la española (si tenéis otro tipo de teclado buscad en Google qué poner aquí). El dbus-launch se encarga, entre otras cosas, de montar automáticamente dispositivos extraíbles como pendrives. Aseguraos de que tenéis  dbus instalado para esto.
    • De nuevo para guardar: CTRL+o, Intro, CTRL+x
    • Con los pasos que hemos dado hasta ahora, al iniciar el PC os loguearíais con vuestro usuario en una consola, y si ejecutáis el comando startx ya se iniciaría el wmii. Sin embargo, para ahorraros el escribir startx cada vez que iniciáis el sistema, podemos editar este fichero:
$ nano .bash_profile
    • Lo tenéis que dejar así (lo más probable es que lo tengáis casi igual, pero añadid startx en la última línea):
# /etc/skel/.bash_profile
# This file is sourced by bash for login shells. The following line
# runs your .bashrc and is recommended by the bash info pages.
[[ -f ~/.bashrc ]] && . ~/.bashrc
startx

    • De nuevo, para guardar y salir: CTRL+o, Intro, CTRL+x

Finalizado, con cualquiera de estos dos métodos tenéis instalado el gestor de ventanas wmii. En la siguiente entrada enseñaré cómo configurarlo, dar los primeros pasos, aprender las combinaciones de teclas que se utilizan (que es fácil), "tunearlo" un poquillo...

¡Espero que le sea útil a alguien!