Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

qingchenyouforcc/NeurolingsCE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

408 Commits

Repository files navigation

NeurolingsCE icon NeurolingsCE

English | 中文

跨平台桌面看板娘(Shimeji)应用,基于 Shijima-Qt 深度修改而来。

使用 C++17 / Qt6 构建,支持 Windows、Linux 和 macOS。

NeurolingsCE screenshot

特性

  • 🖥️ 跨平台支持(Windows / Linux / macOS)
  • 🎭 兼容 Shimeji-ee 格式的看板娘资源包
  • 📦 拖放导入看板娘压缩包
  • 🛠️ 制作页 — 检查 Shimeji zip 并转换为 .mascot
  • 🪟 窗口模式 — 在独立沙盒窗口中运行看板娘
  • 🖱️ 鼠标交互 — 拖拽、右键菜单
  • 📡 HTTP REST API(localhost:32456)
  • 🌐 多语言支持(English / 中文简体)
  • 🔊 可选的音效支持(Qt Multimedia)
  • 🖥️ 多显示器支持
  • 📐 自定义缩放

下载

文档

📖 Wiki 文档 — 包含快速开始、构建指南、架构说明、HTTP API、常见问题等完整文档。

制作

主界面的"制作"页可以把旧 Shimeji .zip 资源包转换为 NeurolingsCE 使用的 .mascot 包。选择 zip 后先执行内容检查;如果压缩包中包含多只桌宠,可以勾选要转换的条目。转换结果会写入你选择的输出目录,不会自动导入模板库。

日志与调试

NeurolingsCE 默认启用 session 日志。每次启动都会创建独立日志文件,用于记录 GUI/CLI 启动、HTTP API、Local IPC、看板娘导入/召唤/关闭、素材包处理、更新检查、音频、平台窗口观察和崩溃路径等关键操作。

日志级别包括:

  • debug:详细调试信息,包括经过采样或节流的高频运行状态。
  • info:正常生命周期、服务启动停止、用户可见操作和成功摘要。
  • warning:可恢复异常、无效输入、跳过项或业务 4xx 类失败。
  • error:操作失败、服务错误、导入失败、网络/解析失败等需要排查的问题。
  • critical:崩溃、Qt fatal、std::terminate、SEH 未处理异常等不可恢复错误。

默认最低日志级别为 info。需要更详细日志时,可以在启动前设置环境变量:

$env:NEUROLINGSCE_LOG_LEVEL="debug"
$env:NEUROLINGSCE_LOG_STDERR="1"
.\NeurolingsCE.exe

支持的 NEUROLINGSCE_LOG_LEVEL 值为 debuginfowarningerrorcriticalNEUROLINGSCE_LOG_STDERR=1 会把日志同时输出到 stderr,适合从终端启动或调试 CLI。

Windows 默认日志目录:

%LOCALAPPDATA%\NeurolingsCE\log\YYYY-MM-DD\neurolingsce-HH-mm-ss-zzz.log

Linux/macOS 会优先写入 Qt 的 AppLocalDataLocation/log,如果不可用则回退到用户 home 下的 .neurolingsce/log;如果首选目录无法创建,程序会尝试写入系统临时目录下的 NeurolingsCE/log

排查问题时,建议按下面步骤收集日志:

  1. 设置 NEUROLINGSCE_LOG_LEVEL=debug
  2. 重新启动 NeurolingsCE 或 NeurolingsCE-cli
  3. 复现问题。
  4. 附上最新 session log。日志会记录路径、ID、命令名、状态码、错误摘要和关键计数,但不会记录完整请求体、图片内容、XML/JSON 大文本或二进制内容。

构建

前置依赖

  • C++17 编译器(MSVC 2022 / GCC / Clang)
  • Qt 6.8+(Core, Gui, Widgets, Concurrent, LinguistTools)
  • CMake 3.21+(Windows/MSVC)或 Make(Linux/macOS)

剩余外部子模块需要初始化(libshimejifindercpp-httplibElaWidgetTools):

git submodule update --init --recursive

Windows(MSVC + CMake)

cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DQt6_DIR=D:/Qt/6.8.3/msvc2022_64/lib/cmake/Qt6
cmake --build build

也可以直接用 Visual Studio 打开项目,在 CMakeSettings.json 中已配置好 x64-Debugx64-Release 两个方案。

Windows 快速打包 bin 目录

如果你已经通过 Visual Studio/CMake 构建好了 out/build/x64-Release/bin,可以直接运行:

powershell -ExecutionPolicy Bypass -File .\src\tools\package-windows-bin.ps1

默认行为:

  • 读取 VERSION.txt 生成输出目录名
  • out/build/x64-Release/bin 复制到 out/package/NeurolingsCE_windows_x86_64_v<version>
  • VERSION_NAME=Alpha,会自动追加 a 后缀,例如 NeurolingsCE_windows_x86_64_v0.3.0a
  • 默认排除 log/shijima_stdout.txtshijima_stderr.txt
  • 同时生成 zip 包,便于测试分发或作为后续 MSI 输入目录

