Asignar icono en la barra de tareas a una aplicación AppImage

Estoy usando Todoist como aplicación de escritorio, y aunque le había creado un fichero de configuración para el menú en ~/.local/share/applications/todoist-appimage.desktop asignando un icono no me lo estaba mostrando en la barra de tareas, mostraba un icono genérico de una rueda tipo “cog”.

La solución es añadir la clase de ventana a ese fichero .desktop. Obtenemos la clase de ventana ejecutando

xprop WM_CLASS

y pulsando sobre la aplicación abierta de Todoist. Nos devuelve dos valores:

WM_CLASS(STRING) = "todoist", "Todoist"

Nos interesa el primero. Añadimos una línea en el fichero .desktop que sea

StartupWMClass=todoist

Y ya nos mostrará el icono en la barra de tareas al abrir la aplicación.

Como referencia, este es el fichero .desktop completo:

[Desktop Entry]
Name=Todoist AppImage
Exec=/media/koas/Ext4Bucket/AppImageApps/Todoist-linux-9.26.4-x86_64-latest.App>
Type=Application
Terminal=false
MimeType=x-scheme-handler/todoist;text/html;x-scheme-handler/com.todoist;
Icon=/usr/share/icons/hicolor/512x512/apps/todoist.png
Comment=
PrefersNonDefaultGPU=false
StartupWMClass=todoist

Notas del curso de Claude Code

/init estudia el código y genera el fichero CLAUDE.md

– Se puede añadir información a la memoria con # xxx para que se incluya en el Claude.md y lo tenga en cuenta en todas las operaciones futuras.

– Para proporcionar contexto usamos @ para seleccionar ficheros relacionados con la tarea que hemos pedido.

– Pulsando Esc dos veces podemos eliminar contexto no relevante para la tarea que estamos ejecutando.

/compact nos permite vaciar la conversación pero manteniendo todo el contexto. /clear vacía la conversación y el contexto.

Problemas con xorg consumiendo mucha CPU

Estoy recolocando el ordenador en otra mesa y estoy continuamente cacharreando con los cables para ordenarlos y que estorben lo menos posible. Después de hacer uno de estos cambios vi que el teclado y el ratón iban con bastante lag y el proceso xorg estaba consumiendo muchos recursos de CPU

El problema era que el cable HDMI de uno de los monitores no estaba bien conectado, lo que hacía que se estuviera conectando / desconectando continuamente y eso era lo que provocaba el alto consumo de recursos. Después de apretarlo bien el problema desapareció.

Error de MokManager al instalar Linux Mint

Ha sido una pequeña odisea instalar Linux Mint en un portátil que ya traía Windows 11 instalado. Después de desactivar la opción Secure Boot de la BIOS y la de Fast Start en Windows al arrancar desde el lápiz USB de Linux Mint aparecía este error:

Failed to open \EFI\mmx64.efi - Not Found
Failed to load image : Not Found
Failed to start MokManager: Not Found
Something has gone seriously wrong: import_mok_state() failed: Not Found

La solución es descargar la versión más reciente de Ubuntu a un USB y arrancar desde ella. Ubuntu iniciará MokManager y nos presentará un menú donde debemos seleccionar la opción Continue boot. Tras hacer esto aparecerá el menú de GRUB de Ubuntu.

Ahora podemos apagar el equipo y volver a poner el USB de Linux Mint, y ya arrancará sin problema.

A motto for programming

Yesterday, while walking down the street, I saw some words written in Latin on a terrace: “Primum non nocere”. I looked them up on Google and found that they mean “First, do no harm”. It’s a motto for health-related professions that emphasizes their main objective: the well-being of the patient and avoiding any harm.

I liked the idea, and after doing some research, I found that there’s nothing similar for programmers. So I started thinking and came up with a possible motto for our profession: “Tuere usorem, data, veritatem”.

Tuere: protect
usorem: the user
data: the data
veritatem: the truth

The user: as programmers, our main objective should be the user, making their experience as pleasant as possible and ensuring our program makes their life easier or more comfortable. In the case of open-source code, it can also help them learn.

The data: after the user, data is the most important thing because it’s almost always irreplaceable. It’s our responsibility to do everything possible to keep it safe and accessible.

The truth: today’s technology can be used to falsify information and spread lies, and the pace of change only makes this worse. As creators of much of this technology, we have a moral commitment to the truth.

What do you think? Does it make sense? Is there already a similar slogan that I haven’t found? I’d love to hear your thoughts!

PS: I don’t know any Latin, ChatGPT did the translation for me, so there may be some mistakes.