Dmenu startet einige Programme (z. B. Emacs) nicht - gibt es eine Protokolldatei?

8

Ich verwende dwm mit dmenu unter Arch Linux. Während dmenu funktioniert, werden einige Programme, z. B. emacs, nicht gestartet, obwohl der Befehl mit automatischer Vervollständigung angezeigt wird. Wenn ich sie im Terminal starte, funktioniert es gut.

Was kann ich machen? Gibt es eine Fehlerprotokolldatei für das Menü?

Michael
quelle

Antworten:

9

dmenu hat keine integrierte Protokollierung, aber es ist ein sehr einfaches Programm und es ist nicht schwierig, die Ausgabe in einer Datei protokollieren zu lassen.

Stellen Sie zunächst fest, wo pacman die Dmenu-Dateien abgelegt hat pacman -Ql dmenu. Du solltest bekommen:

dmenu /usr/
dmenu /usr/bin/
dmenu /usr/bin/dmenu
dmenu /usr/bin/dmenu_path
dmenu /usr/bin/dmenu_run
...

Sie können dann öffnen /usr/bin/dmenu_run, was nur ein Shell-Skript ist, und einen temporären Hack hinzufügen, um alle Ausgaben in eine Datei zu schreiben, wie folgt:

dmenu_path | dmenu "$@" | ${SHELL:-"/bin/sh"} &>/home/michael/dmenu_log

Die Auswahl emacsaus dem Menü schlägt nun fehl, aber Sie erhalten die Ausgabe in Ihrer Protokolldatei:

]P0000000]P85e5e5e]P18a2f58]P9cf4f88]P2287373]PA53a6a6]P3914e89]PBbf85cc]P4395573]PC4779b3]P55e468c]PD7f62b3]P62b7694]PE47959e]P7899ca1]PFc0c0c0[H[JVim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal
...and a lot more

Das macht den Fehler ziemlich deutlich, wenn Sie alle Escapezeichen entfernen. Damit Emacs funktioniert, müssen Sie auch ein Terminal zuweisen, etwa wie dmenufolgt : urxvt -e emacs yourfile.txt.

Es gibt einen langen Dmenu-Hacking-Thread auf den Arch-Boards, der alle möglichen interessanten Hacks für Dmenu enthält. Es lohnt sich, ihn sich anzusehen.

1. Ich habe Emacs nicht installiert, aber Sie erhalten den gleichen Fehler ...

Jasonwryan
quelle
Vielen Dank! Hat gut funktioniert, Problem war nur eine fehlende Systemschriftart. Ich habe ein anderes, aber sehr ähnliches Problem mit DWM + urxvt, vielleicht kennen Sie die Hilfe: unix.stackexchange.com/questions/146732/…
Michael