新闻详情

新闻详情

首页 / 资讯中心 / 详情

OpenLess的Linux之路:为什么抛弃Tauri与WebKitGTK,用egui打造原生UI

发布时间:2026/11/14 8:23:38来源:尧图网络
OpenLess的Linux之路:为什么抛弃Tauri与WebKitGTK,用egui打造原生UI
OpenLess的Linux之路为什么抛弃Tauri与WebKitGTK用egui打造原生UI【免费下载链接】openlessHold a key, speak, release — AI-polished text appears at your cursor in any app. Open-source voice input for macOS Windows. (按住快捷键说话松开即得润色后的文字)项目地址: https://gitcode.com/gh_mirrors/op/openlessOpenLess 是一款开源 AI 语音输入工具按住快捷键说话松开即得润色后的文字光标在哪就能插入到哪。在 2.0 版本中团队为 Linux 放弃了 TauriWebKitGTK方案改用 Rust 的 egui 重构了整套原生 UI。本文讲清楚为什么不做“一份代码三端跑”以及 egui 原生方案是如何落地的。️一、先认识 OpenLess按住说话松开落字OpenLess 的核心体验非常直接全局热键触发按住快捷键开始录音松开结束AI 润色语音经 ASR 转写后由 LLM 按你选择的“风格包”清理口语、调整语气光标处插入处理完成自动把文字写入当前任意应用的输入框支持选区润色、追问QA、本地模型离线识别等进阶能力。在 2.0 架构中各平台分工明确见架构文档平台界面层原生宿主层Windows / macOS / AndroidReact Taurisrc-tauri/LinuxeguiRust 原生 UIlinux-egui/crateopenless-linux-egui全平台—共享业务核心crates/openless-core关键点业务逻辑只有一份全部位于openless-core界面层无论 React 还是 egui都只是“壳 原生能力适配器”。二、为什么 Linux 不直接用 TauriTauri 是“前端写 ReactRust 写后端”的桌面框架Windows 和 macOS 上体验很好。但它在 Linux 上的路径是WebView 渲染也就是必须依赖系统安装的 WebKitGTKwebkit2gtk依赖重且不可控发行版之间 WebKitGTK 版本差异大打包者要为不同 distro 处理一堆系统依赖版本升级还可能随时改变渲染行为双进程 IPC 的额外开销UI 跑在 WebView 里与 Rust 后端之间要走序列化的 command/event 通道。对语音输入这种对“按下—松开—落字”延迟敏感的应用多一跳就多一分延迟原生集成绕不开OpenLess 需要全局热键边沿事件、前台焦点/工作区感知、fcitx5 输入法插件、系统钥匙环……这些能力无论哪种 UI 框架都得写原生代码WebView 方案省不掉却还要再背一层渲染栈。所以团队做了一个干净的切分Linux 端 UI 与后端同进程直接走类型化的 Rust 接口不经 IPC数据流说明egui UI → LinuxHostsnapshot / subscribe / drain_events→ 共享 Coreegui 正是为这种场景而生的 Rust 即时模式 GUI 框架编译进二进制、零 Web 依赖、与后端同进程调用一个 ELF 可执行文件 deb/rpm/AppImage 就能交付。三、egui 原生 UI 是怎么搭起来的1. 一份共享核心两端各自注入Core 通过注入接口openless-core/src/ports.rs声明它需要什么平台能力AudioRecorder录音、TextInserter文本插入、CredentialStore凭据、LinuxHostActions系统动作等。Linux 端在 backend.rs 用LinuxBackendBuilder::from_shared_providers(...)组装运行时注入 CPAL 录音、Secret Service 凭据、fcitx5 输入等原生实现。纪律是业务规则缺失修 Core平台能力缺失修 HostUI 层不复制业务规则。2. 用合同锁定行为跨端一致性靠 contract/backend-2.0.json 这份机器可读合同启动快照结构、语义事件清单、顺序与重放规则都由它定义。UI 必须先消费启动快照再渲染事件经 LinuxHost 的drain_events批量取走交给界面状态机——这套约定见Linux 后端契约。3. 页面一一对应不另起炉灶egui 侧不是“另做一个 Linux 版”而是把 Windows/macOS 的 React 页面逐项复刻概览、历史、词汇、风格、市场、翻译、QA 面板、设置弹窗、录音胶囊浮窗甚至 Less Computer 的独立原生 viewport都在 2.0 交付记录 中有明确的“React 来源 → egui 实现”对照表。深浅主题、八种界面语言也保持一致。四、原生 UI 真正的难点系统集成UI 框架只是冰山一角Linux 上真正费功夫的是原生集成模块清单全局热键X11 走 x11rb/XInput2/RandRGNOME 用 Shell 扩展KDE 用 KWin 脚本 KGlobalAccel 服务冲突检测与重启恢复都有专门处理hotkeys.rs文本插入与选区通过 fcitx5 插件 捕获目标、选区与周边上下文写前校验焦点密码字段拒读文本凭据安全密钥存入 Secret Service 系统钥匙环credentials.rs不进状态文件与诊断日志分发打包脚本 产出 deb / rpm / AppImage 与桌面组件包AppImage 自动更新需通过 SHA-256 与 minisign 签名校验失败自动回滚旧版本。五、质量保障957 项 Core 测试 宿主契约放弃 WebView 不等于放松验收。交付记录中08 章检查结果cargo test -p openless-core957 项通过cargo test -p openless-linux-egui --lib --test host_contract125 项库测试 4 项宿主契约通过fcitx5 插件 CTest目标失效、焦点恢复、密码字段拒绝契约通过打包校验SHA-256、ELF 依赖、桌面元数据全部通过并配有 GNOME 42/46 × Plasma 5.27/6、X11/Wayland 共 8 格的人工验收矩阵——因为自动测试无法替代真实桌面行为证据。六、在 Linux 上体验 OpenLess构建入口在openless-all/app/目录WSL Ubuntu 22.04 验证通过核心步骤完整命令见安装和构建git clone https://gitcode.com/gh_mirrors/op/openless cd openless/all/app npm ci npm run build cargo build --locked --release -p openless-linux-egui OPENLESS_LINUX_VERSION2.0.0-Beta.1 bash scripts/package-linux-egui.sh sudo apt install ./OpenLess-Linux-egui-2.0.0-Beta.1-x86_64.deb安装后在“设置 → 关于与更新”中启用 GNOME/KDE 桌面组件即可获得全局热键、托盘与浮窗能力。结语OpenLess 的 Linux 之路给跨平台桌面项目一个务实的启示“跨平台”不等于“同一套渲染技术”。把业务核心抽成一份 Rust 库平台差异留给各端原生宿主Linux 用 egui 拿到零 Web 依赖、低延迟、易打包的原生体验Windows/macOS 继续用 Tauri 的生态红利——各司其职才是 2.0 架构真正想表达的设计。【免费下载链接】openlessHold a key, speak, release — AI-polished text appears at your cursor in any app. Open-source voice input for macOS Windows. (按住快捷键说话松开即得润色后的文字)项目地址: https://gitcode.com/gh_mirrors/op/openless创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/14 3:51:47

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/13 10:09:00

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/13 13:31:48

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/13 16:11:45

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/14 3:51:43

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