Arch-Linux

Dmenu 不啟動某些程序(例如,emacs)——有日誌文件嗎?

  • July 25, 2014

我在 Arch Linux 下使用 dmenu 執行 dwm。當 dmenu 工作時,它不會啟動某些程序,例如 emacs,儘管它會顯示帶有自動完成功能的命令。當我在終端中啟動它們時,它工作正常。

我能做些什麼?dmenu 是否有錯誤日誌文件?

dmenu沒有內置日誌記錄,但它是一個非常簡單的程序,將它的輸出記錄到文件中並不難。

首先,確定 pacman 將 dmenu 文件與pacman -Ql dmenu. 你應該得到:

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

然後,您可以打開/usr/bin/dmenu_run只是一個 shell 腳本,並添加一個臨時 hack 以將所有輸出寫入文件,如下所示:

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 hacking 執行緒,其中包含各種有趣的 dmenu hack,非常值得一試。

  1. 我沒有安裝 Emacs,但是你會得到同樣的錯誤…

引用自:https://unix.stackexchange.com/questions/146574