常用参数:

powershell -ExecutionPolicy Bypass -File .\src\tools\package-windows-bin.ps1 `
 -SourceDir out/build/x64-Release/bin `
 -OutputRoot out/package `
 -SkipVcRedist `
 -SkipZip

Windows MSI(WiX)

仓库现在也包含了一个 WiX 打包入口,建议流程是:

  1. 先运行 package-windows-bin.ps1 生成干净发布目录
  2. 再运行 installer/wix/build-msi.ps1 生成 MSI
  3. 如果需要把 vc_redist.x64.exe 正式串进安装流程,再运行 installer/wix/build-bundle.ps1 生成引导安装器 EXE
powershell -ExecutionPolicy Bypass -File .\installer\wix\build-msi.ps1
powershell -ExecutionPolicy Bypass -File .\installer\wix\build-bundle.ps1

如果你还没安装 WiX,可以先只生成 .wxs 文件检查内容:

powershell -ExecutionPolicy Bypass -File .\installer\wix\build-msi.ps1 -GenerateOnly

Windows(MinGW 交叉编译 via Docker)

docker build -t neurolingsce-dev dev-docker
docker run -e CONFIG=release --rm -v "$(pwd)":/work neurolingsce-dev bash -c 'mingw64-make -j$(nproc)'

Linux

安装 Qt6 开发依赖后:

CONFIG=release make -j$(nproc)

macOS

支持 Apple Silicon(arm64)与 Intel(x86_64)。Qt6 可通过 Homebrew 或 MacPorts 安装;下面以 Homebrew 为推荐路径,因为它和 macOS 上的 CMake 流程对齐得最好。

  1. 安装依赖(Homebrew,推荐):
brew install qt qttools libarchive cmake pkg-config

或使用 MacPorts:

sudo port install qt6-qtbase qt6-qtmultimedia qt6-qttools pkgconfig libarchive cmake
  1. 构建(推荐使用 CMake,与其他平台一致):
cmake -B build -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release \
 -DQt6_DIR="$(brew --prefix qtbase)/lib/cmake/Qt6"
cmake --build build -j$(sysctl -n hw.ncpu)

构建产物会输出到 build/bin/,包括 NeurolingsCENeurolingsCE-cli 以及测试可执行文件 NeurolingsCETests

如果使用 MacPorts,把 Qt6_DIR 改为 /opt/local/libexec/qt6/lib/cmake/Qt6 即可。

  1. (备选)使用顶层 Makefile:
CONFIG=release make -j$(sysctl -n hw.ncpu)

common.mk 在 macOS 上会自动探测 Homebrew 的 qtbaseqtmultimediaqttoolslibarchive;如果同时安装了 MacPorts,也会回退到 /opt/local/libexec/qt6。如需指定其他 Qt 路径,可在命令行覆盖:

CONFIG=release make QT_MACOS_PATH=/your/Qt/lib \
 MOC=/your/Qt/libexec/moc RCC=/your/Qt/libexec/rcc \
 LRELEASE=/your/Qt/bin/lrelease -j$(sysctl -n hw.ncpu)

平台说明

Windows

仅支持 x64 工具链。已在 Windows 11 上测试,Windows 10 应该也可以工作。窗口追踪开箱即用。

Linux

支持 KDE Plasma 6 和 GNOME 46(Wayland / X11)。首次运行时会自动安装 shell 插件来获取前台窗口信息:

  • KDE — 对用户透明,无需操作。
  • GNOME — 首次运行后需要重新登录以重启 Shell。程序会给出相应提示。
  • 其他桌面环境 — 窗口追踪不可用。

macOS

需要辅助功能(Accessibility)权限来获取前台窗口。最低系统版本 macOS 13。

HTTP API

内置 HTTP REST API 运行在 http://127.0.0.1:32456,可用于外部程序控制看板娘。

详细文档见 src/docs/HTTP-API.md

CLI

项目现在提供独立的控制台 CLI 程序 NeurolingsCE-cli。模板管理命令可独立运行; 运行时 mascot 控制命令会在需要时自动启动 NeurolingsCE 运行时,再通过本地 IPC 控制它。

  • 全局选项:--quiet--json--connect-timeout-ms--read-timeout-ms
  • 文档命令:--help/-h--summon/-s--close--close-all--stop--mascot/-m--list/-l--version/-v
  • --summon 支持两种形式:
    • --summon mascot --name NAME [label]
    • --summon mascot --data-id ID [label]
    • --summon random [label]
  • label 是面向用户的 CLI 标签,不等于运行时 mascot ID,只在当前应用进程存活期间有效
  • --mascot/-m 支持模板管理:
    • --mascot list
    • --mascot add ZIP
    • --mascot remove MASCOT
  • --mascot/-m 不需要主程序已运行;它直接读写本机模板目录
  • --stop 会关闭全部桌宠并停止 NeurolingsCE 运行时;如果运行时未启动,不会为了停止而新启动它
  • 兼容旧命令:listlist-loadedspawnalterdismissdismiss-all
  • --json 会输出稳定的结构化结果与错误对象
  • --host--port 不再支持;CLI 不走 HTTP
  • 在 Windows 上建议直接调用 NeurolingsCE-cli.exe,这样 shell/agent 能稳定获取退出码

