jgmenu
Ein einfaches, unabhängiges X11-Anwendungsmenü für Scripting und Anpassungen
Kurze Übersicht
jgmenu ist ein zeitgemäßes X11-Menü, das für Scripting, Modding und Tweaking entwickelt wurde. Es hat eine einfache Codebasis, ist hackbar und unabhängig von Toolkits wie GTK oder Qt. Stattdessen nutzt es Cairo und Pango zum Rendern. Das Menü kann XDG-kompatible Anwendungsmenüs, Pipe-Menus, Openbox-XML-Menüs und benutzerdefinierte CSV-Formate anzeigen. Mit UTF-8-Suchunterstützung ermöglicht es schnellen Zugriff auf installierte Anwendungen.
X11
Lightweight
Scriptable
Window Manager
Cairo
XDG-kompatibel
Openbox
Systemanforderungen
| Komponente | Geschätzter Bedarf |
|---|---|
| Speicherplatz | ~2-5 MB (minimal, ohne zusätzliche Menüpakete) |
| RAM-Bedarf | ~5-15 MB (im laufenden Betrieb, je nach Konfiguration) Kann als kurzzeitige Anwendung (~0 MB) oder als Daemon (~5 MB) betrieben werden |
| Betriebssystem | Linux (alle Distributionen mit X11), BSD X11-Server erforderlich (derzeit keine native Wayland-Unterstützung) |
| Abhängigkeiten | Cairo, Pango, librsvg (für SVG-Icon-Unterstützung), libxml2 Optional: XSettings-Daemon, tint2 (für Theme-Integration) |
| Composite Manager | Optional für Transparenz-Effekte (z.B. compton, picom) Die meisten Desktop-Umgebungen haben bereits einen Compositor |
Funktionen
| Funktion | Beschreibung |
|---|---|
| XDG-Menü-Unterstützung | Vollständige Unterstützung der freedesktop.org Desktop Menu Specification. Liest .desktop-Dateien aus /usr/share/applications und zeigt Anwendungen nach Kategorien sortiert mit Icons, Namen und Beschreibungen an. Unterstützt Lokalisierung. |
| CSV-basierte Menüs | Eigenes CSV-Format für benutzerdefinierte Menüs. Erlaubt vollständige Kontrolle über Menüstruktur, Commands, Icons und Layout. Ideal für Scripting und automatische Menügenerierung. Unterstützt Submenüs, Trennlinien und Metadaten. |
| Pipe-Menüs | Dynamische Menüs, die zur Laufzeit generiert werden. Kann Skript-Output direkt als Menü anzeigen. Ermöglicht kontextsensitive und interaktive Menüs (z.B. aktuelle Systeminfo, Dateilisten, dynamische Anwendungslisten). |
| UTF-8-Suche | Integrierte Echtzeit-Suchfunktion mit vollständiger UTF-8-Unterstützung. Durchsucht Anwendungsnamen und Beschreibungen. Fuzzy-Search-ähnliches Verhalten für schnelles Auffinden von Anwendungen. Suchfeld wird automatisch fokussiert beim Öffnen. |
| Openbox-Integration | Kann Openbox XML-Menüs parsen und anzeigen, einschließlich Openbox-Pipe-Menüs. Erlaubt nahtlose Integration in Openbox-Umgebungen als Ersatz für das native Openbox-Menü mit verbesserter Optik und Performance. |
| Flexible Positionierung | Verschiedene Positionierungsmodi: fixed (feste Position), pointer (am Mauszeiger), center (zentriert), ipc (Panel-Integration). Respektiert _NET_WORKAREA für optimale Platzierung. Konfigurierbare Ausrichtung (horizontal/vertikal). |
| Theme-Anpassung | Umfangreiche Theming-Möglichkeiten: Farben, Schriftarten, Ränder, Abstände, Transparenz, Farbverläufe. Kann Themes von tint2, GTK und XSettings übernehmen. Vorkonfigurierte Templates verfügbar (z.B. greeneye-Layout mit Kategorien und Suchfeld). |
| Panel-Integration | Native Plugins für Xfce-Panel und MATE-Panel. Integration mit tint2, polybar, cairo-dock, plank, i3bar. IPC-Kommunikation für optimale Ausrichtung an Panels. Kann als Launcher-Icon in Panels eingebunden werden. |
| Widgets & Filter | Unterstützung für Widgets wie Suchboxen, Rechtecke, Icons, Textfelder. Filter-Funktion zum Anzeigen spezifischer Kategorien. Ermöglicht komplexe Layouts mit visuellen Elementen und interaktiven Komponenten. |
| Mehrfach-Module | Verschiedene CSV-Generatoren (apps, lx, pmenu, ob) für unterschiedliche Menütypen. Module können kombiniert werden. Unterstützt prepend.csv und append.csv für Menü-Erweiterungen vor/nach dem Hauptmenü. |
Ausführliche Beschreibung
jgmenu wurde von Johan Malm entwickelt und ist seit mehreren Jahren ein beliebtes Menü-System in der Linux-Community. Das Projekt entstand aus dem Bedürfnis nach einem einfachen, aber leistungsfähigen Menü-System, das unabhängig von Desktop-Umgebungen funktioniert. Es wird aktiv auf GitHub entwickelt und in vielen Linux-Distributionen wie BunsenLabs, Mabox, antiX und SparkyLinux eingesetzt.
jgmenu zeichnet sich durch seine Unabhängigkeit und Flexibilität aus. Anders als die meisten Anwendungsmenüs ist es nicht an GTK, Qt oder andere Toolkits gebunden, sondern nutzt direkt Cairo und Pango für das Rendering. Dies führt zu einem extrem schlanken Ressourcenverbrauch und schnellen Startzeiten. Das Menü kann entweder als Daemon im Hintergrund laufen (für sofortiges Erscheinen) oder als kurzzeitige Anwendung gestartet werden, die nach Verwendung vollständig aus dem Speicher verschwindet.
Ein Hauptmerkmal von jgmenu ist seine modulare Architektur. Das System besteht aus zwei getrennten Prozessen: einem CSV-Generator, der den Menü-Content produziert, und dem grafischen Menü, das die Darstellung übernimmt. Diese Trennung ermöglicht es, verschiedene Datenquellen zu nutzen: XDG-kompatible .desktop-Dateien, Openbox-XML-Menüs, selbstgeschriebene CSV-Dateien oder dynamische Pipe-Menüs. Dadurch ist jgmenu ideal für Scripting-Enthusiasten, die ihre eigenen Menüs erstellen oder bestehende automatisch generieren möchten.
Die Integration mit Window Managern und Panels ist hervorragend gelöst. jgmenu funktioniert problemlos mit Openbox, i3, bspwm, dwm, Fluxbox, xmonad und anderen minimalistischen Window Managern. Es gibt native Panel-Plugins für Xfce und MATE, und die Integration mit tint2, polybar, lxpanel und anderen Panels ist durch IPC-Kommunikation optimiert. Das Menü kann an Tastenkombinationen, Panel-Buttons oder Mausklicks gebunden werden.
Einsatzgebiete: jgmenu eignet sich besonders für Nutzer von leichtgewichtigen Window Managern, die ein modernes Anwendungsmenü ohne die Abhängigkeiten großer Desktop-Umgebungen wünschen. Es ist ideal für System-Ricing und Customizing, da fast jeder visuelle Aspekt anpassbar ist. Die Scripting-Fähigkeiten machen es zur ersten Wahl für automatisierte Menü-Generierung und dynamische Inhalte. Auch als Ersatz für das Whisker-Menü in Xfce oder als moderne Alternative zum Standard-Anwendungsmenü in Cinnamon wird es erfolgreich eingesetzt.
Lizenzierung: GNU General Public License v2.0 (GPL-2.0). Der Quellcode ist frei verfügbar und kann modifiziert und weiterverteilt werden.
Weitere Informationen: jgmenu.github.io | Community: GitHub Repository | BunsenLabs Forum
Vergleichbare Linux-Alternativen
| Alternative | Beschreibung |
|---|---|
| Rofi RAM ~10-20 MB • Speicher ~5-8 MB |
Window Switcher, Application Launcher und dmenu-Ersatz. Sehr vielseitig mit Modi für Anwendungen, Fenster, SSH, Calculator. Unterstützt Plugins und umfangreiches Theming. Seit 2025 auch mit Wayland-Support. Ideal für Tastatur-zentrierte Workflows und minimalistische Launcher-Liebhaber. |
| Whisker Menu RAM ~15-25 MB • Speicher ~3-5 MB |
Modernes Anwendungsmenü für Xfce. Zeigt Favoriten, zuletzt genutzte Apps und Kategorien. Integrierte Suche mit Beschreibungs-Durchsuchung. Einfach zu konfigurieren über GUI. Perfekt für Xfce-Nutzer, die ein modernes Start-Menü mit Windows-10-ähnlichem Layout wünschen. |
| dmenu RAM ~2-5 MB • Speicher ~1 MB |
Minimalistisches dynamisches Menü für X11, ursprünglich für dwm entwickelt. Extrem schlank und schnell. Liest Optionen aus stdin und gibt Auswahl auf stdout aus. Keine Icons, pure Textauswahl. Perfekt für suckless-Philosophie-Anhänger und absolute Performance-Enthusiasten. |
| Albert RAM ~50-80 MB • Speicher ~15-20 MB |
Desktop-agnostischer Launcher im Stil von Alfred (macOS) oder Launchy. Umfangreiche Plugin-Architektur: Calculator, Web-Suche, Dateibrowser, Dictionary. Qt-basiert mit modernem Design. Ideal für Nutzer, die einen feature-reichen Launcher mit Extensions möchten. |
| Ulauncher RAM ~70-100 MB • Speicher ~25-30 MB |
Moderner Application Launcher für Linux mit Spotlight-ähnlichem Interface. Python-basiert mit Extensions-System. Fuzzy Search, Web Shortcuts, File Browser. Sehr benutzerfreundlich mit GUI-Einstellungen. Gut für Nutzer, die einen visuell ansprechenden, modernen Launcher wollen. |
| xfce4-appfinder RAM ~10-20 MB • Speicher ~2-4 MB |
Standard-Anwendungssuche von Xfce. Zwei Modi: kompakte Ansicht (ähnlich dmenu) und erweiterte Ansicht mit Icons und Kategorien. Lightweight und stabil. Gute Integration in Xfce. Für Xfce-Nutzer, die eine einfache, zuverlässige Lösung ohne Schnickschnack bevorzugen. |
Hinweis zur Auswahl: jgmenu ist ideal für Nutzer, die ein vollwertiges Anwendungsmenü mit CSV-Scripting und visueller Anpassbarkeit wünschen, besonders in Window-Manager-Umgebungen. Rofi und dmenu sind besser für schnelle Tastatur-basierte Launcher ohne vollständiges Menü-Layout. Whisker Menu ist die beste Wahl für Xfce-Integration mit GUI-Konfiguration. Albert und Ulauncher bieten die umfangreichsten Features, benötigen aber mehr Ressourcen. xfce4-appfinder ist eine solide, einfache Lösung für Xfce-Nutzer. Die Wahl hängt von den Prioritäten ab: Ressourcenverbrauch vs. Features, Tastatur- vs. Maus-Navigation, Scripting-Fähigkeit vs. GUI-Konfiguration.
Download & Installation
Website: jgmenu.github.io | Quellcode: GitHub | Dokumentation: Tutorial & Manpages
Debian/Ubuntu
# Aus offiziellen Repositories installieren
sudo apt update
sudo apt install jgmenu
# Nach der Installation initialisieren
jgmenu_run init
# Interaktiven Modus mit Theme-Auswahl starten
jgmenu_run init -i
Fedora/RHEL/CentOS
# Mit DNF installieren
sudo dnf install jgmenu
# Nach der Installation konfigurieren
jgmenu_run init
Arch Linux
# Aus offiziellen Repositories (community)
sudo pacman -S jgmenu
# Oder aus AUR für neueste Version
yay -S jgmenu-git
# Konfiguration erstellen
jgmenu_run init -i
NixOS
# Deklarative Konfiguration in configuration.nix
environment.systemPackages = with pkgs; [
jgmenu
];
# Oder imperativ installieren
nix-env -iA nixos.jgmenu
openSUSE
# Mit Zypper installieren
sudo zypper install jgmenu
# Konfiguration initialisieren
jgmenu_run init
Void Linux
# Mit XBPS installieren
sudo xbps-install -S jgmenu
# Initial Setup
jgmenu_run init
Aus Quellcode kompilieren
# Abhängigkeiten installieren (Debian/Ubuntu)
sudo apt install build-essential libcairo2-dev libpango1.0-dev \
librsvg2-dev libxml2-dev libx11-dev libxrandr-dev
# Repository klonen
git clone https://github.com/jgmenu/jgmenu.git
cd jgmenu
# Kompilieren und installieren
./configure --prefix=$HOME/.local
make
make install
# Für systemweite Installation (benötigt root):
# ./configure --prefix=/usr
# make
# sudo make install
# Prüfen der Installation
jgmenu --version
# Konfiguration erstellen
jgmenu_run init
Empfehlung: Für die meisten Nutzer ist die Installation über den Paketmanager der Distribution die beste Option. Die Version in den Repositories ist in der Regel stabil und gut getestet. Nur fortgeschrittene Nutzer, die die neuesten Features benötigen oder eigene Patches anwenden möchten, sollten aus dem Quellcode kompilieren.
Erste Schritte nach der Installation
Nach der Installation können Sie:
- Grundkonfiguration erstellen: Führen Sie
jgmenu_run initaus, um eine Standard-Konfigurationsdatei in~/.config/jgmenu/jgmenurczu erstellen. Mitjgmenu_run init -ikönnen Sie interaktiv verschiedene Themes ausprobieren. - jgmenu testen: Führen Sie einfach
jgmenu_runim Terminal aus, um das Menü anzuzeigen. Es sollte automatisch Ihre installierten Anwendungen basierend auf .desktop-Dateien anzeigen. - Positionierung anpassen: In
~/.config/jgmenu/jgmenurckönnen Sieposition_modeauffixed,pointer,centeroderipcsetzen, je nachdem, wo das Menü erscheinen soll. - Tastenkombination einrichten: Binden Sie jgmenu an eine Tastenkombination Ihres Window Managers. Bei Openbox fügen Sie in
~/.config/openbox/rc.xmlfolgendes hinzu:<keybind key="W-space"> <action name="Execute"> <command>jgmenu_run</command> </action> </keybind>Bei i3wm in
~/.config/i3/config:bindsym $mod+space exec --no-startup-id jgmenu_run - Theme anpassen: Bearbeiten Sie
~/.config/jgmenu/jgmenurc, um Farben, Schriftarten, Transparenz und andere visuelle Eigenschaften anzupassen. Schauen Sie sich die vorkonfigurierten Templates an mitjgmenu_run init -i. - Panel-Integration: Für tint2 setzen Sie in jgmenurc:
tint2_look = 1, um automatisch das tint2-Theme zu übernehmen. Für Xfce-Panel gibt es ein natives Plugin incontrib/xfce4-panel/im Quellcode-Verzeichnis. - Menü anpassen: Erstellen Sie
~/.config/jgmenu/prepend.csvfür eigene Einträge vor dem Anwendungsmenü und~/.config/jgmenu/append.csvfür Einträge danach. Die CSV-Syntax ist einfach:Name,command,icon - Kategorien-Layout (greeneye): Für ein modernes Layout mit Kategorien und Suchfeld nutzen Sie:
jgmenu_run greeneye --config > ~/.config/jgmenu/jgmenurc jgmenu_run greeneye --widgets > ~/.config/jgmenu/prepend.csv
Hinweis zu Versionen: Die meisten Distributionen bieten relativ aktuelle Versionen von jgmenu an. Die Entwicklung ist stabil, und neue Versionen bringen meist inkrementelle Verbesserungen und Bugfixes. Die Version in den Debian/Ubuntu-Repositories ist gut getestet. Arch Linux bietet sowohl die stabile Version als auch jgmenu-git für die neueste Entwicklungsversion. Bei Problemen mit der Darstellung prüfen Sie, ob ein Composite Manager (z.B. picom, compton) für Transparenz läuft.
Integration mit verschiedenen Desktop-Komponenten
Whisker Menu-ähnliches Layout
Um jgmenu ähnlich wie das Xfce Whisker Menu aussehen zu lassen, können Sie das greeneye-Template nutzen oder manuell ein zweispaltiges Layout mit Kategorien erstellen. In der jgmenurc können Sie folgende Einstellungen vornehmen:
# Whisker-ähnliche Konfiguration
menu_width = 600
menu_height_max = 500
csv_cmd = apps
menu_padding_left = 150 # Platz für Kategorie-Spalte
icon_size = 24
columns = 2
Standard Anwendungsmenü-Ersatz
Als Ersatz für das Standard-Anwendungsmenü in Xfce oder anderen Desktop-Umgebungen:
# Entfernen Sie das alte Menü-Panel-Plugin
# Fügen Sie einen Launcher mit folgendem Command hinzu:
jgmenu_run
# Oder erstellen Sie einen .desktop-Eintrag für Panel-Integration
Cinnamon Applet-Integration
Während es kein natives Cinnamon-Applet gibt, kann jgmenu als Launcher eingebunden werden:
# Erstellen Sie einen Custom Launcher im Cinnamon Panel
# Command: jgmenu_run
# Icon: Wählen Sie ein passendes Icon aus /usr/share/icons/
# Alternativ über Tastenkombination in Cinnamon Settings:
# System Settings → Keyboard → Shortcuts → Custom Shortcuts
# Command: jgmenu_run
# Shortcut: z.B. Super+Space
Für ein Cinnamon-integriertes Gefühl passen Sie die jgmenurc an:
# Cinnamon-freundliche Settings
menu_valign = top
menu_halign = left
menu_margin_x = 0
menu_margin_y = 32 # Höhe der Cinnamon-Panel
tint2_look = 0
# Nutzen Sie GTK-Theme-Farben für Konsistenz:
color_menu_bg = #2f343f 100
color_norm_fg = #eeeeee 100








Schreibe einen Kommentar
Du musst angemeldet sein, um einen Kommentar abzugeben.