dmenu (简体中文)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

dmenu是一个X下的快速、轻量级的软件启动器,它从stdin读取任意文本,并创建一个菜单,每一行都有一个菜单项。 然后,用户可以通过方向键或键入名称的一部分来选择一个项目,该行就会被输出到stdout。 dmenu_run是 dmenu 发行版附带的包装器,可将其用作应用程序启动器。

安装

安装 dmenu,或者是开发者版本的 dmenu-gitAUR

拓展了 dmenu 的默认功能的不同补丁版本也是存在的。可以考虑从 AUR 安装下列之一的包:

  • dmenu2AUR: 增加了变暗、修改透明度、下划线等功能的 dmenu 分支。

通过以下命令来运行 dmenu

$ dmenu_run

设置

现在你可以将此命令关联到一个快捷键,很多窗口管理器和桌面环境都有设置工具可以做到,用 xbindkeys 也可以做到,想得到更详细的信息参见 Hotkeys 条目。

显示自定义项目

自定义项目可以通过用换行符(\n)来分隔并输入到 dmenu 来让它们显示出来,比如:

$ echo -e "第一个\n第二个\n第三个" | dmenu

手动添加项目

dmenu 会在你的 $PATH 路径下的目录里查找可执行文件并生成菜单项。如果要修改 $PATH,参见 environment variables

字体

dmenu 4.6 起 XFT 字体渲染默认启用(4.6 发行注记)。fontconfigfont.conf 语法 会被使用。

shell 别名支持

dmenu 不支持 shell 别名. 为了让 dmenu 能够识别别名, 安装 dmenu-recent-aliases(已从AUR移除) 包然后运行 dmenu_run_aliases。 别名必须要在 ~/.bash_aliases 或者 ~/.zsh_aliases 文件里面来让 dmenu_run_aliases 识别出来。

延伸

$ pacman -Ql dmenu | grep bin
dmenu /usr/bin/dmenu
dmenu /usr/bin/dmenu_path
dmenu /usr/bin/dmenu_run

可见/usr/bin/下有三个文件,其中dmenu_pathdmenu_run是两个shell脚本,真正的执行/显示部分都由dmenu完成,其中dmenu_path用于列出$PATH里的可执行文件,每个文件名一行,然后通过“|”传递给dmenu,具体语法可从dmenu_run里找到。 你也可以在终端里执行:

$ echo | dmenu

然后输入任意字串,这个字串就会被显示在终端里,这其实才是dmenu的核心功能。

由此配合其他工具可以完成其他任务,比如运行:

$ notify-send "`exec $(echo | dmenu)`"

你可以试着在运行后输入date,之后系统就会借助notify-send弹出日期提示。

其他资源

  • dmenu - dmenu官方网站
  • Yeganesh - dmenu的一个前段处理器,可以按照使用频率进行排序
  • LinuxTOY - dmenu运行后的效果图