Atajos de teclas para Terminator, el veterano emulador de terminal

Aunque hoy en día el ecosistema de terminales se esté renovando y haya terminales de nueva generación hecha en lenguajes más jóvenes y modernos, Terminator sigue siendo una de las terminales más sólidas y válidas para quien busque un emulador de terminal avanzado en el que hacer su trabajo sin interrupciones.

Puede que uses Terminator y sólo uses su faceta de «una ventana, una terminal». Sin embargo, realmente tiene mucho más que aportarte, y te lo voy a mostrar en esta entrada de blog.

Dividir la terminal

Si estás haciendo dos cosas a la vez, como puede ser escribir un archivo de configuración a la vez que miras otro archivo como referencia; o bien escribir en un archivo de configuración a la vez que miras la salida de otro comando, tal vez te interese usar los splits para dividir la terminal en regiones.

  • Con la combinación de teclas Ctrl + Mayus + E puedes dividir verticalmente el panel actual.
  • Con la combinación de teclas Ctrl + Mayus + O puedes dividir horizontalmente el panel actual.

Un panel es cada una de las terminales reales que ves en la ventana, y que identificas porque es ese cuadrado que tiene un área rojo para el título arriba por defecto (salvo que cambies los ajustes visuales del programa).

Ten en cuenta que puedes hacer varias divisiones si quieres, pero cada vez que pulses la combinación de teclas de dividir, lo que harás es dividir el panel actual, así que salvo que cambies el tamaño de los paneles, cada uno de los nuevos paneles será más pequeño.

Un split de Terminator con dos paneles.
Un split de Terminator con dos paneles.

Movimiento por los paneles

Cuando tengas múltiples paneles, vas a poder también moverte por ellos con estas combinaciones de teclas.

Para empezar, puedes usar Alt + ←↓→↑ (o sea, cualquier tecla de dirección) para cambiar el foco del teclado a otro panel. Cada tecla de dirección es la dirección a la que mover el foco. Por ejemplo, Alt + mueve el foco al panel que haya a la derecha del que tiene el foco ahora mismo.

Algunas personas tal vez encuentren que este atajo de teclas es incómodo debido a que tienen que llevar la mano demasiado lejos en el teclado para poder pulsarlo. En las opciones de Terminator pueden cambiar el atajo de teclas por otro de su elección. Tal vez prefieran usar HJKL para este fin. O 5678, homenaje a la ZX Spectrum.

Por lo menos, estaremos de acuerdo en que es mejor eso que levantar la mano del teclado, agarrar el ratón, mover el puntero hacia otro panel, y hacer clic en él.

Si sólo quieres rotar entre dos paneles, o rotar en orden, otras combinaciones que te pueden interesar son Ctrl + Mayus + N y Ctrl + Mayus + P. N y P son las iniciales de Next y Previous, así que estas combinaciones sirven para cambiar al panel siguiente y anterior.

Finalmente, si en algún momento necesitas concentrarte en un panel, puedes pulsar la combinación Ctrl + Mayus + X para hacer zoom y ponerlo a pantalla completa, escondiendo otros paneles. Al pulsarla de nuevo, volverá a su tamaño normal y volverás a ver el resto de paneles.

Usar grupos

Los grupos te permiten agrupar (como su nombre indica) varios paneles, para que al pulsar una tecla, se envíe a la vez a todas las terminales. Esto es algo que puede ser de utilidad en algunos casos, como que te conectes a varios sistemas remotos mediante SSH y quieras mandar un comando a todas las sesiones a la vez.

Aunque lo de los grupos es un mundo, porque lo puedes combinar de formas muy diversas, te voy a derivar por el momento hasta que haga una guía sobre ese tema a la ayuda de Terminator, donde te pueden explicar cómo crear grupos concretos y agregar paneles específicos para compartirlos ahí.

