🦒

NixOSをミニマルインストールしてswayを動かす

2024/09/06に公開

はじめに

タイトルのとおりですが、ここからダウンロードしたNixOSのMinimal ISO Imageを使ってNixOSをインストールして、swayを動かすまでの手順を記した記事です。

USBのブートイメージの作成方法は他のディストリビューションと同様のため割愛しています。

手順

まずはsudo -iでrootユーザーにログインします。


こちら[1]の記事を参考にgdiskコマンドを使ってパーティションを分割します。

次にNixOSのマニュアル[2]を参考に、Ext4パーティション、スワップパーティション、bootパーティションを作成します。

mkfs.fat -F 32 -n BOOT /dev/nvme0n1p1
mkfs.ext4 -L nixos /dev/nvme0n1p2
mkswap /dev/nvme0n1p3

最後に、/mntへマウントとNixOSの設定ファイルを生成して[3]下準備は完了です。

mount /dev/nvme0n1p2 /mnt
mkdir -p /mnt/boot
mount -o umask=077 /dev/nvme0n1p1 /mnt/boot
swapon /dev/nvme0n1p3

nixos-generate-config --root /mnt

ここから/mnt/etc/nixos/configuration.nixファイルを修正していきます。

# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).

{ config, lib, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  # Set your time zone.
  time.timeZone = "Asia/Tokyo";

  # Select internationalisation properties.
  i18n.defaultLocale = "ja_JP.UTF-8";
  console = {
    useXkbConfig = true; # use xkb.options in tty.
  };

  # Enable the X11 windowing system.
  services.xserver = {
    xkb = {
      layout = "jp"; # 日本語配列にする
      variant = "";
      options = "terminate:ctrl_alt_bksp";
    };
    enable = true;
    displayManager = {
      gdm.enable = true;
    };
  };

  # swayを自動起動させるための設定
  services.displayManager = {
    defaultSession = "sway";
  };
  # swayを有効化
  programs.sway = {
    enable = true;
    wrapperFeatures.gtk = true;
  };

  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
    firefox
    gh
    git
    neovim
    vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
    wget
    # https://nixos.wiki/wiki/Sway 参照
    grim # screenshot functionality
    slurp # screenshot functionality
    wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
    mako # notification system developed by swaywm maintainer
  ];

  # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
  system.stateVersion = "24.05"; # Did you read the comment?

}

設定ファイルを修正しnixos-installを実行してください。ミスっているとエラーがでます。基本的にtypoだと思うので、頑張って修正してください。
最後にパスワードの実行を求められるので、rootのパスワードを設定してrebootで再起動してください。reboot前は日本語配列が適用されていないので、パスワードに記号を含める際には気を付けて入力してください。

再起動で画面が暗くなったタイミングでUSBメモリを抜いておきましょう。

GUIのログイン画面が表示されると成功です!!!

おわりに

あとはhome-managerを入れるなり、flakeを入れるなり好きにしてください。
ユーザーも作ってないミニマルな設定なので、まずはユーザー作ってくださいね。

参考

https://nixos.wiki/wiki/Sway

脚注
  1. https://qiita.com/hkaomua/items/75bef1cb25c6d63306f4 ↩︎

  2. https://nixos.org/manual/nixos/stable/index.html#sec-installation-manual-partitioning-formatting ↩︎

  3. https://nixos.org/manual/nixos/stable/index.html#sec-installation-manual-installing ↩︎

Discussion