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: an icon with a small menu, made with YAD's notification icon.
- Statistics: shown in the terminal, with text bars and colors, in three views: topics, words and practice.
- Web content: opened in the default browser with
xdg-open.
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.
| Desktop | Tray icon | What 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.