这不是 bug,是个功能性分享——给需要在 Linux 上用 JASM 的人留个记录。
JASM 前端是 WinUI 3(Windows App SDK),锁死 Windows、Wine 也跑不了。我把表现层用 Avalonia 重写了,GIMI-ModManager.Core 逻辑库原样复用,在 Linux(X11/Wayland)原生运行、不需要 Wine。
不打算提 PR(独立跨平台前端、跟主线分歧较大),只在此留个记录方便 Linux 用户搜到。
分支:https://github.com/Loong0x00/JASM/tree/linux-avalonia-port
已实现(对齐原版)
- 5 游戏(GIMI/SRMI/ZZMI/WWMI/EFMI)+ 游戏内切换
- 角色网格:分类标签 / 元素·武器筛选 / 排序 / 置顶 / 隐藏角色 / mod 数徽章 / 搜索
- 角色详情两栏(mod 列表 + ModPane):启用禁用 · 多选批量启用禁用删除移动 · 页内搜索
- ModPane:封面图查看+设置 · 名字/作者/链接/描述编辑 · keyswap(.ini)编辑器 · 复制路径
- Mod 安装器(文件夹 + .zip/.rar/.7z 压缩包 + 目标角色选择)
- 预设(建自当前/应用/重命名/复制/删/只读)· 模组总览 · 导出全部模组 · 主题 · 中/英语言
为在 Linux 跑通给 Core 打的补丁
Mod.Delete:Windows 回收站 API 在 Linux 崩 → 改用 freedesktop XDG 回收站
Mod.MoveTo:跨挂载点移动 catch IOException 回退 copy+delete
ArchiveService.ExtractArchive:原来按目标文件夹扩展名选解压器 → SharpCompress 分支在 Linux 静默解压不出东西(Windows 靠捆绑 7z.exe 掩盖)
CharacterModList 的 FileSystemWatcher:inotify 实例上限耗尽时优雅降级,不再启动崩溃
栈:Avalonia 11.3 + FluentAvaloniaUI + CommunityToolkit.Mvvm,需 .NET 10 SDK,带 xUnit 集成测试(Linux 全绿)。
cd src/GIMI-ModManager.Avalonia && dotnet run -c Release。
JASM 前端是 WinUI 3(Windows App SDK),锁死 Windows、Wine 也跑不了。我把表现层用 Avalonia 重写了,
GIMI-ModManager.Core逻辑库原样复用,在 Linux(X11/Wayland)原生运行、不需要 Wine。不打算提 PR(独立跨平台前端、跟主线分歧较大),只在此留个记录方便 Linux 用户搜到。
分支:https://github.com/Loong0x00/JASM/tree/linux-avalonia-port
已实现(对齐原版)
为在 Linux 跑通给 Core 打的补丁
Mod.Delete:Windows 回收站 API 在 Linux 崩 → 改用 freedesktop XDG 回收站Mod.MoveTo:跨挂载点移动 catch IOException 回退 copy+deleteArchiveService.ExtractArchive:原来按目标文件夹扩展名选解压器 → SharpCompress 分支在 Linux 静默解压不出东西(Windows 靠捆绑 7z.exe 掩盖)CharacterModList的 FileSystemWatcher:inotify 实例上限耗尽时优雅降级,不再启动崩溃栈:Avalonia 11.3 + FluentAvaloniaUI + CommunityToolkit.Mvvm,需 .NET 10 SDK,带 xUnit 集成测试(Linux 全绿)。
cd src/GIMI-ModManager.Avalonia && dotnet run -c Release。