jgmenu – Ein unabhängiges X11-Menü

/



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.

Anwendungsmenü
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

Über jgmenu:
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:

  1. Grundkonfiguration erstellen: Führen Sie jgmenu_run init aus, um eine Standard-Konfigurationsdatei in ~/.config/jgmenu/jgmenurc zu erstellen. Mit jgmenu_run init -i können Sie interaktiv verschiedene Themes ausprobieren.
  2. jgmenu testen: Führen Sie einfach jgmenu_run im Terminal aus, um das Menü anzuzeigen. Es sollte automatisch Ihre installierten Anwendungen basierend auf .desktop-Dateien anzeigen.
  3. Positionierung anpassen: In ~/.config/jgmenu/jgmenurc können Sie position_mode auf fixed, pointer, center oder ipc setzen, je nachdem, wo das Menü erscheinen soll.
  4. Tastenkombination einrichten: Binden Sie jgmenu an eine Tastenkombination Ihres Window Managers. Bei Openbox fügen Sie in ~/.config/openbox/rc.xml folgendes 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
  5. Theme anpassen: Bearbeiten Sie ~/.config/jgmenu/jgmenurc, um Farben, Schriftarten, Transparenz und andere visuelle Eigenschaften anzupassen. Schauen Sie sich die vorkonfigurierten Templates an mit jgmenu_run init -i.
  6. 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 in contrib/xfce4-panel/ im Quellcode-Verzeichnis.
  7. Menü anpassen: Erstellen Sie ~/.config/jgmenu/prepend.csv für eigene Einträge vor dem Anwendungsmenü und ~/.config/jgmenu/append.csv für Einträge danach. Die CSV-Syntax ist einfach: Name,command,icon
  8. 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


↑ Zur Navigation


Schreibe einen Kommentar

Hallo, ich heiße PACHAMiNUX

Ich bin ein kostenloses Open Source Betriebssystem, das denkt. Sicher und stabil helfe ich dir bei deiner Arbeit.