nixos配置高内聚维护方案

驱动层

nixos 系统包未包含,或者无法自动识别,需要安装的驱动,比如 4060 驱动、指纹驱动。

  • nix 配置:在 nixos/modules/hardware/<硬件型号规格>.nix 注释如何下载和手动安装,以及需要打开的配置项设定。
  • 配套脚本:nixos/modules/hardware/<硬件型号规格>-<functionname>.sh

nixos 配置层

仅在 nix 文件里做好声明和设定即可定义的硬件参数、系统内核、组件、服务、环境、pkg 等官方仓库包。

  • nix 配置:nixos/modules/system|desktop|hardware *.nix
  • 配套脚本:与 xxx.nix 同目录位置下的 xxx-<functionname>.sh;如果需要数据目录则命名为 xxx-data。

手动安装层

nixos 官方之外的东西,或者属于用户使用场景不同,并非通用基础高频的软件和软件参数自定义。

  • 在已有的 modules/hardware|system|desktop 体系里,每个无法配置、或者不需要 rebuild 来固化(那么重)、用户手动操作即可的软件或设置修改,则在这些已有体系的对应子目录下,生成所需的手册文件和脚本,供用户下次阅读操作,集中管理。
  • 原先的 softnixos/ 非安装包都可以迁移过来;原先的 softnixos/ 可以用于存放用户需要的安装包程序。
  • 驱动程序和软件安装包本地不存这类体积大的,保存操作说明 txt 即可,需要时根据链接资源逐步操作和设置。
  • 有些冷门资源不好找的,用户自行处理,不纳入管理体系。

命名约定(nix / txt / sh)

一个功能点 = 一个 topic,同目录下三类文件:

  • <topic>.nix —— 声明(rebuild 消费;注释 import 即卸载)
  • <topic>.md —— 手册 / 操作步骤(纯文本:能直读、能直接复制命令)
  • <topic>-<fn>.sh —— 配套脚本
  • <topic>-data/ —— 数据目录(如需)