Sin embargo, si quieres mandar teclas a todas las terminales a la vez, puedes usar la combinación de teclas Super + G. Generalmente, Super va a ser la tecla Windows, así que: Windows + G. Al pulsar esa tecla, se activa este modo. Lo notarás porque los paneles que se acoplan al tuyo cambian la barra de título por una azul para señalar que están en modo de escucha.

Cuando pulses una tecla, cualquier terminal que esté con el título en azul también recibirá la tecla, así que podrías mandar comandos a varias terminales a la vez. Recuerda desactivar este modo cuando hayas terminado para no cometer errores graves. Para desactivar este modo, pulsa Super + Shift + G. De nuevo, Super suele ser la tecla Windows en un teclado tradicional, o la tecla Comando en un teclado Apple.

Bitwarden casi deja de ser software libre

Discretamente, una noticia ha pasado por el mundo del software libre a lo largo de la semana pasada. Algunos usuarios reportaban en GitHub que no podían compilar correctamente en su máquina sin una dependencia recientemente introducida, que introduce ciertas cláusulas en su licencia que son incompatibles con una de las cuatro libertades del software libre. En otras palabras, que Bitwarden dejaba de ser software libre.

Bitwarden, para quien no lo conozca, es un gestor de contraseñas abierto. Los gestores de contraseñas son programas que permiten organizar las contraseñas de forma segura en una lista, en vez de tenerlas apuntadas, tratar de recordarlas mentalmente, acabar usando la misma en todas partes, o una mezcla de todas las opciones. Con Bitwarden puedes crear aleatoriamente una contraseña, como eK9@$WFCjTqBENkN7G (por favor, no uses esta), que tenga suficientes caracteres y que sea lo suficientemente intrincada como para dificultar que un atacante la pueda reventar por fuerza bruta para desbloquear alguno de tus servicios. Como se guardan de forma segura en su lista, no necesitas recordarla, sólo usar su aplicación y copiarla y pegarla cada vez que necesites iniciar sesión, o usar su extensión para navegador.

Cuando se publicó el issue, empezó un intenso debate en los comentarios de GitHub, donde la gente inmediatamente empezó a cuestionar la falta de confianza, y de que tal vez sea el momento de empezar un fork. La noticia llegó a Reddit, Hacker News y otros agregadores, y eso echó más leña al fuego, hasta que un moderador cerró los comentarios para reducir el ruido.

Sin embargo, un par de días después y tras algo de especulación, una persona responsable en Bitwarden respondió para dejar claro que la razón por la que el programa no compilaba y la falta de licencias libres era un bug y no una feature, y agregaron la licencia GPL a la nueva dependencia que habían introducido. Bitwarden volvía a respetar las cuatro licencias del software libre.

Bram Moolenaar, desarrollador y BDFL de Vim, ha fallecido

Se cierra un ciclo y una época. Vim ha marcado y dejado huella en una manera de crear, ser productivo y fabricar una comunidad. Gracias por todo y perdón por tan poco.

La familia de Bram, quien creó el proyecto Vim y quien lleva todo este tiempo detrás del editor de textos, implementando nuevas funciones y aceptando parches, ha compartido la siguiente nota en la lista de difusión de anuncios de Vim:

Es con gran pesar que tenemos que informarle de que Bram Moolenaar falleció el 3 de agosto de 2023. Bram sufría de una condición médica que progresó rápidamente en las últimas semanas.

Varias generaciones de desarrolladores han aprendido, usado y tratado de dominar Vim. Teniendo una base de usuarios tan grande e inesperada, Vim probablemente habrá manipulado archivos pintorescos e interesantes, desde sistemas operativos hasta aplicaciones web que miles de personas usen a diario.

Vim es charity-ware. Su pantalla de inicio implora a hacer donaciones a la fundación ICCF, dedicada a ayudar a los niños desfavorecidos de Uganda y haciendo lo posible por proporcionarles educación y cuidados médicos. Incluso el dinero enviado al proyecto Vim en forma de patrocinio es destinado a esta causa benéfica.

