Tetrigo 终端俄罗斯方块 Nix Flake实战:nix run、overlay与参数覆盖的完整手册 📅 2026/8/22 15:35:26 Tetrigo 终端俄罗斯方块 Nix Flake实战nix run、overlay与参数覆盖的完整手册【免费下载链接】tetrigoPlay Tetris in your terminal.项目地址: https://gitcode.com/gh_mirrors/te/tetrigoTetrigo 是一个用 Go 编写的终端俄罗斯方块让你在任意终端里直接玩 TetrisPlay Tetris in your terminal。项目自带的 flake.nix 提供了现成的 Nix 包与 overlay一条nix run即可运行也能集成进你自己的 Nix 配置并通过参数覆盖完成定制。本文带你一次掌握 nix run、overlay 与 override 三类实战用法。读懂 flake.nix包结构与可覆盖参数一览使用前先了解 flake 的组织方式核心逻辑都在 flake.nix 的outputs里分三层编译层用buildGoModule从项目源码编译出tetrigo二进制并用vendorHash锁定依赖保证构建可复现模块名见 go.mod。包装层writeShellApplication生成的 shell 包装器首次运行时自动创建~/.config/tetrigo目录、复制一份空的 SQLite 数据库tetrigo.db然后以--config/--db参数启动游戏。暴露层packages.default被pkgs.lib.makeOverridable包裹flake.nix从而支持对config与dbPath两个参数做覆盖——这是后文一切定制的基础。nix run 一键运行 Tetrigo最快安装步骤只要系统装有 Nix直接运行运行结束后包即被清理不留垃圾nix run github:Broderick-Westrope/tetrigo另外两个常用子命令覆盖不同场景命令适用场景nix run github:Broderick-Westrope/tetrigo直接运行用完即走nix build github:Broderick-Westrope/tetrigo只构建生成result符号链接适合离线复用nix shell github:Broderick-Westrope/tetrigo进入含tetrigo的临时 shell 想本地构建或调试 overlay 时可先克隆仓库再运行本地 flakegit clone https://gitcode.com/gh_mirrors/te/tetrigo cd tetrigo nix run .Overlay 集成3 行代码把 Tetrigo 加入自己的 Nix 项目如果你用 flake 或 NixOS 管理包推荐通过 overlay 引入。在 flake.nix 中overlay 的定义只有 3 行——把tetrigo注入pkgs即可。你自己的 flake 这样写{ inputs.tetrigo.url github:Broderick-Westrope/tetrigo; outputs { nixpkgs, tetrigo, ... }: { packages.x86_64-linux.default let pkgs import nixpkgs { system x86_64-linux; overlays [ tetrigo.overlays.default ]; }; in pkgs.tetrigo; }; }应用 overlay 后pkgs.tetrigo就出现在你的集合里可以像任何常规包一样被依赖、被覆盖。完整示例见 README.md。参数覆盖实战用 override 定制 config 与 dbPath 这是整个 flake 最灵活的部分。pkgs.tetrigo接受两个覆盖参数config一个 Nix attribute set字段与 example.config.toml 中的键一一对应dbPath一个.db文件路径用于注入现成的数据库。例如把最高等级限制为 20并顺手改一下按键pkgs.tetrigo.override { config { max_level 20; keys { force_quit [ q ]; exit [ esc ]; }; }; dbPath ./tetrigo.db; }覆盖的原理是把传入的config与example.config.toml的默认值做//合并后者优先生成新的config.toml写进包内——见 flake.nix 中的mkCfg辅助函数。也就是说配置文件随包一起冻结进 Nix store不同覆盖值会生成不同的 store 路径互不干扰、可回滚。运行后配置与数据库的位置XDG 目录与命令行标志包装器的运行时行为flake.nix可以概括为三步设置TETRIGO_HOME为~/.config/tetrigo并创建目录若目录中没有tetrigo.db就从包里复制一份空数据库执行tetrigo --config... --db...启动游戏。如果不走 flake 包装器二进制默认会在 XDG 配置目录找config.toml、在 XDG 数据目录找tetrigo.db同样支持--config与--db手动指定逻辑见 cmd/tetrigo/main.go。常见配置速查键位、主题与依赖锁定默认键位A/D左右移动、W硬降、S软降、Q/E旋转、Space/Enter提交、Escape暂停完整列表见 example.config.toml全部可通过override的config.keys修改。换主题配色修改config中的[theme.colors]与[theme.characters]覆盖后重新nix build即可生效。依赖锁定flake 输入版本由 flake.lock 锁定本地开发可用nix flake update显式升级保证团队构建一致。掌握以上三步——nix run快速体验、overlay 集成进配置、override覆盖config与dbPath——你就能把 Tetrigo 这个终端俄罗斯方块完全纳入 Nix 生态管理了 【免费下载链接】tetrigoPlay Tetris in your terminal.项目地址: https://gitcode.com/gh_mirrors/te/tetrigo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考