web-dev-qa-db-ja.com

Dmenuはいくつかのプログラム(例えば、emacs)を開始しません-ログファイルはありますか?

Arch Linuxでdmenuを使ってdwmを実行しています。 dmenuが動作している間は、emacsなどの一部のプログラムは起動しませんが、オートコンプリートでコマンドが表示されます。ターミナルで起動すると正常に動作します。

私に何ができる? dmenuのエラーログファイルはありますか?

8
Michael

dmen にはロギングが組み込まれていませんが、非常に単純なプログラムであり、ファイルへの出力をロギングすることは難しくありません。

最初に、pacmanがpacman -Ql dmenuを使用してdmenuファイルを配置した場所を特定します。あなたは得るべきです:

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

次に、/usr/bin/dmenu_runを開きます。これは単なるシェルスクリプトであり、次のようにすべての出力をファイルに書き込むための一時的なハックを追加できます。

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

Dmenuからemacsを選択すると失敗しますが、ログファイルに出力が表示されます。

]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

これにより、すべてのエスケープを削除するとエラーがかなり明確になります。 Emacsを動作させるには、dmenuからターミナルを割り当てる必要があります。これは、urxvt -e emacs yourfile.txtの行に沿ったものです。

Archボードには長い dmenuハッキングスレッド があり、dmenuのあらゆる種類の興味深いハッキングがあります。チェックする価値があります。

1. Emacsをインストールしていませんが、同じエラーが発生します...

9
jasonwryan