Dmenu 无法启动某些程序(例如 emacs)——是否有日志文件?

Dmenu 无法启动某些程序(例如 emacs)——是否有日志文件?

我在 Arch Linux 下运行 dwm 和 dmenu。当 dmenu 工作时,它不会启动某些程序,例如 emacs,尽管它显示带有自动完成功能的命令。当我在终端中启动它们时,它工作正常。

我能做些什么? dmenu 有错误日志文件吗?

答案1

菜单没有内置日志记录,但它是一个非常简单的程序,将其输出记录到文件中并不困难。

首先,确定 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

有一个长dmenu 黑客线程Arch 板上有各种有趣的 dmenu 技巧,非常值得一试。

1.我没有安装Emacs,但你会得到同样的错误......

相关内容