luakit轻量级浏览器

Luakit、Badwolf、Midori 和 Surf 这类轻量浏览器,本质上都是基于 WebKit Engine (WebKitGTK) 开发的 UI 外壳。它们与 Firefox 的根本区别在于内核架构与设计哲学。

轻量级浏览器 vs. Firefox

对比维度

轻量级浏览器 (Luakit / Badwolf / Surf / Midori)

Firefox (Gecko / Quantum)

底层渲染引擎

WebKitGTK (轻量化 C/C++ 封装)

Gecko / Quantum (高度优化的复杂引擎)

多进程沙箱 (Site Isolation)

多为单进程或极简多进程,内存开销极低

严格的多进程隔离与沙箱,内存占用较大

硬件加速

仅依赖基础 VA-API / OpenGL 转发,极其轻量

庞大的 WebRender 管线,极其吃 GPU 显存

JavaScript 引擎

JavaScriptCore (JSC)

SpiderMonkey (针对重度 SPA 应用深度优化)

内存/CPU 占用

启动内存 50MB ~ 150MB

启动内存 500MB ~ 1GB+

现代网页兼容性

适合文档、博客、GitHub、Wiki、Lightweight Web

100% 兼容 DRM 视频、Heavy SPA、WebAssembly

Luakit 采用Lua 语言驱动,内置类似 Vimperator/Vimium 的键盘快捷键,无需鼠标即可高效导航。由于它极度轻量,定制性极强,所以特别适合硬件性能有限的笔记本设备,例如 MacBook Air 11" Late 2010 来配合 Alpine Linux 食用。通过Lua脚本可以为Luakit提供强大灵活的功能,例如直接拦截请求,配置代理或修改UI逻辑。不过,配置需要学习 Lua 语法。

备注

Luakit现在提供了各种发行版支持,在 Alpine Linux 环境下,有非常轻量的APK预编译包。

需要注意,像Luakit这种轻量级浏览器适合日常查看Python/C API 文档、浏览 GitHub Issue 或检索网页,Luakit 的 Vim 快捷键在 Sway 平铺环境中能够提供极致的无缝操作体验。但是,对于类似 Figma、JupyterLab、Overleaf 或大型前端 SPA 应用,Luakit是很难正确渲染加载的,所以我采用 Moonlight-Embedded 来访问自己部署的服务器,在服务器上采用全功能 Firefox / Chrome 来运行。这种功能拆分可以降低本地设备的硬件要求。

Luakit使用

在 sway - i3兼容Wayland compositor 环境运行Luakit是非常适配的,只需要记住一些 常用按键 ( 注意按键字母大小写 ):

  • o :打开 URL 输入框 (Open)

  • t :在新标签页打开 URL (Tab)

  • d / x :关闭当前标签页

  • j / k :向下 / 向上滚动页面

  • H / L :后退 / 前进

  • r :刷新页面

  • / :页面文本搜索

参考