#desktop #dmenu #cache #wrapper #patch #path #d-menu

nightly app dmenu_drun

围绕dmenu(1)的包装程序,也显示桌面文件

5个版本

0.1.4 2022年2月20日
0.1.3 2022年2月12日
0.1.2 2022年1月25日
0.1.1 2022年1月9日
0.1.0 2022年1月8日

#8 in #dmenu

MIT 许可证

13KB
234 代码行(不含注释)

Rust中的DMenu

此仓库包含围绕dmenu(1)的包装程序,受Nathaniel Maia的dmenu_drun脚本(https://forum.archlabslinux.com/t/a-desktop-file-scrubber-and-launcher-for-dmenu/1008)启发。它还显示桌面文件,类似于rofi。你可以将其视为suckless rofi。这不是在Rust中重写DMenu。DMenu本身已经足够快,并且已经有一些很好的补丁,可以真正使其成为你自己的。

为什么要用Rust重写?

速度。我将原始脚本更改为使用桌面文件的标题。这大大减慢了脚本的运行速度。加载需要0.5秒,这对于我这样一个全时间rofi用户来说还不够,所以我无法切换。Rofi几乎瞬间完成,因为其缓存机制。dmenu_path也缓存,这使得它启动非常快。但我不能使用stest,因为我需要一个键值存储(标题 -> 桌面文件名)。

为什么要使用gtk-launch

桌面文件中有一些奇怪之处,使用shell调用gtk更容易。大多数人已经安装了它。

安装

依赖项

  • rustc 1.59.0-nightly (e012a191d 2022-01-06)
  • dmenu (使用navhistory补丁)
  • gtk-launch (在gtk3中)(可选:用于桌面文件)使用以下命令安装依赖项
sudo pacman -S rustup dmenu gtk3
rustup toolchain install nightly-2022-01-06

注意:pacman命令仅在Arch Linux上工作,请在您的发行版文档中查找适合您的发行版的相应命令。Windows和Mac不受支持,因为DMenu在这些操作系统上无法工作。

使用带有"navhistory"补丁的dmenu。如果您不知道如何做,请使用我的dmenu仓库:https://github.com/dtomvan/dmenu

使用以下命令安装

git clone https://github.com/dtomvan/dmenu_drun
cargo install --path dmenu_drun

用法

只需调用dmenu_drun。使用-排除桌面文件(如果您未安装gtk-launch)。使用-排除$PATH。默认情况下,桌面文件和$PATH都被启用。

待办事项

也许在未来,我会包含以下功能

  • -l [lang] 标志用于本地化。

本地化

桌面文件中的本地化工作原理如下:- 使用用户从 $LANG(位于您的 /etc/locale.conf 中)获取的区域设置。此区域设置将用于在 .desktop 文件中查找本地化名称(如果可能)。

See also: https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s05.html

依赖项

~0.4–1MB
~15K SLoC