Hasta siempre, Brad, y gracias por todo y por dar tanto.

¿Qué es una biblioteca (o «library») en una distribución GNU/Linux?

Las bibliotecas son una de las partes más esenciales del software, y es una palabra que posiblemente hayas visto en tu gestor de paquetes. ¿En qué consisten realmente?

En raras ocasiones, en GNU/Linux te encontrarás mensajes de error o de advertencia que hacen referencia a palabras como biblioteca o library. También en español se le suele llamar librería, y aunque desde el punto de vista pragmático se refiere al mismo concepto, algunas personas cuestionan este nombre porque la traducción correcta de library es biblioteca. Sin embargo, una pregunta más importante independientemente del nombre es: ¿qué es esto? En este post voy a tratar de definirlo en conceptos simples y sin dar mucha vuelta.

¿Qué es una biblioteca de software?

Una biblioteca de software es una pieza de software que aunque ofrece funcionalidad, igual que la que puedes encontrarte en un programa tradicional, no puede ser clasificado como programa porque como tal no lo puedes lanzar haciendo doble clic sobre su icono o escribiendo un comando de terminal.

El rol de la biblioteca es proporcionar servicios que puedan ser usados por otras piezas de software. Estos servicios a menudo se corresponden con código que es ejecutado por el ordenador a petición de un programa o de otra biblioteca. De este modo, la biblioteca recibe lo que se podría denominar una petición de servicio para que haga una operación, y eso hará que nuestro ordenador procese cierto código máquina proporcionado por la biblioteca para generar un resultado del servicio.

Por poner un ejemplo, en cualquier distribución GNU/Linux podemos identificar varios editores fotográficos, como son GIMP, Inkscape o Krita. Sin embargo, la realidad es que ninguno de estos programas que menciono sabe cómo transformar los ceros y unos que hay dentro de una foto de tipo JPEG en los colores que luego se ven por pantalla. En su lugar, usan los servicios de una biblioteca de manipulación de imágenes JPEG. Esta biblioteca puede ser, por ejemplo, libjpeg.

libjpeg es una biblioteca experta en el manejo de imágenes JPEG. Sabe cómo transformar esos unos y ceros en píxeles, y sabe cómo volver a codificar píxeles para crear una foto nueva. Sin embargo, no puedes interactuar directamente con una biblioteca. No hay un icono para abrir libjpeg, ni tampoco puedes simplemente escribir en la terminal de tu sistema operativo el comando libjpeg para interactuar con este software.

¿Por qué existen las bibliotecas de software?

Puede ser visto desde fuera como poco educado que un programa se aproveche de las funciones de otro para hacer su trabajo. Sin embargo, en realidad esta situación no sólo es ventajosa sino que por evolución hemos llegado a ella. Existen varias razones por las cuales las bibliotecas de software tienen aceptación y se suelen utilizar para distribuir software.

Una de las ventajas es que permite reducir el tamaño de un programa. Si cada programa del mercado tuviese que incorporar su propio descodificador de imágenes JPEG, por ejemplo, los paquetes de software ocuparían más espacio de almacenamiento debido a que cada programa tiene que incluir sus propias instrucciones de procesador para que el ordenador pueda hacer esas tareas. Hoy en día no es un problema tan grande como antes, pero cuando los ordenadores tenían discos duros más pequeños sí que era de agradecer. Incluso hoy en día, en algunas placas de computación y otro tipo de microordenadores, suele ser importante medir para qué se usa cada byte de almacenamiento.

Por otra parte, que la comunidad centre sus esfuerzos en una biblioteca común que sólo sepa hacer bien una cosa pero que la haga bien, facilita que las mejoras que se incorporen a las bibliotecas estén disponibles a la vez para todos los programas que usen sus servicios, algo que hace que todos los programas se beneficien a la vez. Imagina que un día se inventa un algoritmo nuevo que es capaz de decodificar imágenes JPEG mucho más rápido. Si hay que enseñarle ese algoritmo a cada programa, tendríamos programas descompensados que serían más lentos. Si se hace esa mejora en la biblioteca, todos los programas que usen sus servicios pueden verse favorecidos a la vez.

