<feed xmlns='http://www.w3.org/2005/Atom'>
<title>DropOut/src-tauri, branch release</title>
<subtitle>This is a new Minecraft launcher that is currently in development. It is designed to be a modern, fast and efficient launcher. It is written in Rust. Aims to be a Reproducible Minecraft Workspace Manager.</subtitle>
<id>https://git.hydroroll.team/DropOut/atom?h=release</id>
<link rel='self' href='https://git.hydroroll.team/DropOut/atom?h=release'/>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/'/>
<updated>2026-04-04T15:21:36Z</updated>
<entry>
<title>feat: add NVIDIA Prime environment variables for Linux hybrid graphics (#155)</title>
<updated>2026-04-04T15:21:36Z</updated>
<author>
<name>krypton</name>
<email>bot@hydroroll.team</email>
</author>
<published>2026-04-04T15:21:36Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=0c77fd0c210f0f7578b94f8f177b40471b28e721'/>
<id>urn:sha1:0c77fd0c210f0f7578b94f8f177b40471b28e721</id>
<content type='text'>
## Summary
- Inject __NV_PRIME_RENDER_OFFLOAD=1 and
__GLX_VENDOR_LIBRARY_NAME=nvidia environment variables when launching
Minecraft on Linux
- Enables discrete GPU usage on Linux systems with hybrid graphics
(NVIDIA + Intel/AMD)
- Only applies on Linux via #[cfg(target_os = "linux")]

## Changes
- Modified src-tauri/src/main.rs to inject NVIDIA Prime environment
variables before spawning the Java process

## Test Plan
- On a Linux system with hybrid graphics (NVIDIA + Intel/AMD), launch
the game and verify the discrete GPU is being used
- Can check with nvidia-smi or glxinfo to confirm GPU usage

Closes #154

## Summary by Sourcery

Inject GPU-related environment variables when launching the game on
Linux to support hybrid graphics configurations.

New Features:
- Enable discrete GPU usage on Linux hybrid graphics systems by setting
NVIDIA Prime and AMD DRI_PRIME environment variables before starting the
game process.

Enhancements:
- Log when GPU environment variables are injected on Linux to aid
debugging of hybrid graphics setups.

---------

Co-authored-by: 简律纯 &lt;i@jyunko.cn&gt;
Co-authored-by: sourcery-ai[bot] &lt;58596630+sourcery-ai[bot]@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>refactor(modpack): split modpack module and extract curseforge api (#127)</title>
<updated>2026-04-02T03:27:09Z</updated>
<author>
<name>苏向夜</name>
<email>46275354+fu050409@users.noreply.github.com</email>
</author>
<published>2026-04-02T03:27:09Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=e5f94912615e69c32c353fd6a63790e9b16685e4'/>
<id>urn:sha1:e5f94912615e69c32c353fd6a63790e9b16685e4</id>
<content type='text'>
Co-authored-by: wsrsq &lt;wsrsq001@163.com&gt;
Co-authored-by: 简律纯 &lt;i@jyunko.cn&gt;
Co-authored-by: HsiangNianian &lt;44714368+HsiangNianian@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>feat: add GPU acceleration JVM parameters support (#140)</title>
<updated>2026-04-01T06:38:05Z</updated>
<author>
<name>krypton</name>
<email>bot@hydroroll.team</email>
</author>
<published>2026-04-01T06:38:05Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=2888c21bbb71b7c6524cb6bb6f673c849abefb66'/>
<id>urn:sha1:2888c21bbb71b7c6524cb6bb6f673c849abefb66</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore(release): bump versions</title>
<updated>2026-03-29T14:26:42Z</updated>
<author>
<name>github-actions[bot]</name>
<email>github-actions[bot]@users.noreply.github.com</email>
</author>
<published>2026-03-29T14:26:42Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=9a7997e95d9d19685e6fdfc2cf4aa29358d3c14e'/>
<id>urn:sha1:9a7997e95d9d19685e6fdfc2cf4aa29358d3c14e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(env): fix vite config to integrate with tauri</title>
<updated>2026-03-28T17:00:12Z</updated>
<author>
<name>苏向夜</name>
<email>fu050409@163.com</email>
</author>
<published>2026-03-28T17:00:12Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=ef478b29605afbd1c3ec88184b64960e8ad01e71'/>
<id>urn:sha1:ef478b29605afbd1c3ec88184b64960e8ad01e71</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge branch 'main' into feature/multi-instances</title>
<updated>2026-03-26T01:01:31Z</updated>
<author>
<name>简律纯</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-03-26T01:01:31Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=3a31d3004b2814cd8a26d49a0f8a96636411dcd2'/>
<id>urn:sha1:3a31d3004b2814cd8a26d49a0f8a96636411dcd2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>chore(pnpm): fix pnpm lock file</title>
<updated>2026-03-26T00:47:19Z</updated>
<author>
<name>苏向夜</name>
<email>fu050409@163.com</email>
</author>
<published>2026-03-26T00:16:59Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=b95cd870357fcb0973bb02b1ec2d2fc061eafaec'/>
<id>urn:sha1:b95cd870357fcb0973bb02b1ec2d2fc061eafaec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(instance): InstanceManager -&gt; InstanceState</title>
<updated>2026-03-18T05:43:12Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-03-18T05:43:12Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=1aeb0d1f5cf6c5c2492e749e3c25c3649b591c59'/>
<id>urn:sha1:1aeb0d1f5cf6c5c2492e749e3c25c3649b591c59</id>
<content type='text'>
</content>
</entry>
<entry>
<title>fix(macro): update ts export macro</title>
<updated>2026-03-18T04:14:09Z</updated>
<author>
<name>HsiangNianian</name>
<email>i@jyunko.cn</email>
</author>
<published>2026-03-18T04:12:45Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=e8929b27444908b1f90b9ed3a4d52c5fd63fdf8c'/>
<id>urn:sha1:e8929b27444908b1f90b9ed3a4d52c5fd63fdf8c</id>
<content type='text'>
https://github.com/HydroRoll-Team/DropOut/pull/117#discussion_r2922886584
</content>
</entry>
<entry>
<title>fix(modpack): 将 CurseForge API Key 改为编译期可选常量 (#118)</title>
<updated>2026-03-18T03:57:17Z</updated>
<author>
<name>Begonia, HE</name>
<email>163421589+BegoniaHe@users.noreply.github.com</email>
</author>
<published>2026-03-18T03:57:17Z</published>
<link rel='alternate' type='text/html' href='https://git.hydroroll.team/DropOut/commit/?id=8c913f2685383bcfa154c947a43571a8d33679ae'/>
<id>urn:sha1:8c913f2685383bcfa154c947a43571a8d33679ae</id>
<content type='text'>
# fix(modpack): 将 CurseForge API Key 改为编译期可选常量

修复 `env!()` 宏在开发者本地无 `CURSEFORGE_API_KEY` 时导致编译失败的问题，改用 `option_env!()`
+ build.rs 中的 `dotenvy` 读取 .env 文件，实现编译期嵌入、缺失时优雅降级。

## 更改类型

- [x] Bug 修复（修复问题的非破坏性更改）
- [ ] 新功能（添加功能的非破坏性更改）
- [ ] 破坏性更改（会导致现有功能无法正常工作的修复或功能）
- [ ] 文档更新
- [ ] UI/UX 改进
- [ ] 性能优化
- [ ] 代码重构（无功能性更改）
- [x] 配置更改
- [ ] 测试添加或更新

## LLM 生成代码声明

- [x] 此 PR 不包含 LLM 生成的代码，我**提供**质量担保

## 相关 Issue

相关 #110 #117

## 更改内容

### 后端 (Rust)

- modpack.rs：将 `env!("CURSEFORGE_API_KEY")` 替换为 `const
CURSEFORGE_API_KEY: Option&lt;&amp;str&gt; =
option_env!("CURSEFORGE_API_KEY")`，key 不存在时编译为 `None`，调用 CurseForge
功能时返回友好错误而非 panic
- build.rs：添加 `dotenvy::dotenv()` 调用，允许通过 .env 文件在编译期注入 key，并注册
`cargo:rerun-if-changed` / `cargo:rerun-if-env-changed` 确保增量构建正确

### 前端 (Svelte)

- 无

### 配置

- Cargo.toml：在 `[build-dependencies]` 中添加 `dotenvy = { version = "0.15",
default-features = false }`
- .gitignore：添加 .env / `.env.local` 忽略规则，防止 key 被意外提交
- .env.example：新增示例文件，说明可选配置项及获取方式

## 测试

### 测试环境

- **操作系统**：Fedora Linux 6.19.6-300.fc44.x86_64 x86_64
- **DropOut 版本**：0.2.0-alpha.5
- **测试的 Minecraft 版本**：N/A
- **Mod 加载器**：N/A

### 测试用例

- [ ] 已在 Windows 上测试
- [ ] 已在 macOS 上测试
- [x] 已在 Linux 上测试
- [ ] 已测试原版 Minecraft
- [ ] 已测试 Fabric
- [ ] 已测试 Forge
- [ ] 已测试游戏启动
- [ ] 已测试登录流程
- [ ] 已测试 Java 检测/下载

### 测试步骤

1. 不设置 `CURSEFORGE_API_KEY`，不创建 .env 文件，直接执行 `cargo check` → 应编译通过（无报错）
2. 创建 .env 文件并写入 `CURSEFORGE_API_KEY=test_key`，执行 `cargo check` →
应编译通过，key 被嵌入二进制
3. 不含 key 的构建中触发 CurseForge modpack 导入 → 应返回友好错误提示而非 panic

## 检查清单

### 代码质量

- [x] 我的代码遵循项目的代码风格指南
- [x] 我已对自己的代码进行了自审
- [ ] 我已对难以理解的区域添加了注释
- [x] 我的更改没有产生新的警告或错误

### 测试验证

- [x] 我已在本地测试了我的更改
- [ ] 我已添加测试来证明我的修复有效或功能正常工作
- [x] 新的和现有的单元测试在本地通过
- [x] 我至少在一个目标平台上进行了测试

### 文档更新

- [ ] 我已相应地更新了文档
- [ ] 如有需要，我已更新 README
- [ ] 我已在必要处添加/更新代码注释

### 依赖项

- [x] 我已检查没有添加不必要的依赖项
- [x] 所有新依赖项都已正确记录
- [x] Cargo.lock 已更新

## 附加说明

`dotenvy` 仅作为 **build-dependency**，不会进入最终二进制。官方发布构建通过 CI 环境变量注入
key，普通开发者无需任何操作即可正常编译和运行。

Co-authored-by: 简律纯 &lt;i@jyunko.cn&gt;</content>
</entry>
</feed>
