MenuLibre is a GTK3-based Python desktop application for editing FreeDesktop.org-compliant application menus on Linux. It allows users to create, modify, and delete .desktop launcher files, organize menu categories, edit desktop actions, and configure advanced desktop entry keys (e.g., DBusActivatable, StartupWMClass, MimeTypes). The application integrates with multiple desktop environments (GNOME, MATE, Xfce, KDE, Unity, Budgie, Cinnamon, Pantheon) and provides features like undo/redo, command validation, icon selection, and parsing error diagnostics for invalid .desktop files. The architecture follows a modular pattern with separate modules for the main window (MenulibreApplication), menu tree model (MenuEditor, MenulibreTreeview), editor pages (ApplicationEditor, AdvancedPage, ActionEditor, CategoryEditor), custom GTK widgets (IconEntry, PathEntry, SwitchEntry, TextEntry), dialogs (Dialogs.py), and utility functions (util.py, MenulibreXdg). The UI is built programmatically with GTK3 (no Glade). The application uses GMenu (gnome-menus) to parse the system menu structure and GLib.KeyFile for .desktop file manipulation. A history system (MenulibreHistory) provides undo/redo/revert with GTK signal integration. Key entry points are the bin/menulibre script and menulibre/__init__.py main() function. External dependencies include Python 3, GTK3 (PyGObject), GLib, GMenu (gnome-menus), psutil, and various desktop environment-specific tools (xdg-desktop-menu, kbuildsycoca5, xprop, rsvg-convert). The application reads system menus via GMenu.Tree, displays them in a treeview, and writes changes using xdg-desktop-menu install/uninstall commands and direct file I/O. It also validates .desktop files and reports parsing errors with actionable messages.