Rofi試用

當我還沒有使用wofi之前,就已經注意到rofi了,當時苦於rofi沒有支持wayland,又需要一個強力程序啓動器,最終擇了wofi。

最近在刷視頻的時候,看到有人配置了個較精美的rofi皮膚,裏面提到了rofi還可以用來切換窗口(window switcher),一般來說,窗口切換默認由DE、WM來實現。

獨立軟件專門用來的切換程序好像顯得多餘,其實不然。

比如在labwc下,切換窗口只能切換當前 workspace 所含的窗口,有一定的侷限性。

其二,假設你是個狂人,需要打開很多個窗口開展某項工作,同時開啓的程序有8個以上,這個時候,在系統默認的窗口切換器中,要精確找到目標程窗口,幾乎全靠肉眼定位,還是略微費勁的。 這個時候,rofi的模糊搜索匹配就派上了用場。

此外,rofi搭配一些emoji組件還能用來的挑選emoji,比如你要複製這個磁鐵emoji🧲,或者是一些奇怪 東京塔🗼,如果你的輸入法沒有自帶這個功能的話,用rofi + emoji組件能應對。

當然rofi官方還有額外的花哨玩法:ssh登錄、文件瀏覽、祕密選擇等等,個人感覺有點過了,也許有人需要吧。

我主要用來切換窗口。

1. 安裝

在arch下,有兩個rofi包 rofirofi-wayland,如果你是wayland環境,建議使用rofi-wayland,我測試了,rofi包無法切換窗口。對應的源碼不一樣,目前還沒有合併,不知道爲什麼。

1sudo pamcna -S rofi-wayland

2. 配置

我的配置非常簡單,各種themes我搜羅了一圈,沒看上一個,也懶得折騰。

 1➜  ~ grep -Ev '^(/\*|$)' .config/rofi/config.rasi
 2configuration {
 3  font: "mono 16";
 4  show-icons: true;
 5  icon-theme: "Papirus";
 6  timeout {
 7      action: "kb-cancel";
 8      delay:  0;
 9  }
10  filebrowser {
11      directories-first: true;
12      sorting-method:    "name";
13  }
14}

只改動這個幾個 font: "mono 16"; show-icons: true; icon-theme: "Papirus",即字體、顯示圖標、圖標庫。

如果你愛折騰,喜歡自定義theme,可以看下rofi的官方文檔,有個命令行工具 rofi-theme-selector 可以幫你測試效果。

3. 綁定快捷鍵

1➜  ~ grep -A1 -B1  'rofi -theme-str'  .config/labwc/rc.xml
2    <keybind key="F9">
3      <action name="Execute" command="rofi -theme-str 'element-icon { size: 1.0em;}' -show window" />
4    </keybind>

默認圖標很小,這裏更改了圖標大小,看着簡單一句配置-theme-str 'element-icon { size: 1.0em;},翻箱倒櫃才找到的,也可以放入到theme的配置中去,我用默認的,所以放到這裏了,更改theme不受影響。

4. 效果截圖

rofi的程序切換界面,最上面可以搜索過濾,當候選多的時候,可快速命中。

rofi window switcher

labwc自帶的程序切換界面, 自帶會顯示是否爲Wayland運行,顯示爲xdg-shell表示 Wayland 原生運行。比如你啓動個 Dota2,那一行就顯示爲Xwayland,默認情況下Dota2跑在 Xwayland 下,強行開啓Wayland無法輸入漢字,幀率也會明顯下降。

labwc window switcher

各有優劣,我使用rofi作爲後備。rofi 在 window 模式下,部分軟件不能獲取到圖標,具體查看這個 issue

根據我的實驗,更改圖標庫,情況會有所緩解,比如默認圖標集合不能顯示 sublime text 的圖標,換爲 Papirus 可顯示。

這種情況,我選擇忍一忍,多年的 Linux 用戶自然會懂的,不關鍵,假裝看不到、習慣性無視😅。除非真的影響很大,或者很在乎,否則你會掉入旋渦中🌀,無限費時費力。

最後修改於: Sunday, July 6, 2025

相關文章:

翻譯: