Vamos a ver cómo crear un módulo para Tide, el prompt para Fish, que muestre el valor del «uptime» de nuestro equipo

Desde hace tiempo fish es la shell que utilizo en mi distribución de GNU/Linux. Una shell con un montón de características que hacen que realizar tareas en la terminal sea sencillo, me ahorra tiempo y pulsaciones de teclas.
Y casi al mismo tiempo que fish descubrí el prompt Tide, que es el que utilizo por la información que muestra y hacerlo de una forma bonita. Sobre ambas cosas puedes leer en sendos artículos:
- https://victorhckinthefreeworld.com/2020/02/12/fish-la-shell-para-linux-amigable-e-interactiva/
- https://victorhckinthefreeworld.com/2021/11/25/tide-como-prompt-para-la-shell-fish/
El prompt Tide incluye un buen número de módulos que añaden y muestran información en nuestro prompt. Tide es extensible, por lo que se pueden crear nuevos módulos personalizados.
En este caso os mostraré cómo he creado un módulo para el prompt Tide que me muestre el valor del «uptime» de mi equipo.
En primer lugar aclarar que esta es la manera en que lo he hecho yo, no quiero decir que sea la mejor, ya que no soy desarrollador, por tanto te explico solo lo que a mí me ha funcionado.
En primer lugar, vamos a necesitar un script en Bash que nos muestre el uptime en un formato que podamos mostrar de manera bonita.
Para eso, podéis descargar el script que hice yo y sobre el que escribí en este artículo:
Ya tenemos la base que utilizaremos más adelante. Ahora vamos a ver cómo crear el propio módulo para Tide.
Creando el nuevo módulo para Tide
Tide admite prompt en la parte izquierda de la pantalla, lo que es lo habitual y también en la parte derecha. En mi caso quiero que el nuevo prompt se muestre en la parte derecha después de la hora, como se muestra en la captura que abre el artículo.
Vamos a echar un vistazo a la wiki del proyecto Tide que ofrece (algo de) información sobre cómo hacer módulos personalizados.
En primer lugar vamos a crear una función que se llamará (en mi caso): _tide_item_uptime.fish y dentro escribiremos:
function _tide_item_uptime
_tide_print_item uptime $tide_uptime_icon' ' (/home/victorhck/Scripts/aptaim)
end
Dentro de los paréntesis es donde debería ir el código para que la función haga lo que queremos, en mi caso lo que hago es una llamada al script «aptime» que he mencionado antes, proporcionándole la ruta donde se encuentra.
Guardamos el archivo en la ruta: /home/tu_usuario/.config/fish/functions/
Ahora con la función ya creada, vamos a incluirla en el prompt Tide para que se muestre. Para eso, en la documentación dice que se haría ejecutando estas dos líneas:
echo $tide_right_prompt_items
set --append tide_right_prompt_items uptime
Pero yo lo he hecho de otra manera. Editando el archivo: /home/tu_usuario/.config/fish/fish_variables
Y añadimos el nombre de la función, en mi caso se llama uptime, en el prompt derecho, añadiéndolo en esta línea, tal como está al final.
En tu caso quizás tienes otros módulos configurados, pero tendrías que añadirlo anteponiendo un x1e antes del nombre del módulo.
SETUVAR tide_right_prompt_items:status\x1ecmd_duration\x1econtext\x1ejobs\x1enode\x1evirtual_env\x1ephp\x1evi_mode\x1etime\x1euptime
También en ese archivo podremos configurar el color del texto, y del fondo y si queremos un icono, usando NerdFont. En mi caso puse estas configuraciones de colores:
SETUVAR tide_uptime_bg_color:1C1C1C
SETUVAR tide_uptime_color:5F8787
Y con esto ya estaría todo completo y ya se debería ver el nuevo módulo en el prompt de Tide. Aquí lo dejo documentado, para mi yo del futuro y para ti lector o lectora que recalas en el blog buscando cómo hacerlo.
Espero que te sea útil, si es así escríbelo en los comentarios y haz feliz a un gatito.
