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
欢迎关注微信公众号,留言交流。

相关文章:

翻译: