Rofi
Rofi 是一个窗口切换器、运行对话框、ssh 启动器和 dmenu 替代品,最初是 simpleswitcher 的克隆版本,由 Sean Pringle 编写,之后由 Dave Davenport 扩展。
安装
安装 rofi-wayland 或 wofi 软件包以便与 Wayland 合成器一同使用。
请注意,Wayland 软件包需要支持 Layer Shell 协议的 Wayland 合成器,例如 sway 或 hyprland。将 Wayland 合成器支持合并到主 rofi 分支的工作已无限期搁置 [1]。
要了解更多关于 rofi 及其用法的信息,请阅读 rofi(1) man 手册页。
配置
有两种方法设置配置选项
- 本地配置。通常,根据 XDG,位于
~/.config/rofi/config.rasi
。 - 命令行选项
$ rofi -combi-modi window,drun,ssh -theme solarized -font "hack 10" -show combi
可以在配置文件中这样表示
configuration { modi: "window,drun,ssh,combi"; font: "hack 10"; combi-modi: "window,drun,ssh"; } @theme "solarized"
要获取 config.rasi
文件的完整选项列表,请运行 rofi -dump-config
。您可以在运行 rofi -dump-config > ~/.config/rofi/config.rasi
时将命令的输出直接写入您的配置文件
#
,例如 rofi -combi-modi window#drun#ssh
。图标
可以使用图标来显示其对应的条目。假设您已安装 papirus-icon-theme,使用 -show-icons
并使用 -icon-theme
定义图标主题,您可以让 rofi 显示图标并执行以下操作
$ rofi -combi-modi window,drun,ssh -theme solarized -font "hack 10" -show combi -icon-theme "Papirus" -show-icons
自定义主题
您可以使用以下命令预览和应用 rofi 的主题
$ rofi-theme-selector
rofi-theme(5) man 手册页包含关于如何主题化 rofi 的详细说明,使用了自定义的、类似 CSS 的语言。此页面包含关于 rofi 使用的布局系统的其他信息、用于主题化 rofi 的精确语法,以及用于主题化 rofi 大多数属性的其他说明。Rofi 的主题系统可以很简单(默认的 dmenu 主题大约有 30 行 CSS),但也足够灵活,可以创建各种交互式的、类似小部件的 applet 和菜单,例如 rofi-advanced。
贡献主题
Rofi 附带了几个官方主题,存储在 /usr/share/rofi/themes
中,更多用户主题可以在 rofi-themes 仓库中找到。
加载一个官方主题,或者下载一个 .rasi 用户主题并将其放置在 ~/.config/rofi/example.rasi
命令行中
$ rofi options -theme example
或者,在您的配置文件中,在 configuration { }
块之外
@theme "example"
技巧和窍门
如果以 dmenu 的方式调用(通过符号链接),rofi 的行为类似于 dmenu。然后,从脚本中调用 dmenu 的程序(例如来自 pass 的 passmenu)将使用 rofi 而不是 dmenu。rofi 在 dmenu 模式下的确切行为在 rofi-dmenu(5) 中描述。
要近似 dmenu 的外观,请将 rofi 软件包默认附带的文件 /usr/share/rofi/themes/dmenu.rasi
复制到 rofi 配置目录(通常为 ~/.config/rofi
),并通过在 config.rasi
的末尾附加 @theme "dmenu.rasi"
或在命令行中使用 -theme dmenu
选项来启用它。
从 rofi 执行 shell 命令
如果您希望能够直接从 rofi 运行 shell 命令或使用您自己的脚本并查看输出,请确保以下内容
定义 -run-shell-command '{terminal} -e SHELL -ic "{cmd} && read"
,其中 SHELL
是您的 shell(例如 bash、zsh)。这允许您在输入栏中输入命令,然后按 Shift+Enter
。终端保持打开状态,直到下一次按键。
这是一个使用 i3 推荐的转义序列的示例
bindsym $mod+d exec --no-startup-id rofi -show drun -run-shell-command '{terminal} -e zsh -ic "{cmd} && read"'
Unicode 选择集成
安装 rofimoji 以获得与 rofi 集成的 Unicode emoji/字符选择器。请参阅 项目 README 以获取 用法 和 配置。
安装 rofi-emoji 以获得与 rofi 集成的 emoji 选择器。请参阅 项目 README 以获取 用法。
如果您遇到关于 emoji 的渲染问题(例如渲染为矩形),您应该安装 ttf-symbolaAUR、noto-fonts-cjk 和/或 noto-fonts-emoji。
Rofi 可以与 systemd 一起使用以执行电源管理操作。 安装 rofi-power-menuAUR。默认情况下,AUR 软件包会将 rofi-power-menu 脚本插入到 $PATH 中,因此使用它只需要
$ rofi -show p -modi p:rofi-power-menu
如果您决定不使用 AUR 软件包并手动克隆它,那么您将必须告诉 rofi 在哪里找到 rofi-power-menu 可执行文件。例如,如果可执行文件位于 $HOME/.rofi-power-menu
$ rofi -show p -modi p:$HOME/.rofi-power-menu
您也可以将可执行文件放在 PATH 中,并仅传递其名称。
要显示默认符号,您可能需要安装 ttf-nerd-fonts-symbols。
有关更多信息,请阅读仓库中的 README 文件。
Rofi 作为剪贴板管理器
Rofi 可以用作 X11 剪贴板管理器,使用 Greenclip。安装 rofi-greenclipAUR 软件包。对于 Wayland,cliphist cliphist 是一个不错的替代方案。
Rofi 作为计算器
Rofi 可以用作计算器,使用自然语言输入、单位转换和货币转换,通过 rofi-calc 软件包。