rofi的使用
前言
rofi
是一个linux下有名的程序启动器,具体功能有
- Application launcher
- window switcher
- dmenu replacement(dmenu是一个有类似功能的软件)
安装
ubuntu16.04 LTS上的问题
官方库(16.04)中只有0.15版本
更高版本的官方库中有新版本,幸运的是能在适当调整依赖关系后正常使用最新的版本1.5.0-1
17.10的rofi
不安装下面的依赖不能使用rofi 1.5
rofi1.5.0-1依赖的libxkbcommon0
使用=apt-get update=时遇到了依赖问题,其中依赖common0旧版本的软件也需要换成新版
依赖libxkbcommon0 0.8.0-1的libxkbcommon-x11-0
好在依赖问题就此打住了
有时新装的系统上没有=libxcb-xrm0=,ubuntu自带的仓库中也没有,就需要到网上下载了。
https://packages.ubuntu.com/bionic/amd64/libxcb-xrm0/download
同上没有其他依赖的问题
基础介绍
效果图
拥有以下模式
- window 切换窗口
- run 运行$PATH中命令
- drun 运行desktop文件中命令
- ssh 快速ssh模式,使用shell承认的hosts文件,因此可以无缝迁移到rofi
- combi 结合模式,能够结合上述各种模式
拥有以下特色功能
- 基于频率排序
- 缓存文件放在
- 可以添加用户命令
- 个人认为是对找不到desktop文件的情况的一种补充
- 可以模拟dmenu,但本功能本人还用不到
- 漂亮的外观
- 更多的快捷键功能
配置
在=i3=中启用
1 | bindsym $mod+d exec --no-startup-id rofi -show combi |
这里分开使用了window和combi(内容设置的是run和drun)
- 单纯使用window时不想界面有干扰,虽然事实上对于操作没有特殊影响,哪怕是多按一个键
- 尽管在rofi弹出后可以使用Ctrl+Tab切换模式,但是因为多一些按键,所以不方便
自身设置
-
配置文件
- 在1.5版本中能够使用=rofi -h=看到当前配置文件路径
- 没有配置文件时可以使用
rofi -dump-xresource > ~/.config/rofi/config
生成旧版配置文件,
使用rofi -dump-config > ~/.config/rofi/config.rasi
生成新版本的配置文件,
该文件是rofi的主题文件,并能够控制rofi的其他配置,作者正在向这边迁移 - 采用配置文件的顺序
- 系统级别的配置文件(如果有的话
/etc/rofi.conf
) - Xresources配置文件(至今不知道位置)
- Rasi 主题文件(新版)
- 旧版配置文件(格式同Xresources设置文件),默认在
$XDG_USER_CONFIG_DIR/rofi/config
,
有可能需要设置$XDG_USER_CONFIG_DIR
为$HOME/.config
. - 命令行参数,可以 覆盖 前面的选项
- 系统级别的配置文件(如果有的话
-
常用配置(以旧版设置文件为例)
- 可用的模式
- 新版本中有
- window
- windowcd
- run
- drun
- ssh
- keys
- script
- 设置可用modi:
rofi.modi: window,run,ssh,combi
- 大小写不敏感
- 在shell中使用
rofi -show keys
等未设置的modi时,rofi会临时打开该模式 - 在rofi弹出的窗口中使用Ctrl+Tab切换时不会出现未设置的modi
- 新版本中有
- combi模式包含的模式
- 新版本中才有combi模式
- 设置combi-modi=rofi.combi-modi: run,drun=
- 匹配方式
- 目前有4种
- normal 完全匹配
- regex 正则
- glob 很早前使用
?
与*
的匹配方式,带来速度影响 - fuzzy 模糊匹配
- 设置
rofi.matching normal
- 目前有4种
设置上完全可以参考rofi的manpage
- 使用自定义命令(以填补找不到desktop文件的遗憾)
- 使用到的功能:
accept-alt
- 步骤
- 给上述功能绑定快捷键
rofi.kb-accept-custom: Control+Return
默认就是,不用设置 - 打开rofi输入Desktop文件中exec后的语句,无需使用
&
设置后台 - 使用上述快捷键保存用法,缓存文件放在
~/.cache/
,里面关于rofi的有几个,可以自己看看
- 给上述功能绑定快捷键
- 使用到的功能:
- 可用的模式
存在问题
- 打开rofi时截图快捷键失效,应该是拦截了i3的截图快捷键(使用了teiler解决?)
- 还不清楚是什么问题导致的找不到
Electronic WeChat
心得
-
没有刻意接近dmenu功能,在搜索desktop文件时也有一些小问题,但是并不刻意强调一致,
作者在manpage中说rofi does not aim to be 100% compatible with dmenu. There are
simply too many different flavors of dmenu.也是一种做工具的心态吧,何必要求处处兼容呢