# GXCL **Repository Path**: shenmo7192/gxcl ## Basic Information - **Project Name**: GXCL - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-10-20 - **Last Updated**: 2026-10-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GXCL **GXDE Crafting Launcher** —— 面向 GXDE 桌面的原生 Minecraft 启动器。 GXCL 使用 C++ / Qt 6 / [DTK2Widget-Qt6](https://gitee.com/GXDE-OS/dtk2widget-qt6) 编写。功能可对照 HMCL 进行规划,再以 GXCL 自己的方式实现;微软登录与 LittleSkin 账户流程参考 [LMAML](https://xphost008.github.io/lmaml/),并以官方协议文档为准。当前仅开发 Linux,不实现地区/IP 检测或下载封锁。 > 当前状态:**v0.1 开发中**。M0(项目基座)、M1(DTK2 UI 壳 + 真实版本清单)、M2(实例扫描与管理)、M3(下载安装,mock 验证)、M4(启动,fake Java + ARM64 原生库验证)与 M5 基础设置已实现,真实 1.20.1 下载/启动验证待确认。 > 路线图与里程碑见 [ROADMAP.md](ROADMAP.md)。 --- ## 界面预览 > 使用 `--demo` 示例数据截取;默认浅色主题,最后一张为深色主题。

首页 下载页

实例管理 账户

设置 安装进度

深色主题

