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.