También está el tema de la seguridad. A veces los procedimientos de cálculo que ejecutan los programas pueden ser arriesgados, y un programa malicioso puede aprovecharse de ciertos errores de computación en algunos de estos programas para hacer cosas inapropiadas. Es más sano corregir el error una vez y que todos los programas que dependan de ella se vean beneficiados a la vez, a tener que arreglar por separado cada programa, puesto que algunos no se actualizarán tan deprisa y podría suponer un riesgo de seguridad a los usuarios.

¿Por qué a veces las bibliotecas de software dan problemas?

Las bibliotecas de software no siempre funcionan bien. En ocasiones, puede ocurrir que un servicio se presta diferente en la versión 1.0 de una biblioteca, que en la versión 2.0 de la misma biblioteca. Si un programa ha determinado que necesita la versión 1.0, pero otro programa necesita usar la versión 2.0, será complicado satisfacer ambas demandas sin instalar a la vez ambas versiones.

Soluciones como AppImage buscan precisamente solucionar estos problemas haciendo que cada paquete de software traiga consigo mismo una copia separada de la biblioteca, a costa de perder las ventajas para el usuario final. Los programas que se distribuyen como AppImage pesan más, y si se instalan varios puede ocurrir que ocupen más espacio. Sin embargo, resulta útil para solucionar este tipo de problemas por lo que al final del día, dado el tamaño de los medios de almacenamiento típicos de la actualidad, no se considera un problema.

Flatpak y Snap resuelven este problema de forma más limpia, permitiendo que múltiples versiones de una misma biblioteca estén instaladas a la vez en el ordenador pero en lugares separados, y utilizando un sofisticado sistema de resolución para que un programa indique de forma exacta qué versión de una biblioteca necesita que le proporcione servicios.

Fedora 37 ha salido: cómo actualizo

Hoy 15 de noviembre sale Fedora 37, así que como siempre, cabe resolver las preguntas típicas: ¿cómo actualizo a Fedora 37? ¿Vale la pena formatear?

Hoy 15 de noviembre sale Fedora 37, estando disponible para su descarga de forma oficial desde su página web. Debido a una serie de problemas con algunos bugs que fueron considerados como críticos, la publicación de la versión, inicialmente prevista para la segunda quincena de octubre, se ha venido retrasando semana a semana y sale un mes más tarde de lo esperado. Sin embargo, nunca es tarde si la dicha es buena.

En este blog ya te contamos el mes pasado un resumen de las novedades de Fedora 37, que se pueden resumir en una actualización integral a GNOME 43, haciendo que más aplicaciones se pasen a la nueva versión del lenguaje de diseño Adwaita. Hay cambios sensibles en aplicaciones como el explorador de archivos y el calendario. Además, ahora también será posible instalar páginas web como aplicación si se está usando la versión Flatpak de GNOME Web. Entre otras novedades, también el soporte para Raspberry Pi 4 y la retirada del soporte a la arquitectura ARMv7.

¿Debería actualizar Fedora o instalarlo de cero?

Cada vez que sale una actualización surge la misma pregunta: ¿debo formatear mi ordenador para actualizar Fedora o puedo simplemente realizar una actualización? Este es un proceso que depende de muchos factores: de qué tipo de instalación tengas en tu ordenador, cómo de fácil te vaya a ser recuperar luego el estado de tu entorno de escritorio si formateas (por ejemplo, el tiempo que te pueda tomar volver a instalar todos los plugins y programas después de instalar), y también de tus gustos personales. Hay gente que simplemente prefiere formatear su ordenador cada 6 meses para dejarlo todo limipo como la patena.

Debes saber que Fedora tiene un método de actualización de versiones. Eso significa que, si no quieres, no tienes por qué formatear tu ordenador para actualizar Fedora. Te basta con actualizar de una distribución a otra para cambiar de versión. Si con eso es suficiente, habrás terminado.

