A recent Hackaday article explores a straightforward method for Linux users to create custom system tray icons using shell scripts and the YAD tool. The technique allows quick access to RSS feeds, such as the latest posts from Hackaday itself. By leveraging Freedesktop standards, the process works across various desktop environments like KDE and GNOME.
Published on January 6, 2026, the Hackaday piece titled "Linux Fu: Yet Another Shell Script Trick" highlights how Linux's Freedesktop standards simplify custom tray icon creation, avoiding compatibility issues between desktop environments such as KDE and GNOME.
The author admits to having too many tray icons but notes their utility for background tasks or quick service access. To build one, the tutorial employs YAD, described as "yet another dialog," a GTK-based program derived from Zenity. Despite potential minor issues on KDE, YAD serves as a versatile tool for dialogs, file selectors, and more.
The example script creates a tray icon that fetches and displays the latest Hackaday articles via RSS. When run without arguments, it sets up the icon using an image file named after the script with a ".icon.png" extension. A right-click menu offers an exit option, while clicking the icon triggers a dialog showing feed content.
Initial attempts to use YAD's WebKit for HTML rendering failed due to an outdated repository version, missing dependencies, and NVIDIA OpenGL errors. Instead, the script uses wget to grab the RSS feed and awk for parsing titles and URLs. Two dialog approaches are presented: a text-info dialog piping output with the --show-uri option for clickable links, or a standard dialog with Pango-formatted text for better visuals, including a yellow "Hackaday Today!" header.
The formatted version pipes awk output into a variable for cleaner command lines, resulting in underlined, clickable links that open in the default browser. Scripts are available on GitHub, and alternatives like Python or tray-minimizing tools such as AllTray are mentioned, though some may not support Wayland.
This method underscores Linux's flexibility for scripting practical desktop enhancements without complex programming.