Skip to content

Amai-ICE/nix-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

162 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

設計メモ

  1. ディレクトリ運用

    1. config/

      • 基本はoptionのみを記述する
      • 他のコンフィグをmkDefaultでtrueにすることもOK
      • 実装(services.*, programs.*)は書かない
    2. os/

      • NixOS固有の設定のみを記述する
      • services.* programs.* hardware.* boot.*
      • lib.mkIf <cfg>.enable { ... }以外に設定を記述してはならない
      • options/host/homeの設定は書かない
    3. home/

      • ユーザー側の環境設定のみ記述
      • home.packages programs.*
      • lib.mkIf <cfg>.enable { ... }以外に設定を記述してはならない
      • options/host/osの設定は書かない
    4. hosts/

      • マシン固有の設定を書く
      • my.*.enableの切替はOK
      • networking.hostName usernameなどの設定もOK
      • programs.*などの設定はダメ
      • my以外の*.enableもダメ
  2. default.nixの規則

    • default.nixは他ファイルのインポート専用
    • imports = [];以外のコードは書いてはならない。

ダメなやつ

{
  import = [./some.nix];
  environment.packages = with pkgs; [hogefuga];
}

いいやつ

let cfg = config.ice.os;
in {
    options.ice.os = {
        enable = lib.mkEnableOption "os config";

        xserver ...
    };
}

About

NixOSのデータ保存用

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages