Los dolores de usar Linux en tabletas
:informática:
La experiencia de escritorio Linux ha mejorado mucho con el tiempo, y la diferencia se nota, porque hasta hace menos de diez años las interfaces del pingüino eran claramente inferiores a sus equivalentes en los demás sistemas operativos, excluyendo el lapsus de Microsoft en 2012. Pese a esta mejora, aún queda mucho trabajo que realizar en el ámbito de las pantallas táctiles, y es precisamente de eso de lo que quiero hablar hoy: el estado actual de Linux en tablets convertibles.
Los motivos para preferir una tablet convertible sobre una con Android o un IPad son muchos, pero el principal es que una tablet así es simplemente un PC portátil y táctil. Estos dispositivos, a costa de un –ligeramente– peor rendimiento y una batería de menor duración, permiten realizar todas las tareas que uno llevaría a cabo en su PC de escritorio, con el añadido de una pantalla táctil que ergonomiza las sesiones de lectura de PDFs y toma de notas. El dispositivo, más allá de ser un esclavo de un sistema operativo restrictivo, es libre para realizar cualquier tarea que el usuario desee, que en mi caso se traduce en modelaje 3D ligero, desarrollo de aplicaciones y administración de sistemas, actividades imposibles desde una tablet Android o IPad. Es por eso último que prefiero mucho estos convertibles a las tablets convencionales, mucho más enfocadas hacia el consumo de contenido que hacia la creación del mismo.
Hace unos días me he comprado una Microsoft Surface Go 2 de segunda mano, el modelo más potente disponible, sin LTE. Un dispositivo que hace dos años me habría costado unos 730 euros ahora vació mi bolsillo solo 180, más gastos de envío. El estado del producto es impecable, con sus únicos desperfectos siendo un punto blanco en la retroiluminación LCD y un cargador que solo funciona cuando se usa en un ángulo concreto. No son molestias mayores, y algo así ya me esperaba dado el precio, y de hecho, poco me parece.
Sabiendo que la tablet está en buen estado, me lancé a instalar Linux, proceso que fue bastante más sencillo de lo esperado. Dado que la Surface Go es un PC táctil, bastó con desactivar el “secure boot” y cambiar el orden de arranque en la BIOS para dar prioridad a mi pen drive sobre Windows Boot Manager. Tras un proceso sencillo de particionado, cifrado de la partición root e instalación de NixOS, todo quedó perfecto, restando solo la parte más dolorosa: elegir un escritorio. He probado varios, y dejo a continuación mi opinión de cada uno.
DWM

Por mucho que me guste DWM en mis PCs de escritorio, este gestor de ventanas no está preparado para pantallas táctiles, por lo que lo descarté inmediatamente. Es una pena, porque DWM es el gestor de ventanas más rápido, personalizable y de menor consumo de recursos que he usado nunca.
DWL fue descartado por el mismo motivo, por ser un port de DWM a Wayland.
GNOME 44

