No suelo usar Microsoft Office, en casa Linux está presente por todas partes y siempre me las he apañado con Libre Office; sin embargo, la escuela virtual de Derek en la materia de informática este año se dedicarán a usar la suite ofimática de Microsoft.
Considerando el hecho que recientemente Derek migró su X230 a Pop OS! me puse manos a la acción para buscar alguna aplicación que parezca nativa ya que aún no existe una app nativa para Linux y no tengo muchas ganas de usar wine
que digamos.
Después de algunas horas de búsqueda con San Google, la mejor opción que hallé fue usar un wrapper que empaquetara la versión web de Office y que se viera como la aplicación nativa. La desventaja principal de este método es que al ser una aplicación web, depende de internet y no puede ser usado offline. Siendo así, no queda más remedio que hacerlo de este modo.
Lo que haré será empaquetar las aplicaciones que necesito de la versión online de Office en un contenedor electron
por medio de nativefier
. Cómo estos archivos se guardan en la nube de One Drive, usaré un cliente que actualice una carpeta con este contenido, de manera tal que siempre haya un acceso a ellos dentro del /home
.
Lo primero que necesitaremos es npm
.
1 2 | $ sudo apt update $ sudo apt install npm |
Ahora podemos instalar nativefier
1 | $ sudo npm -g install nativefier |
Necesitamos un ícono para cada aplicación, así que empaquete un zip con los íconos. Solo lo extraemos en el directorio donde estamos trabajando.
1 | $ nativefier -p linux -a x64 -i word.png --disable-context-menu --disable-dev-tools --single-instance --internal-urls ".*" https://www.office.com/launch/word |
Esto nos creara un directorio nuevo, con un binario de la nueva aplicación. En mi caso, el directorio generado se llama Signintoyouraccount-linux-x64
. Lo renombramos y también el binario a algo un poco más tradicional.
1 2 | $ mv Signintoyouraccount-linux-x64/ microsoft-word/ $ mv microsoft-word/Signintoyouraccount microsoft-word/word |
Ahora movemos nuestra recién generada aplicación al directorio /opt
y le damos permisos 775.
1 2 | $ sudo mv microsoft-word/ /opt/ sudo chmod 775 -R /opt/microsoft-word/ |
Por último, movemos el ícono que estaba fuera del directorio que se creó.
1 | $ cp word.png /opt/microsoft-word/ |
El lanzador de aplicación es un simple archivo .desktop
. Creamos el archivo microsoft-word.desktop
y le ponemos este contenido:
1 2 3 4 5 6 7 8 | [Desktop Entry] Comment[en_US]=Access Microsoft Word on Linux. Exec=/opt/microsoft-word/word GenericName=Microsoft Word Name=Microsoft Word Icon=/opt/microsoft-word/word.png Categories=Office Type=Application |
Ahora damos permiso de ejecución al lanzador de aplicación.
1 | $ sudo chmod +x microsoft-word.desktop |
Y lo movemos a su destino final.
1 | $ sudo mv microsoft-word.desktop /usr/share/applications/ |
Una vez hecho esto, nos aparecerá en nuestro cajón de aplicaciones.
Ahora, solo es cuestión de hacer click en nuestro lanzador reción agregado.
Podemos replicar cada aplicación de Office 365, en los pasos anteriores cambiando la palabra word
por excel
para Microsoft Excel, y por powerpoint
para Microsoft Powerpoint.
Los documentos que sean creados con las aplicaciones en línea de Microsoft Office se guardan en One Drive, lo que dificulta tenerlos físicamente en nuestro dispositivo a menos que usemos un cliente que sincronice los archivos hacia nuestro PC. En Pop OS!, tenemos una aplicación en el repositorio llamado onedrive
, el proyecto lo encontramos en github, instalarla solo es cuestión de hacer:
1 | $ sudo apt install onedrive |
La primera vez que ejecutemos onedrive
en la terminal, nos dará un enlace tipo token que debemos abrir en un navegador para autorizar la aplicación.
1 2 3 4 5 6 7 | $ onedrive Configuring Global Azure AD Endpoints Authorize this app visiting: https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=d50ff740-c80f-4c1b-a515-12c514354f0c&scope=Files.ReadWrite%20Files.ReadWrite.all%20Sites.Read.All%20Sites.ReadWrite.All%20offline_access&response_type=code&redirect_uri=https://login.microsoftonline.com/common/oauth2/nativeclient Enter the response uri: |
Veremos una ventana así
Al finalizar, tendremos una página en blanco. En la barra de dirección copiaremos la respuesta generada y la pegamos en la terminal nuevamente. De esta manera habremos autorizado la aplicación.
Ahora sincronizamos manualmente por primera vez:
1 2 3 4 5 6 7 8 9 10 | $ onedrive --synchronize Configuring Global Azure AD Endpoints Initializing the Synchronization Engine ... Syncing changes from OneDrive ... Downloading file Documento.docx ... done. Downloading file Libro.xlsx ... done. Downloading file Presentación.pptx ... done. Uploading differences of ~/OneDrive Uploading new items of ~/OneDrive |
Para resincronizar manualmente:
1 | $ onedrive --synchronize --resync |
Para automatizar esto, el cliente proveé unidades de systemd
para iniciarlo y detenerlo. Para activarlo:
1 | $ systemctl --user enable onedrive |
Para iniciar el cliente de One Drive
1 | $ systemctl --user start onedrive |
Y por acá podremos monitorearlo
1 | $ systemctl status --user onedrive |
Si deseamos detenerlo
1 | $ systemctl --user stop onedrive |
Por último si en algún momento necesitamos salir de la cuenta de One Drive
1 | $ onedrive --logout |
Tener Microsoft Office en Linux de manera nativa, aún no es posible, pero podemos acercanos de un modo bastante singular utilizando las aplicaciones web de Microsoft Office. Esto dista de ser perfecto, pero es un buen workaround para lograrlo.
@linkmoises
Aún no hay comentarios...