Antes que nada, a instalar Wine y algunos paquetes opcionales:
$ sudo apt-get install wine wine-mono0.0.8 gecko-mediaplayer
Al intentar instalar Office 2010 usando el comando wine directamente no tuve suerte: casi al terminar la instalación me dio un error. Es posible que hubiera podido resolverlo con lo que sé ahora, pero en ese momento decidí que Office 2007 también me era suficiente, por lo cual me puse a instalarlo.
La instalación transcurrió perfectamente, pero al ejecutar el Word instalado descubrí para mi sorpresa que no tenía ningún soporte a XML, lo que le impedía cargar archivos .docx (lo cual era prioritario para mí) y además fallaba al cerrarse. Investigando descubrí que no se trataba de algún problema con libxml2, sino que simplemente se debía a que lo había instalado en modo 64 bits, y por algún motivo, aunque luego se lance en 32 bits, las aplicaciones no lograban encontrar la librería adecuadamente.
La solución consistió en preparar un nuevo directorio de Wine, como si fuera un nuevo ordenador, en modo 32 bits (si el directorio, aquí /home/fer/prefix32, no existe, winecfg lo creará):
$ WINEARCH=win32 WINEPREFIX=/home/fer/prefix32 winecfg
Y luego ejecutar de nuevo el setup.exe con estos parámetros:
$ WINEARCH=win32 WINEPREFIX=/home/fer/prefix32 wine setup.exe
Entonces, ya podía ejecutar el Word con:
$ WINEARCH=win32 WINEPREFIX=/home/fer/prefix32 wine /home/fer/prefix32/.../winword.exe
Ahora bien, si al final agregaba como parámetro un nombre de archivo con ruta relativa, lo abría correctamente. Si, en cambio, usaba una ruta absoluta, no lo encontraba. La solución, agregar z: al principio, por ejemplo: 'z:/home/fer/archivo.docx'.
Pero esto no resultó suficiente para archivos con espacios. Wine convierte los espacios automáticamente en %20, el código de escape estándar, y entonces Word se queja de que le han pedido abrir un archivo inexistente. La solución consiste en nuevamente modificar la ruta, indicando que se la trate como una URL, mediante el prefijo 'file:///'. Así que, si queremos abrir '/home/fer/archivo con espacio.docx', debemos suministrar el argumento 'file:///z:/home/fer/archivo con espacio.docx'.
El siguiente paso fue crear un ejecutable para no tener que recordar todo esto. Debido a que voy mejor con PHP que con Bash, creé un archivo 'winword', con permisos de ejecución, y el siguiente contenido:
#!/usr/bin/php5
<?php
$app = '/home/fer/prefix32/drive_c/Program Files/Microsoft Office/Office12/WINWORD.EXE';
$wineroot = '/home/fer/prefix32';
$args = array_slice($argv,2);
$file = @$argv[1];
if( $file ) {
$file = '\'file:///Z:'.$file.'\'';
}
$cmd = ("WINEARCH=win32 WINEPREFIX=$wineroot wine '$app' $file ".join(" ",$args));
passthru($cmd);
Luego, sólo quedaba hacer que Chrome abriera los docx con mi ejecutable. Lamentablemente, ya tenía asociada la extensión .docx con LibreOffice, y el navegador no ofrece ningún mecanismo para cambiar esto. La respuesta es abrir un explorador de carpetas, como Nautilus o Dolphin, buscar un archivo .docx, y con el menú contextual cambiar la asociación.
Espero que esto le haya servido de ayuda a alguien. Como mínimo me servirá a mí mismo para no tener que recordar todos estos pasos cuando cambie mi ordenador!