Recuerda comprobar que tienes una copia de seguridad actualizada de tu ordenador (incluyendo esos dotfiles que no suelen ser visibles desde la interfaz de usuario) antes de iniciar cualquier tipo de instalación o actualización, por si el proceso pudiese fallar.

Banner ofreciendo actualizar a Fedora 37
Banner ofreciendo la actualización a Fedora 37.

Cómo actualizar a Fedora 37

Existen dos formas de actualizar a Fedora 37. De cualquiera de las dos maneras, es esencial antes de iniciar el proceso de actualización de Fedora, que compruebes que tu distribución está igualmente al día en cuanto a actualizaciones de otros paquetes regulares del sistema. Descarga, instala y reinicia las actualizaciones pendientes.

La primera forma de actualizar Fedora, y también la más directa, sobre todo si estás utilizando el spin oficial de Fedora, es utilizar la aplicación GNOME Software para ello. Cuando sale una nueva versión de Fedora, se muestra un mensaje avisando de ello en la sección Actualizaciones de tu aplicación.

Todo lo que tienes que hacer es iniciar el proceso pulsando el botón principal de la notificación, una vez te hayas asegurado de tener tus copias de seguridad al día. Durante el proceso, se descargarán nuevas versiones de muchos paquetes y tu ordenador se reiniciará, así que no hagas esto inmediatamente antes de algo importante que tengas que hacer.

En caso de que no estés utilizando el spin oficial de GNOME y no tengas acceso a la aplicación GNOME Software, podrás actualizar desde la línea de comandos, algo que también puedes hacer igualmente aunque uses la versión de GNOME.

Para ello, primero debes comprobar que tengas instalada DNF System Upgrade, un plugin para DNF que permite ocuparse del proceso de actualización de Fedora. Una vez lo tengas instalado, utiliza el comando que te propongo a continuación para actualizar a la versión que corresponda. Ten en cuenta que este comando te vale independientemente del spin de Fedora que estés usando, y también te vale incluso si estás usando Fedora 35 todavía, ya que no perderá soporte hasta un par de semanas después de la publicación de Fedora 37.

$ sudo dnf install dnf-plugin-system-upgrade
$ sudo dnf system-upgrade download --releasever=37

A continuación sólo queda seguir los pasos y responder a las preguntas que nos hará.

El proceso de instalación muestra un resumen y una confirmación antes de iniciar el proceso.

¿Qué pasa si estoy usando la beta?

No creo que sea la única persona que no ha podido evitar a echarle un vistazo a Fedora 37 usando el canal Beta. Si bien las versiones beta pueden ser inestables y pueden contener errores que todavía no están corregidas, te permiten a cambio obtener un vistazo sobre lo que se viene con la siguiente versión de Fedora.

En ese caso, tienes que entender que cuando estás usando una versión beta de Fedora 37, ya estás usando teécnicamente Fedora 37. El procedimiento de actualización para pasar de una beta a una versión final es mucho más simple. Cuando sale Fedora 37, se publica una actualización en el canal Beta que hace los cambios a DNF para pasar al canal estable, y automáticamente invalida el canal beta.

¿Esto qué quiere decir? Que te bastará con continuar instalando actualizaciones como siempre mediante el uso de GNOME Software o la aplicación equivalente en el spin de Fedora que estés usando, o bien simplemente ejecutando el comando sudo dnf update en tu terminal, como siempre.

La documentación oficial de Fedora recomienda igualmente hacer un distro-sync después de actualizar al canal Estable. Esto es porque a veces pueden ocurrir problemas con versiones de paquetes que no cuadran entre lo que hay instalado y lo que se ofrece en el canal estable de Fedora. Ejecutaríamos ese comando sudo dnf distro-sync, y con eso nos aseguramos de hacer downgrade de cualquier paquete extraño a la misma versión que se proporciona en el canal estable.