About Idiomind

Technical architecture

A Linux learning application built from Bash, YAD, and the Unix toolset.

The Unix/Linux implementation

Idiomind for Linux is written in Bash. It uses YAD for windows and dialogs, and the usual Linux tools for everything else. There is no compiled code: the application is a set of scripts.

Bash and YAD

Bash takes care of the logic. It works with files, SQLite databases, audio tools, translation services and the steps of the learning workflow. YAD provides the windows, forms, lists and menus.

    Idiomind
        |
    +---+---+
    |       |
   YAD     Bash
    |       |
    +---+---+
        |
 Linux utilities
        |
   File system

Desktop integration

System tray compatibility

The tray icon is created with YAD, which uses the classic X11 tray protocol (XEmbed). Some desktops no longer support it directly, so whether the icon shows up depends on the desktop and on how its panel is set up.

DesktopTray iconWhat to do
Xfce Works The default panel includes the Status Tray plugin.
MATE · Cinnamon Should work Use the notification area (MATE) or the System Tray applet (Cinnamon).
LXQt Needs two plugins Add both the Status Notifier and the System Tray plugins to the panel. The second one passes the icon to the first.
GNOME · Ubuntu Needs an extension Ubuntu enables the AppIndicator extension by default. On Debian, install gnome-shell-extension-appindicator, enable it and check that its legacy tray icons option is on.
KDE Plasma Through a bridge Plasma converts the icon with xembedsniproxy, which comes with Plasma. On Wayland it may not show if the proxy is not running.
Sway · Hyprland Not by default Waybar and similar bars only show StatusNotifier icons. Starting xembedsniproxy from the session config usually fixes it.
tint2 · i3bar and others Depends on the panel The panel needs a tray area that supports XEmbed.

On Wayland sessions, Idiomind runs YAD on X11 through XWayland. If xdotool is installed, the left click opens the menu on X11; without it, use the right click.

The icon is optional. If the system has no tray, Idiomind says so and opens its regular panel window instead, and the choice between icon and panel can also be changed in Preferences.

Why shell scripts

The idea was to use what Linux already provides instead of adding a framework. Data lives in plain files and SQLite databases, so it is easy to inspect, and the scripts can be read and edited directly.

An open implementation, built around learning

Idiomind brings together the simplicity of shell scripting and the flexibility of the Linux environment to support a structured language-learning process. Its implementation is open, its data remains accessible, and its tools can be inspected and modified.

Source code

The original Linux implementation is open source and available on GitHub.