## 当前实现(M0–M4 + M5 基础设置) - **DTK2 原生界面**:`DMainWindow` + 侧栏 + 六个页面(首页、实例、下载、账户、设置、安装预览); - **主题**:跟随系统 / 浅色 / 深色,`DApplication` 主题与调色板同步; - **真实版本清单**:Mojang 版本清单获取、本地缓存、正式版/快照/远古筛选与搜索(919 个版本、103 个正式版); - **离线账户**:本地 UUID 生成、添加/删除/切换、头像预览; - **真实实例管理**:扫描 `<游戏目录>/versions`、解析版本 JSON、识别 Fabric/Quilt/Forge/NeoForge、读取客户端 jar 与 Java 要求; - **实例操作**:导入其他 .minecraft 版本目录、复制、删除、重命名显示名、设为当前; - 导入目前只复制 `versions/` 版本目录,共享库/资源文件由 M3 的安装与修复流程补齐; - **游戏目录**:可在设置中切换,实例列表与首页/侧栏实时刷新; - **Java 探测**:扫描 JAVA_HOME、/usr/lib/jvm、PATH 与 GXCL 运行时目录,解析 release 文件; - **设置**:下载源、并发数、游戏目录、Java 运行时探测/手动选择与重新检测、最大内存、JVM 参数、窗口大小; - **下载器**:并发下载、官方/BMCLAPI 候选回退、`.part` 断点续传、SHA-1 校验、失败重试; - **原版安装**:版本 JSON、客户端 jar、库、natives 文件、资源索引与资源对象、logging 配置;磁盘空间检查; - **修复安装**:重复执行安装会跳过 SHA-1 正确的文件并补齐缺失/损坏文件; - **安装 UI**:安装进度、阶段状态、实时 MB/百分比、日志、取消与失败重试; - **启动**:Java 选择、版本继承合并、规则过滤、JVM/游戏参数模板、classpath、natives 解压、离线账户占位符; - **ARM64 修补**:Linux ARM64 下将 LWJGL 3.3.1 及更早版本提升到 3.3.2,并替换为 `natives-linux-arm64`(Maven Central),启动前自动补齐; - **进程与日志**:QProcess 启动、stdout/stderr 合并、游戏日志窗口、退出码提示、启动日志写入 `/logs/`; - **崩溃报告**:非零退出时自动查找 `/crash-reports/crash-*.txt`,在游戏日志中显示路径; - **工程化**:CMake、Qt Test(4 组)、日志、desktop/AppStream/debian 打包骨架、截图脚本。 > M3 已用本地 mock 仓库完成安装/修复/续传/镜像回退测试;M4 已用真实 JDK 启动 fake Java 主类,并真实下载 LWJGL 3.3.2 ARM64 原生库、解压 `.so`、以补丁后的 classpath 启动,验证参数构建、进程、日志与退出码。 > 真实 Minecraft 下载安装(约 1 GB)与真实客户端启动尚待确认后验证。 > 尚不可用的功能:Java 自动下载/管理、版本隔离、代理与完整 M5 设置;M6 加载器与模组管理。 > 交接说明见 [HANDOFF.md](HANDOFF.md)。 ## 特性规划 - [x] 项目基座、构建、测试、打包骨架(M0) - [x] DTK2 UI 壳、页面路由、主题、真实版本清单(M1) - [x] 离线账户界面 - [x] 实例扫描、游戏目录管理、导入/复制/删除/重命名(M2) - [x] 原版下载安装与 SHA-1 校验(M3,mock 验证) - [x] 启动游戏、离线账户、ARM64 修补、日志(M4,fake Java 验证) - [ ] Java 管理与完整设置(M5,基础游戏设置已完成) - [ ] 微软登录、LittleSkin 外置登录(v0.2) - [ ] Fabric / Quilt / Forge / NeoForge、Modrinth(v0.3) ## 构建 ### 依赖(Debian / GXDE) ```bash sudo apt install build-essential cmake ninja-build pkg-config \ qt6-base-dev qt6-svg-dev qt6-tools-dev libarchive-dev \ libdtk2widget6-dev librsvg2-dev ``` > `libdtk2widget6-dev` 会带入 DTK6 Core / Log 等依赖;`debhelper` 仅在打包阶段需要。 ### 构建 Debian 包 仓库根目录包含标准 `debian/` 目录,可使用 `dpkg-buildpackage` 生成适用于当前架构的 `.deb`: ```bash sudo apt install debhelper-compat devscripts sudo mk-build-deps -i -r debian/control dpkg-buildpackage -us -uc -b sudo apt install ../gxcl_0.1.0-1_$(dpkg --print-architecture).deb ``` 构建产物写入仓库上级目录。也可先用 `dpkg-checkbuilddeps` 检查依赖;构建依赖清单见 `debian/control`。 ### 编译运行 ```bash cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build ./build/gxcl ``` ### 开发模式 ```bash # 示例实例 / 账户 ./build/gxcl --demo # 以深色主题启动 ./build/gxcl --demo --theme dark # 执行单元测试 ctest --test-dir build --output-on-failure # 生成全部页面截图(Xvfb,无需窗口管理器) ./tools/screenshot.sh ./build/gxcl THEME=dark ./tools/screenshot.sh ./build/gxcl ``` 可用页面:`home`、`instances`、`downloads`、`accounts`、`settings`、`install`。 单页截图: ```bash xvfb-run -a ./build/gxcl --demo --page home \ --screenshot /tmp/gxcl-home.png --screenshot-delay 2500 ``` ## 目录结构 ```text src/app 应用初始化、配置、日志、演示数据 src/core 网络、版本元数据、离线账户、路径 src/ui 主窗口、侧栏、页面、通用控件 src/resources 图标、qrc tests Qt Test 单元测试 tools 截图脚本 packaging desktop、AppStream、debian 骨架 docs 设计与截图 ``` ## 配置与日志 | 用途 | 路径 | |---|---| | 配置 | `~/.config/gxcl/config.json` | | 实例元数据 | `<游戏目录>/versions//gxcl-instance.json` | | 缓存 | `~/.cache/gxcl/` | | 日志 | `~/.local/state/gxcl/logs/gxcl.log` | ## 说明 - GXCL 是非官方启动器,与 Mojang / Microsoft 无关联。 - 不随包分发 Minecraft 游戏资源;游戏文件在用户操作时从官方或镜像下载。 - 不实现地区检测、IP 查询或下载封锁;镜像仅作为用户可选项。 - 本项目使用 GPL-3.0 许可证(`LICENSE`)。 - 作者:shenmo ``