跳至內容
出自 Arch Linux 中文维基

Rofi 是一個窗口切換器、運行對話框、ssh 啟動器以及 dmenu 的替代品,是 simpleswitcher 的複製,經 Sean Pringle 編寫並在隨後由 Dave Davenport 擴展。

安裝

安裝 rofi 軟體包,rofi 需要在 Xorg 顯示服務下使用。

主分支中對 Wayland 支持的合併已無限期停滯。若需 Wayland 支持,安裝 wofirofi-wayland 作為替代。注意,這些軟體包需要一個支持 Layer Shell 協議的 Wayland 混成器。包括了基於 wlroots 的混成器,如 Sway,以及一些基於 Mir 的混成器(但如 Gnome 的混成器 mutter 不包括在內)。

更多關於 rofi 的信息和用法,請參閱 rofi(1) 手冊頁。

配置

設置配置選項有如下方式:

  • 本地配置。通常依賴於 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"

運行 rofi -dump-config 以獲取 config.rasi 可用選項的完整列表。也可執行 rofi -dump-config > ~/.config/rofi/config.rasi 將輸出直接寫入配置文件。

注意:i3 用戶需注意,i3 配置文件中的逗號會引起一些問題。要設置綁定按鍵啟動 rofi,要麼使用配置文件,要麼將逗號替換為 #,例如:rofi -combi-modi window#drun#ssh

圖標

可以讓圖標與其對應條目一同顯示。假設已安裝 papirus-icon-theme,並使用 -show-icons 與定義圖標主題的選項 -icon-themerofi 顯示圖標,命令如下所示:

$ 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) 手冊頁包含了大量使用一種類似 CSS 的自定義語言為 rofi 設置主題的介紹。該頁面還包含了 rofi 所使用的布局系統的額外信息,如 rofi 主題所使用的準確語法和絕大多數的主題屬性。Rofi 的主題系統很簡單(默認的 dmenu 主題為 30 行左右的 CSS)但足夠靈活,可創建出多種可交互、類似小部件的組件和菜單,如 rofi-advanced

社區主題

/usr/share/rofi/themes 目錄下存放著一些 Rofi 自帶的官方主題,更多用戶主題可於 rofi 主題倉庫中找到。

如下所示,使用命令行加載一個官方主題,或是一個下載的 .rasi 格式的用戶主題(應置於 ~/.config/rofi/example.rasi 內):

$ rofi options -theme example

也可寫在 configuration { } 代碼塊外部:

@theme "example"

提示與技巧

Rofi 用作 dmenu 的替代品

被以 dmenu 的形式調用時(通過符號連結),rofi 類似於 dmenu。通過腳本調用 dmenu 的程序(如 passpassmenu)將使用 rofi 而非 dmenurofidmenu 模式下的具體行為請參閱 rofi-dmenu(5)

若要使 rofi 貼近 dmenu 的外觀,將 rofi 軟體包默認的 /usr/share/rofi/themes/dmenu.rasi 文件複製到 rofi 的配置文件目錄下(通常是 ~/.config/rofi)並將 @theme dmenu 添加至 config.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 與字符選擇器的功能。參見項目說明以了解使用方式配置

Emoji 選擇菜單

安裝 rofi-emoji 以令 rofi 集成 emoji 選擇器的功能。參見項目說明以了解使用方式

若遇 emoji 相關渲染問題(例如,渲染為方塊),應考慮安裝 ttf-symbolaAURnoto-fonts-cjknoto-fonts-emoji

Rofi 用作電源管理菜單

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 可與 Greenclip英語Greenclip 集成並用作 X11 的剪切板管理器。安裝 rofi-greenclipAUR 軟體包。

Rofi 用作計算器

使用 rofi-calc 軟體包可將 rofi 用作計算器,用於自然語言輸入、單位轉換和貨幣轉換。