patrickhaahr/nixos-config
GitHub: patrickhaahr/nixos-config
一套采用树突状架构与面向切面模块设计的 NixOS flake 配置,集成了 AI agent 编排和休眠式安全工具切面。
Stars: 1 | Forks: 0
# nixos-config
一个基于**树突状模式**构建的个人 NixOS flake:精简的 host 入口,丰富的面向切面的 module。一台机器,一个用户,无限重组。
主要的 host 被命名为 **nika**——以太阳神 Nika 命名,他是《海贼王》中带来解放与欢乐的神。
## 树突状结构
这种配置摒弃了容易腐化的单体式 host 文件,而是像晶体一样生长。系统行为被拆分为多个**切面**——即系统(桌面、shell、身份、黑客工具)中自包含的侧面,而 host 仅仅是这些切面的精简组合。
- **Host 组合**极其精简:选择你的硬件,选择你的切面,即可完成。
- **用户身份**是一个切面。**窗口管理器**是一个切面。**安全工具**也是一个切面。
- `modules/` 下的所有内容都会通过 `flake-parts` + `import-tree` 自动注册。
如果某个切面不存在,你就去培育一个新的。永远不要将功能生硬地塞进 host 文件中。
## 机器:`nika`
主力系统。哥本哈根时区,丹麦语键盘布局,AMD 芯片,加密的 root,以及通过 Lanzaboote 锁定的 Secure Boot。
**她所运行的:**
- **Niri** —— 一个可滚动的 Wayland 合成器,经过了封装并绑定了自定义逻辑。
- **Noctalia** —— 平滑覆盖在 Niri 之上的环境 shell / 桌面 UI 层。
- **Ghostty** —— 终端。
- **Helium** —— 浏览器。
- **Handy** —— 始终触手可及。
- **Signal**、**Spotify**(搭配 Spicetify)、**Steam**、**Sunshine** —— 通信、音频与游戏。
- **OpenHome** —— 连接物理世界的 IR 网桥;开机时启动 Bluetooth,关机时启动 Optical。
- **OpenLinkHub** —— 本地硬件状态 daemon。
- **Tailscale** —— 私有 mesh 网络。
`tester` 作为备用/测试 host 存在,但 `nika` 才是唯一的真实基准。
## Shell:Noctalia + Nushell
登录 shell 是 **Nushell**,装备了 Starship、zoxide 和 carapace。它不是 Bash,也不是 Zsh。它自顶向下全是结构化数据。
Noctalia 封装了桌面体验——壁纸缓存、GTK 暗黑模式默认设置,以及让 Niri 显得栩栩如生的视觉逻辑。
## Agents
该系统由 AI agents 辅助操控。此配置已将 **OpenCode** 完全配置妥当:
- **AGENTS.md** —— 关于 agent 行为和树突状规则的本地真实基准。
- **Skills** —— 本地自定义技能,外加一个 **skill-sources** pipeline,用于从社区导入并保持流行技能的更新。
- *外部提供者:* `grill-me`、`improve-codebase-architecture`、`tdd`、`agent-browser`、`frontend-design` 等等。
- *本地技能:* 针对 **C#**、**Rust** 和 **TypeScript** 的代码规范。
- **Agents** —— 用于专门任务的 sub-agent 定义,包括 **reviewer** 和 **simplifier**。
- **Plugins & Commands** —— agents 可以调用的扩展工具链。
Agents 在运作时对树突状布局有着充分的上下文认知。它们深知:*编辑切面,而不是 host*。
## 黑客工具库
这些工具在 repo 中以休眠切面的形式存在——准备在需要红队行动时随时嫁接到任何 host 上:
- **侦察:** `nmap`、`ffuf`、`feroxbuster`
- **Web:** `burpsuite`
- **破解:** `hashcat`、`hydra`、`john`
- **取证:** `binwalk`、`exiftool`
- **网络:** `wireshark`、`wireguard-tools`
- **字典:** `rockyou`,以及映射到 `~/hacking` 的指南和文档。
目前在 `nika` 上处于禁用状态,但只需取消注释即可启用。
## 值得注意的工具
| 类别 | 技术栈 |
|---|---|
| **编辑器** | Neovim |
| **终端** | Ghostty |
| **Shell** | Nushell + Starship |
| **导航** | yazi, fzf, zoxide |
| **环境** | direnv + nix-direnv |
## 构建
```
# 评估 flake
nix flake check
# 试运行 primary system
nix build .#nixosConfigurations.nika.config.system.build.toplevel --dry-run
```
*伴随 ❄️ 与偏执构建。*
标签:Dotfiles, Linux配置, NixOS, Wayland, 系统运维, 面向切面编程