GNOME es un escritorio que, a partir de su tercera versión, decidió –controvertidamente– enfocarse en el sector de los convertibles, imitando el paso que dio Microsoft con su Windows 8. Es por eso que fue la primera interfaz en la que pensé para usar Linux en la Go.
Los aspectos positivos de GNOME son varios, entre los que se encuentran la auto-rotación, un genial teclado en pantalla y unos gestos táctiles bastante decentes por defecto –aunque me habría gustado que fuesen tan buenos como sus gestos de touchpad, que son más cómodos–. La pantalla de bloqueo funcina perfectamente también, se escala conforme al escalado del escritorio y el teclado se muestra a la hora de introducir la contraseña del usuario; cosas que, como veremos, no suceden en Plasma.
El mayor aspecto negativo de GNOME es el escalado de la pantalla. En mi dispositivo solo tiene dos valores disponibles: 100% y 200%. El primero hace que todos los elementos sean demasiado pequeños para una interfaz táctil, mientras que el segundo los hace tan grandes que terminan ocupando innecesariamente buena parte de la pantalla. Para habilitar el escalado fraccional tuve que buscar un comando específico para NixOS, dconf write /org/gnome/mutter/experimental-features "['scale-monitor-framebuffer']"
, que me hizo perder un buen rato en su búsqueda, pero solucionó el problema.
Con el escalado fraccional viene el segundo tropiezo: el rendimiento. GNOME usa GTK para la creación de interfaces, y GTK no soporta escalado fraccionario. Esto quiere decir que, para usar GNOME con escalado fraccionario, el escritorio ha de renderizarse a una resolución mayor de la establecida (tanto mayor como el coeficiente de escalado fraccionario) y después comprimir la imagen hasta llegar a la resolución deseada. Este oversampling, en un mundo ideal, solo sobrecargaría la GPU –que ya sería malo–, pero GNOME aún no es renderizado al 100% por la GPU, por lo que la CPU también es penalizada, y esto sí podría notarse, especialmente en un sistema con recursos limitados como la Go.
Otra cosa que nunca entenderé de GNOME es la tremenda carga de aplicaciones inútiles –como la de mapas y el tiempo– que tiene por defecto. Su lector de PDF también es mediocre, bastante inferior a KDE Okular en funcionalidad, por lo que tengo que terminar instalando este último independientemente del escritorio que escoja. En este aspecto, el equipo de KDE lleva una ventaja clara sobre el de GNOME.
Otro problema adicional es la necesidad de extensiones para habilitar funcionalidades básicas, como el ajuste automático de las ventanas al arrastrarlas a los bordes de la pantalla (gTile), la visibilidad del dock sin necesidad de ir al cajón de aplicaciones (Dask to dock), etc. Hacer esto es incómodo y poco recomendable, porque al actualizar GNOME la compatibilidad con estas extensiones podría romperse. Esta falta es especialmente pasmante, porque viniendo GNOME tan cargado de apps inútiles es difícil de entender la no inclusión de características comunes, tan comunes que sistemas populares como Ubuntu las incluyen por defecto. Algo tan sencillo como mostrar los iconos en el escritorio debería ser una opción del propio sistema, y no una extensión de terceros.
Por último, GNOME, dada su horrible apariencia por defecto, requiere de la instalación de temas, lo que supone trabajo extra.
KDE Plasma
Plasma es, sin ninguna duda, el escritorio Linux más completo. La cantidad de características y personalizaciones que pone a disposición del usuario se hacen hasta abrumadoras. En vez de pensar en cómo modificar Plasma con extensiones para que pueda hacer algo –como pasa en GNOME– la duda es, normalmente, dónde se localiza la opción que permite hacer ese algo. Es por eso que valoré su uso para la tablet, pese estar este pensado para escritorios y nada más.
El primer paso a la hora de configurar Plasma fue mover el panel al lateral, seguido por habilitar la rotación automática de la pantalla. Tras eso instalé el teclado virtual Maliit y me tropecé con el primer bug: el teclado no se ajusta bien al tamaño de la pantalla, ni tampoco se muestra en el inicio de sesión, por lo que para desbloquear la tablet necesito conectar el teclado físico. Por suerte, Maliit está aún en desarrollo, y es posible que estos fallos vayan solventándose con el devenir de sus versiones.
Por otro lado, Okular –el lector de PDFs– tiene un problema al hacer zoom usando dos dedos, que ya ha sido reportado a sus mantenedores, aunque no parece que vaya a ser resuelto pronto, porque el desarrollador del parche propuesto ha desaparecido hace tiempo y los demás no entienden la solución, lo que les obliga a empezar de cero. Pongo esto en la sección de Plasma, pero en GNOME también sucedería, por ser fallo de la app y no del escritorio en cuestión.
El menú de cierre de sesión tampoco funciona, porque se escala fuera de la pantalla. Entiendo que las coordenadas de los elementos no se ajustan adecuadamente al factor de escalado. Puede que no sea muy difícil de solventar, y también puede que se convierta en mi primera PR para KDE. Quién sabe.
En caso de cerrar sesión, si es que el usuario lo consigue, puede darse un bloqueo total del sistema al realizar un cambio de usuario. Esto sí que no lo entiendo, y no sé si es debido a alguna configuración extraña de NixOS o un problema con el propio Plasma.
Por lo demás, Plasma parece funcionar correctamente y sin problemas, por lo que tendré que convivir con los escollos anteriores hasta que sean arreglados.

