Skip to content

feat(linux-egui): 复刻 2.0 完整界面并补齐 Linux 原生能力 - #1065

Open
TFboy1 wants to merge 2 commits into
Open-Less:betafrom
TFboy1:Linux-egui
Open

feat(linux-egui): 复刻 2.0 完整界面并补齐 Linux 原生能力#1065
TFboy1 wants to merge 2 commits into
Open-Less:betafrom
TFboy1:Linux-egui

Conversation

@TFboy1

@TFboy1 TFboy1 commented Sep 11, 2026

Copy link
Copy Markdown

变更

beta867a0d8ce746c64cadc1be68fead98d9838b9f15 创建 TFboy1:Linux-egui,以该提交的 React 2.0 源码为复刻基准,使用 egui + openless-core 实现 Linux 原生界面与宿主。原 PI 工作保留在 feat/bundled-pi-computer75a3a2710c251e4deca453fab17a07a3fb79047b)。

  • 覆盖概览、历史、词典、风格、市场、翻译、划词追问、纠错八页,以及七类设置和渠道、模型、Omni、手机输入、云同步等子页。侧栏 226px,设置弹窗最大 960×680、导航 214px;接入 React 八种语言资源、深浅主题与字体/窗口缩放。
  • 拆分渲染、页面状态、异步宿主操作及窗口管理;主窗口、胶囊、QA、语音意图、选区预览、Less Computer 面板和审批共享 Core 会话。页面操作接入实际服务,处理保存失败、过期结果、取消与确认流程。
  • 增加版本化桌面桥:X11 原生接口,GNOME 42–44 / 45+ 扩展,KWin 脚本及 Qt5/Qt6 KGlobalAccel helper。提供随包安装、启用、卸载和重启重绑。
  • 扩展 fcitx5 快捷键事务、目标快照及观察接口,注入 fcitx5 / AT-SPI 上下文与编辑观察;原目标失效、焦点变化、密码字段和迟到事件均受检查。打通划词语音的应用、取消与撤回。
  • 补齐录音归档/保留、播放/导出/重转写、提示音、静音恢复,托盘、后台、自启、通知及窗口生命周期。AppImage 使用 SHA-256 + 固定 minisign 公钥校验,原子替换、取消和失败回滚;deb/rpm 由系统包管理器安装更新。
  • 增加 Ubuntu 22.04 / Rust 1.94.0 Linux CI,打包 ELF、deb、rpm、AppImage 和独立桌面组件。保留 Qwen 固定子模块及业务数据格式,更新 Linux 交接记录和 L01–L12 状态。

检查结果

最新提交 6fe0b254ea0c0c54f0b85fb26d985eb180ad3f59云端 Linux CI全部通过(2026-09-12 确认):React build、Core 测试/Clippy、Linux 后端契约、Release、打包与包内容验证均成功。下表为本地检查证据。

检查 结果
npm run build 通过,TypeScript + Vite
Core 后端测试 957 通过,1 项既有忽略
Core Clippy,--all-targets -- -D warnings 通过
Linux egui 库 / 宿主契约 125 + 4 通过
fcitx5 输入目标契约 1 通过
Linux cargo check --all-targetscargo build --locked --release -p openless-linux-egui 通过
KDE helper、Qwen 运行时 编译通过
依赖 / 密钥表面 / 测试隔离 / 运行时边界 / Linux 公共接口检查 全部通过
deb/rpm/AppImage、解包、ELF 依赖、元数据、组件内容与 SHA-256 全部通过

后端回归覆盖快捷键冲突/恢复、目标与观察事件过期、取消竞态、音量恢复、凭据锁定、设置持久化、下载取消、更新校验和回滚。Linux egui 宿主仍有 35 条未使用代码编译告警。

构建产物

本地目录:openless-all/app/target/linux-egui/linux-egui-packages/。包含约 48.5 MiB ELF、43.7 MiB deb、43.7 MiB rpm、71.5 MiB AppImage、27.0 MiB 桌面组件 tar.gz 和 SHA256SUMS。云端已独立构建并上传 openless-linux-egui-x86_64 构建产物(211,097,317 字节,约 201 MiB)。其中包含 ELF、deb、rpm、AppImage、桌面组件、SHA256SUMS 及更新清单;下载需登录 GitHub,摘要以该 artifact 内文件为准。

这些是未签名候选包。正式 AppImage 自动更新需要发布工作流配置 LINUX_EGUI_MINISIGN_SECRET_KEY;客户端拒绝未签名更新,未生成或替换上游私钥。

人工验收

按要求没有运行前端界面测试、截图比对或浏览器自动化,尚未确认像素级一致性。GNOME 42/46、Plasma 5.27/6 × X11/Wayland 的视觉、热键边沿、焦点/选区/撤回、音频、托盘及真实安装更新均保留为待人工验收。

2.0 交付记录与验收矩阵L01–L12 状态。Wayland 未启用桌面组件时仅有 fcitx5 客户端事件回退,不能算全局热键验收通过;GNOME 42 的释放事件、左右修饰键和 KDE 差异列为重点验收项。

贡献归属

选择性复用 #1055 的设计 tokens(sim)和 #1060 的 egui/原生模块基础(aeoform),按当前 beta 重新接入 Core;提交保留两位作者的 Co-authored-by

TFboy1 and others added 2 commits September 11, 2026 23:15
Port the locked beta React 2.0 surfaces to egui and reconnect the shared Core
session, page actions, native windows, desktop bridges, input observation,
recording lifecycle, and verified Linux packaging. Add backend contracts,
Linux CI, and a separate manual GNOME/KDE acceptance record.

Base: 867a0d8

Co-authored-by: sim <sim@local>
Co-authored-by: aeoform <2790848120@qq.com>
@appergb

appergb commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

@H-Chris233 我没有 Linux

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants