linux上launcher的对比
背景
想在linux上实现类似alfred一样网站直达的搜索功能.
于是想起了linux上还有许多类似alfred的软件.
除了已经在使用的rofi以外,
另外找到的还有三个
- ulauncher(用python写的)
- albert(用C++写的)
- kRunner(KDE自带软件)
评价维度
- 功能
- 生态丰富度
- 标准化和定制程度
- 资源占用
希望达到的功能
- 启动应用
- 桌面切换
- 计算器
- 文件模糊搜索与打开
- 网站快捷搜索直达
- 词典?
rofi
功能完善: 可以做为应用启动器, 可以启动自制应用
生态丰富: 由于可以自定义模式,自定义模式中又能运行脚本.
可定制性: 外观可充分定制,行间距,圆角等等全部可以定制,
通过增加快捷键的方式来增加功能.
非常轻量: 内存占用极少,不仅PC,嵌入式设备应该也可以使用.
缺点: 不能输入中文
计算器实现
pacman中有 rofi-calc
,
下载后i3配置中写
1 | bindsym $mod+n exec --no-startup-id rofi -show calc -modi calc -no-show-match -no-sort |
或者一个更加简单的实现
1 | rofi -show calc -modi "calc:qalc +u8 -nocurrencies" |
可以实现
- 科学计算(四则,三角,对数,幂运算等)
- 带单位计算,单位换算
可以说完全超越alfred的计算器
文件搜索实现
aur库中有 rofi-file-browser-extended-git
的项目,
和rofi深度集成,为rofi添加了 file-browser
模式.
1 | fd --full-path -H ~ | rofi -show file-browser-extended -file-browser-stdin -file-browser-cmd kde-open5 |
- 一方面借助fd来查找文件,速度有保证
- 另一方面使用自身的
-file-browser-cmd
参数来指定用来打开文件的程序,
功能足够,就是文件数量大时稍显慢,不知道fd有没有缓存可以先显示一部分,后台自己慢慢查
网站直达实现
网上找了许多都不尽人意,一方面强烈依赖python,另一方面支持的浏览器和terminal类型过少.
比较中意一个使用google定制引擎的项目,但国内不好用.
词典实现
也是来自aur的一个项目 rofi-json-dict-git
目前问题:
- 即使有json词典也不显示结果
- 其参考的词典库竟然没有任何中文相关的词典
小频率需求,遂放弃
albert
功能完善但不能启动自制应用.
可以运行自定义脚本但被视为新的模式而非应用启动器.看起来不是很标准.
自带的功能很多,但扩展性较差.
ulauncher
自带的功能不是很多,目前只有
- 网站直达
- 插件功能(比如将谷歌翻译的结果取回本地显示)
但官方提供了插件的集合页,而且通过github的链接即可添加插件,
美观方面也强于albert,虽然还是不能定制.
kRunner
一个霸道的存在,
虽然小且不起眼(无法定制具体的搜索框大小)
使用起来也很难用(网站直达的功能需要在提示符和关键字中使用冒号)
但和KDE结合在一起,生态显得异常丰富
- 计算器
- 本地文件搜索
- 配置搜索
- 会话搜索
- 联系人搜索等等等等
结论
rofi虽好,不能输入中文啊.
其他软件的通病是不能定制外观,
不是特别在意内存消耗,毕竟KDE本身运行起来也占用不少但从来没有多少人特别嫌弃.
目前使用rofi和ulauncher互补.