NixOSマシンを自分好みにカスタマイズする
はじめに
前回の記事では ThinkPad に NixOS をインストールしました。 今回の記事では、このマシンを自分好みにカスタマイズします。 NixOS でシステムの構成するには、設定ファイル configuration.nix を編集し、ビルドコマンドを実行します。 本記事では、マシンのカスタマイズに何をしたかとそのために configuration.nix をどのように編集したかを書いていきます。 また、この記事はカスタマイズした NixOS マシン上で書いており、文章の推敲にはtextlintを使用しています。
タイムゾーンの設定
time.timeZone = "Asia/Tokyo"
GUIの環境の導入
services.xserver.enable = true;
で, X11 を使えるようにします。
また, ウィンドウマネージャとして i3 を使用します。
他に、以下の設定を加えています。
最終的に、以下のコードになります。
services.xserver = { enable = true; windowManager.i3.enable = true; xkbOptions = "ctrl:swapcaps"; libinput.enable = true; libinput.naturalScrolling = true; };
サウンドを使えるようにする
あまり使ってませんが、一応。
sound.enable = true; hardware.pulseaudio.enable = true;
Wi-Fi の設定
無線 LAN を使えるようにするための Wi-Fi の設定のコードは以下です。 ハッシュされた PSK は wpa_passphrase コマンドで生成しました。 ちなみに、平文の場合は networking.wireless.networks.<ESSID>.psk を使います。 また、DHCP で IP アドレスをサーバから自動で取得できるようにしました。
networking.wireless.enable = true; networking.wireless.networks = { <ESSID> = { pskRaw = "<ハッシュされたPSK>"; }; } networking.useDHCP = false; # is deprecated, therefore explicitly set to false here. networking.interfaces.<インタフェース名>.useDHCP = true;
日本語入力の設定
インプットメソッドに fcitx を使います。また、日本語入力の変換に mozc を使いました。 ビルド後(後述)、再起動すると fcitx が自動で立ち上がります。 fcitx-configtool で「Keyboard - English(US)」「Mozc」を設定し、Ctrl+Space で切り替えるようにしました。
i18n.inputMethod = { enabled = "fcitx"; fcitx.engines = with pkgs.fcitx-engines; [ mozc ]; };
システムに様々なソフトウェアをインストールする
使いたいパッケージを記述します。 Vim はパッケージから取得すると、クリップボードのサポートがないものを取得します。 この Vim は、システムのクリップボードを共有しないため、不便です。 そのため、vimHugeX を指定しています。
environment.systemPackages = with pkgs; [ vimHugeX w3m git chromium rxvt_unicode ];
日常ユーザーの作成
ビルド後、root アカウントからpasswd
でパスワードを後から設定しました。
users.users.ykonomi = { isNormalUser = true; home = "/home/ykonomi"; extraGroups = [ "wheel" ]; };
システム構成のビルド
作成した configuration.nix を元に、以下のコマンドより、システム構成をビルドし切り替えます。
システム構成が大きく変わりのもあり、正しく変更されたかの確認のため、再起動もしてます。
ちなみに、システム構成のビルドだけを試しに行う場合は nixos-rebuild build
を実行します。
また、システム構成を切り替えるがデフォルトのシステム構成にしない場合は nixos-rebuild test
を実行します。
nixos-rebuild switch reboot
最後に
以上により、NixOS マシンのシステム設定しました。 一度にすべての設定をしたわけではないため、再現性に乏しいです。 特に、日本語入力は、はじめは Mozc が起動しなかったため、一時期 Anthy を使用していました。1 設定を configuration.nix 1ファイルでできることで、自分がどのようにシステム設定したかをひと目でわかるのがいいと感じています。 他の利点は、ビルドしたシステム設定間を切り替えることができる点です。 トライアンドエラーでお世話になりました。
-
xterm を urxvt に変えたあたり、うまくいくように。 一方、xterm に戻しても Mozc が使用できたので真相は闇の中です。その際、いろいろいじりすぎたのであまり参考にはならないと思います。↩