環境設定

ここでは、私のサーバーにNixOSインストールしたときの設定の一部、および書き方の備忘録を残しておきます。

OSの設定

まずはインストールしたあとのコマンドなどについてです。

NixOsでは/etc/nixosに、OSやUser、ソフトの設定を行うようです。

最初は

configuration.nix
hardware-configuration.nix 

があります。

まずはconfiguration.nixを編集して設定などをかえます。

反映するためには

sudo nixos-rebuild switch

を打つ必要があります。

書き方は色々ですが、configuration.nix内では

  imports =
    [ ## Include the results of the hardware scan.
      ./hardware-configuration.nix
      ./i18n.nix
      ./host.nix
      ./avahi.nix
      ./user.nix
    ];

のような形でファイルを分離することもできます。

そこで色々設定しました。例えば以下

  boot.kernelPackages = pkgs.linuxPackages_7_1;

  nixpkgs.config.allowUnfree = true;

  environment.systemPackages = with pkgs; [
    wget
    git
    tmux
  ];

  programs.neovim = {
    enable = true;
    defaultEditor = true;
    vimAlias = true; 
  };

  networking.firewall.allowedTCPPorts = [ 3389 ];

  nix = {
    settings = {
      auto-optimise-store = true;
      experimental-features = ["nix-command" "flakes"];
    };

    gc = {
      automatic = true;
      dates = "weekly";
      options = "--delete-older-than 14d";
    };
  };

  hardware.graphics.enable = true;
  services.xserver.videoDrivers = [ "nvidia" ];
  hardware.nvidia.open = true;

などです。

初期設定時はsudo nixos-rebuild switchをそのまま使っていましたが、以降ではflake.nixで管理します。

適宜設定を書いたら、

nix flake update
sudo nixos-rebuild switch --flake .

で反映させます。

nix flake updateflake.nixを見て.lockファイルを作成してくれます。

これにより、nixpkgsの大元の最新が更新されても.lockで固定するようです。

ユーザーローカル設定

上記はOSとともにどのユーザーにも共通する設定です。

次にユーザーの独自設定、例えばシンタックスハイライトやシェル、Tmux設定など?を設定します。

その際はhome-managerを使います。

まずは

nix run home-manager/master -- init

masterブランチにあるhome-managerを取得して初期化。

すると~/.config/home-manager/flake.nixなどができるので適宜編集して

cd ~/.config/home-manager/
nix run home-manager/master -- switch --flake ./

で反映します。

今回はhome.nix内

programs.home-manager.enable = true;

を入れているので二回目以降はhome-managerが入っているので

home-manager switch

反映できます。

プロジェクト環境設定

最後にプロジェクトごとに環境を作って、そこに入る方法をかいて行きます。

でもflake.nixまでは基本は同じです。

cd tmp/root-test/
vim flake.nix
nix flake update

開発環境に入る方法は

nix develop

閉じる方法は

exit

覚書

nix run nixpkgs##ttysvr -- maze
nh search asciiqua 
nh os switch . 
nh home switch .