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
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