Otras molestias
Hay un problema adicional que no tiene que ver con el escritorio elegido, y es que, a la hora de poner la contraseña de LUKS en el arranque, no hay teclado virtual, lo cual es esperable porque aún no se ha descifrado el disco y, por lo tanto, aún no se ha podido cargar ni el teclado ni ningún servidor de gráficos. Lo que no es tan esperable es que el teclado físico se apague intermitentemente de forma aleatoria, lo que hace que poner la contraseña de descifrado sea especialmente difícil. Evitar esto es tan fácil como no cifrar el disco, pero en una tablet me parece arriesgado, por motivos obvios.
La cámara tampoco funciona, pero se está trabajando en ello. Una vez funcione, se podrá usar software de reconocimiento facial como Howdy, que hará innecesario introducir la contraseña del usuario, eliminando de golpe varios problemas de la lista. El equipo que está trabajado en ello es el de Surface Kernel, que hacen un gran trabajo para los propietarios de estos dispositivos.
Conclusiones
Linux para tablets y convertibles aún no es perfecto, pero está casi ahí. Los problemas son menores, pero suficientes para desincentivar su uso por el público en general, y es una pena, porque por lo demás es perfecto: buen uso de recursos, bajo consumo de batería, disponibilidad de todo el software del mundo, etc.
Me he centrado en los problemas que he encontrado, pero he de decir que son menos de los que esperaba. Es cierto, las tablet Surface no tienen la compatibilidad de los viejos Thinkpads, pero funcionan bastante bien dadas las circunstancias. El editor de modelos 3D OpenSCAD funciona a la perfección; Krita, la app de dibujo, es una delicia en la pantalla táctil; El lector de PDFs Okular es una maravilla, tendiendo en cuenta el fallo antes descrito; La navegación web es tan buena como uno se esperaría; y la toma de notas con Logseq es más cómoda que nunca.
¿Recomendaría comprar una Surface para instalarle Linux? Depende. Si se está dispuesto a vivir con las incomodidades menores que he listado párrafos más arriba –y si se consigue a buen precio–, desde luego; si se busca una experiencia out of the box sin fallos, mejor esperar a que las cosas vayan mejorando con el tiempo y el esfuerzo de la comunidad del software libre.

Actualización a 2024-06-24
Ahora que me encuentro atrapado por unas horas en un Frecciarossa, camino a Roma, he visto que varios de los puntos aquí tratados pueden ser actualizados, porque hay bastantes novedades.
Primero, esta tablet desde la que escribo ha pasado una época en Fedora GNOME, y las cosas fueron bastante bien. Parece que mi novia prefiere ese escritorio a Plasma porque su aspecto por defecto es más cercano a macOS. Por desgracia, los problemas que tiene siguen siendo los mismos, porque mis mayores quejas son con su diseño y no con su implementación.
Sobre KDE Plasma, el problema en el escalado de la pantalla de cierre de sesión se ha solucionado, y ahora se renderiza correctamente. También parece que es más estable y que tiene menos tendencia a quedar colgado, aunque según mi novia aún puede pasar de vez en cuando al hacer un cambio de usuario sin cerrar la sesión del otro.
No son muchas novedades, pero teniendo en cuenta que ha pasado menos de un año desde el post, no está tan mal.