详细命令格式见 src/docs/HTTP-API.md 中的 CLI 部分。

NeurolingsCE-Skill

仓库内提供了一个配套 skill:neurolingsce-skill/,用于指导 agent 通过 NeurolingsCE-cli.exe 控制已安装的桌宠模板。

  • skill 名称:NeurolingsCE-Skill
  • 机器名:neurolingsce-skill
  • 默认行为:只调用 NeurolingsCE-cli.exe;除非用户明确要求,否则不启动 NeurolingsCE.exe、不打开 GUI、也不启动 runtime mode
  • 语义约定:当用户说"帮我生成一只 xxx 桌宠"时,含义是 summon 一个已安装模板,不是生成桌宠资源、图片、sprites、XML 或 ZIP
  • 如果没有找到对应模板,agent 应直接提示"没有这个模板 / 模板未安装",而不是自行创建或替换成别的桌宠

常用辅助脚本:

python neurolingsce-skill/scripts/find_neurolingsce_cli.py
python neurolingsce-skill/scripts/summon_companion.py
  • find_neurolingsce_cli.py:在显式路径、常见构建目录、PATH 和常见安装位置中搜索 NeurolingsCE-cli.exe,并记录到 neurolingsce-skill/cache/neurolingsce-cli-path.json
  • summon_companion.py:随机召唤一只非默认已安装桌宠;如果只有默认模板,则只返回"没有可用的非默认模板",不会创建资源

项目结构

NeurolingsCE/
├── src/app/ # Qt 应用层(core/runtime/ui 分层)
├── src/platform/Platform/ # 平台抽象层(Windows/Linux/macOS)
├── include/shijima-qt/ # 公共头文件
├── src/app/core/shijima-engine/ # 内置核心看板娘模拟引擎源码
├── libshimejifinder/ # [子模块] 看板娘资源包导入/解压
├── cpp-httplib/ # [子模块] HTTP 服务器(header-only)
├── translations/ # i18n 翻译文件
├── cmake/ # CMake 辅助脚本
├── src/assets/ # 内置默认看板娘资源
└── src/packaging/ # 桌面入口、图标、AppStream 元信息

src/app 目前按职责拆分为三层:

  • src/app/core/:资源加载、音效、HTTP API、压缩包导入等基础能力
  • src/app/runtime/:ShijimaManager 的环境同步、导入流程、生命周期与运行时调度
  • src/app/ui/:管理器窗口、托盘、页面构建、桌宠窗口交互、对话框与部件

实现切片统一使用"主体 + 职责"的文件命名,例如 ManagerImportWorkflow.ccManagerWindowSetup.ccMascotWidgetRendering.cc,方便按文件名直接定位业务边界。

致谢

本项目基于 pixelomerShijima-Qt 开发,在此基础上进行了大量修改和功能增强。

本项目最早是为 "Neurolings" 而做的迁移版本,现在转为通用Shimeji桌宠核心/管理器程序

核心依赖:

软件 ICO 致谢:

联系方式

如果你对neuro社区项目开发感兴趣的话

可以联系我加入NeuForge Center

请加入STNC了解更多内容

STNC蜂群技术情报中心QQ群 125081756

STNC项目反馈QQ群 423902950

许可证

本项目基于 GNU General Public License v3.0 开源。

GPLv3 附加条款

在遵守 GPLv3 的基础上,任何再发布、修改版本或衍生作品还必须遵守以下要求:

  • 保留原始版权声明、许可证声明以及相关归属信息。
  • 不得冒充本项目的官方版本,或以任何可能造成混淆的方式表示其为官方发布版本。
  • 未经项目权利人明确许可,不得使用本项目的商标、Logo、项目名称,或以这些标识暗示官方背书、认可或关联。

上游项目 Shijima-Qt 的 README 见 Shijima-Qt_README.md

NeurolingsCE icon


广告位

(如果你需要宣传请来联系我)

如果你对neuro同人文感兴趣的话,请加入文学社谢谢喵

NeuroEcho文学社QQ群1063898428


Star 趋势

Star History Chart

About

Shimeji-Qt desktop pet neuro custom edition. NeurolingsCE's core code repository. Deep Modification of Shijima-Qt.

Topics

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /