2月も中旬になりましたが、個人的に忙しい状況が続いている事やKamurikiLinuxが開発終了してから色々とLinuxも試しているのですが、なかなか個人的にこれだ!っと思う様なLinuxが見つからずにメイン機はなかなか変更ができないのでExtrox Linuxにしているのですが、サブ機の方が定まらずに色々と情報収集などを行っていましたが、今回はNixOSを導入しましたので設定などについて記載したいと思います。
いつもお世話になっている薬局さんで相談して人参養栄湯と柴葛解肌湯を服用して調子が回復しましたので今回は花粉症などの影響もあってかなり鼻水や鼻詰まり、目のかゆみなどもありましたので鼻の症状が強いの場合は麻黄附子細辛湯、目の症状が強い場合は洗肝明目湯と人参養栄湯の併用で様子を見ることになりました。
今回の記事に関する目次
- NixOSについて
- 実は一度挫折してます…
- 設定について
NixOSは宣言型なので設定やソフトの導入は原則全て1つのファイルです。
主に設定する項目($sudo nano /etc/nixos/configuration.nixの編集)
機種ごとの変更1:CPUにm3やm5を使用している場合
機種ごとの変更2:Macbookを使用している場合
日本語フォント設定
日本語入力(Fcitx5の導入)
パッケージの導入について(全ユーザー向け)
パッケージの導入について(個人ユーザー向け)(未検証) - まとめ
- 注意事項
- 旧暦の元旦ですね…
- 追記1:LXQtのサスペンド・ハイバネート問題について
- 追記2:Clamtkのウイルス定義ファイルの更新について
NixOSについて
NixOSはLINUXではありますが、他の代表的なLinux(Fedora・Ubuntu・Debian・Archlinuxなど)の様に命令を入力して何か物事をするのではなく、原則システムの状態や設定などを決まったコードで宣言をしてリビルドする事でソフトを導入したりする事ができる再現性と信頼性を極限まで高めたLinuxです。
概念として宣言をするので日常的に使用しているsudo apt ◯◯やsudo pacman -S ◯◯という感じではなく、コンフィグファイルに入力してから環境を再構築させる事によってソフト(パッケージ)の導入や環境を整えるLINUXです。
大前提としてGUIのISOをUSBに書き込んだりして読み込ませた場合はインターネットに接続されている環境が必須となりますのでネットへ接続されていないとそもそもインストールをする事ができません。また、導入などに関してはあくまでも自己責任でお願いします。
実は一度挫折してます
実は数年前にNixOSは導入してみようと思ってインストールをしてみたのですが、不安定な部分が多かった点や恥ずかしい話ですが現在の様な感じでもなかったのですぐに諦めてしまった歴史がありますが、最近ふとまたNixOSに関しては導入などをしてみようと思ったので今回は下調べなどをある程度行った上でインストールなどを実施してみると意外とインストールと設定ができてしまいましたのでバージョンも上がって改善されてきてはいると思いますが、ちょっと驚きました。
設定について
NixOSは宣言型なので設定やソフトの導入は原則全て1つのファイルです。
この部分に関しては意外と多い説明として$nix-env -i ◯◯で導入という感じで記載される方も多いのですが、この&nix-envに関する構文は個人設定や一時的な使用などで用いる方法として紹介されている事も多く、ユーザーが増えても同じ環境にする場合やシステム設定やパッケージの導入が比較的簡単にできるLinuxでもあるNixOSのメリットでもある宣言型である意味がありませんし、逆に余計な部分が増えたりしますのでおすすめできないのではないかと思います。
ですので設定やソフトの導入に関しては$sudo nano /etc/nixos/configuration.nixに記述した上で$sudo nixos-rebuild switchを実行する事で勝手に解決してくれます。
主に設定する項目($sudo nano /etc/nixos/configuration.nixの編集)
まず、一番参考になったサイトは@feles-ao42さんが記載しているNIX OS入門のページでした。特に今までは命令形だった部分が宣言型の部分へ変更になっていますのでその辺りの概念がいまいち前回は理解しにくい感じでしたが、今回はわかりやすいサイトなども登場してきていますのでなんとかなりました。
項目の中で最初に設定する部分でGithubのページに機種が存在する場合にはnix-hardwareの設定を実施しても良いかもしれないけど機種がない際に明確な理由がなければ特に実施する必要もないかもしれません。Macbookpro A1502で試してみましたが、Fanなどは改善された感じがありますが内蔵のWifiアダプタは接続ができませんでした。
ただ、自分も設定や検証をしておりますが導入や設定は自己責任でお願いします。また、環境などによっても設定項目などは異なりますのでご注意ください。
機種ごとの変更1:CPUにm3やm5を使用している場合
最初に導入する機種のCPUがもしm3やm5などを使用している場合には、他のLINUXの様なちらつきではなく、NixOSの場合は勝手に不定期な感じで高頻度でフリーズして固まりますのでインストール後にすぐに対応が必要です。主にBootloaderの下辺りに下記を$sudo nano /etc/nixos/configuration.nixへ追加します。
#cpu m3.m5 bootup option
boot.kernelParams = [
“i915.enable_execlists=0”
“intel_idle.max_cstate=2”
“quiet”
“splash”
];
上記を記述後に$sudo nixos-rebuild switchを実行して再起動する事で自分の環境ではフリーズなどもしなくなりましたので動作も改善しました。イメージとしてGrubの記述している部分をコンフィグファイルで記述して読み込ませるのをNisOSではリビルドする事で反映されるイメージです。
機種ごとの変更2:Macbookを使用している場合
- ctrlとcapslockの入れ替えについて
$sudo nano /etc/nixos/configuration.nixにある# Configure keymap in X11の項目内にoptions = “ctrl:swapcaps”;と記述して $sudo nixos-rebuild switchを実行する事で改善する場合があります。ただし、デスクトップ環境によっては設定を無視されますのでその場合は諦めが必要です。(主にWayland環境では見事に無視されます。)
日本語フォント設定
フォント設定はフォントを導入してこのフォントを使用するとして設定をする事で解決しますので$sudo nano /etc/nixos/configuration.nixに記述します。
#font
fonts = {
enableDefaultPackages = true;
packages = with pkgs; [
noto-fonts
noto-fonts-cjk-sans
noto-fonts-color-emoji
liberation_ttf
fira-code
fira-code-symbols
mplus-outline-fonts.githubRelease
dina-font
proggyfonts
migu
];
fontconfig = {
defaultFonts = {
serif = [ “Noto Sans CJK JP” ];
sansSerif = [ “Noto Sans CJK JP” ];
monospace = [ “Noto Sans CjK JP” ];
};
};
};
上記を記述後に$sudo nixos-rebuild switchを実行する事で自分の環境では改善しました。基本的にnoto-fonts系統とSteamを使用する場合にはmigu程度でも良いかもしれません。ターミナルのコンソールに関しては設定にてフォントを変更するのが良いかと思います。(LXQtのQterminalの場合、デフォルトだと重なったりしますので調整必須です。)
日本語入力(Fcitx5の導入)
#fcitx5(https://wiki.nixos.org/wiki/Fcitx5)
i18n.inputMethod = {
enable = true;
type = “fcitx5”;
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
];
};
上記を記述後に$sudo nixos-rebuild switchを実行する事で自分の環境では改善しました。
パッケージの導入について(全ユーザー向け)
パッケージの導入に関しては原則としてenvironment.systemPackages = with pkgs; [ ]の中にパッケージ名を記載します。パッケージがあるかないかなどに関してはNIXOSの公式ページにあるパッケージ検索ページから検索し、pkg.を取り除いた形で記述します。
例えばパッケージ検索のページにてThunderbird(メーラー)を検索してNixOS Configurationの項目を見るとホームページ上では下記の様な記載があります。
environment.systemPackages = [
pkgs.thunderbird
];
ただし、現在のバージョンではenvironment.systemPackages = with pkgs;[ ]という形式に変更になっていますので単純にthunderbirdと記述します。#を先頭につけるとコメントになりますので項目別や分野別に分ける意味でも記載しておくとわかりやすくなるかと思います。保存後に$sudo nixos-rebuild switchを実行する事で勝手に導入してくれます。逆に削除したい場合は逆に削除(一時的な場合はコメント化)をしてから$sudo nixos-rebuild switchを実行する事で勝手に削除してくれます。
つまりパッケージを記述する(sudo apt install ◯◯やsudo pacman -S 〇〇)、コメント化や削除する(sudo apt autoremove 〇〇やsudo pacman -Rs 〇〇)といった感じになります。
自分で宣言をしても良いかもしれませんが、特段ソフトの量が多くなったりする等の特別に別にしたいという事がなければenvironment.systemPackages = with pkgs; [ ]の中に記述しても問題ないかと思います。
パッケージのアップデートなどは$sudo nixos-rebuild switch –upgradeという感じできるかと思います。
パッケージの導入について(個人ユーザー向け)(未検証)
個人ユーザー向けのパッケージ導入としては下記部分にあるpackages = with pkgs; [ ]の中にパッケージを記述した上で$sudo nixos-rebuild switchを実行すれば導入されるかと思いますが、未検証ですのでご了承ください。
例えば下記の場合、user1に対してthunderbirdを導入する例となります。
# Define a user account. Don’t forget to set a password with ‘passwd’.
users.users.user1 = {
isNormalUser = true;
description = “user1”;
extraGroups = [ “networkmanager” “wheel” ];
packages = with pkgs; [
thunderbird
];
};
NixOSのコンセプトとして1つのファイルに設定をまとめるというメリットがあると思われますのでユーザー登録などをする場合には記述されている例に従って設定してリビルドするのが一番なのかな…(その方がわかりやすいし、元に戻しやすいかもしれません。)っと中を見ながら感じました。また、全ユーザーで導入したパッケージはこちらに記述する必要はありません。
ただ、ユーザーを登録した場合にはパスワードの設定するのを忘れない様にする事とこの部分は自分が複数ユーザーで使用する事がなく検証していないので各環境で少し調整などの必要があるかと思います。
まとめ
最近感じるのは自分の環境が例えば複数環境の場合などの際に実際に導入から使用までにかかる時間をできるだけ短縮できる方法はないかと考えた際にMX linux(Extroxなども含む)、Antixなどはかなり負担が楽になっています。ただ、ある程度使用するパッケージが限られる場合や一度にトントントンっと導入してハイ終わりっといった感じで導入する場合にはNixOSの選択肢はありではないかと思いました。
デスクトップ環境ではBudgieなどのWaylandだとMacbookの場合に設定するctrl:swapcapsが無視されますし、LXQtだとサスペンドやハイバネーションからの復帰が困難で強制電源OFFなどが必要となりますのでおすすめできません。(※LXQtの部分は追記1にて解決しました。)
一番シンプルで使いやすいデスクトップ環境がXFCE(もしくは追記にて実施した場合にはLXQtも選択肢としてあり。)です。電源に関してはメニューからはスタンバイやハイバネートなどができない反面、ラップトップの蓋を閉めた場合などにハイバネートの指定が可能なので一時的な離席などの際に応用できるのではないかと思います。
最初はかなり大変ですが、慣れると命令文などを頻繁に打ち込む事がなくなりますのでかなり導入と管理は楽になりますし、依存などの心配も比較的考えなくても良い感じがありますので概念的な部分が把握できればインストールなども楽ではないかと思いますのでおすすめできると思います。
注意事項
主に注意する部分について下記のとおりです。
- 台数が多い場合で同じ環境にしたい場合に構築が楽にはなりますが、同じ機種でない限りはコンフィグファイルの変更は多分必要になりますので完全に一緒ではありません。
- 最初は理解なども含めて苦労しましたが、導入して宣言型に慣れると安定駆動しますのでかなり使いやすくなります。
- デスクトップ環境によってはインストール(Mateなどを選択した場合)に自分の場合は失敗しました。
LXQtだとスタンバイやハイバネーションから復帰が困難になります。- $sudo nixos-rebuild switchを実行した際にエラーが発生する場合はエラーで返されますので訂正が必要です。(これがある意味でシステムが壊れるのを防いでくれます。)
- メモリーをそこそこ使用しますので注意が必要です。
今日は旧暦の元旦ですね。
そういえば今日(2026年2月17日)は旧暦でいうところの元旦ですね…新暦でも今年に入ってからあまり良い感じはないので心機一転して良い年になってくれれば良いな…とも思っています。来月に入るとまたドタバタする感じもありますが、体調管理に気をつけながら過ごしていければと思っています。
追記1:LXQtのサスペンド・ハイバネート問題について
[追記:2026年2月18日]
NixOSのデスクトップ環境にLXQtを選択してNixOSをインストールした際にスリープやハイバネートからの復帰をする際に自分の場合は「password initialization failed」が何をやっても繰り返し表示されてしまい、強制的に電源を切らないと復帰できないという事態に陥りました。
この現象が発生する場合には現在のところ下記項目を$sudo nano /etc/nixos/configuration.nixにて下記を記述した上で$sudo nixos-rebuild switchを実施、再起動を行うと問題なく動作する事ができました。
# add fix suspend/hibernate
security.pam.services.xscreensaver.enable = true;
検証したパソコンとしてmacbook pro、macbook air 13、Windowsのノートパソコンで行っていますが、今のところ問題ない状況ですので改善できました。LXQtはなんとなくこの辺りで苦戦するイメージですが、今回のこの現象は単純にFixっぽい感じもしますが、困った方は試されてみても良いかもしれません。
他にも個人フォルダ関連のセットアップができていませんのでセッション設定にあるユーザーディレクトリの項目でフォルダを作って設定する必要があります。(特に個人フォルダに関して使わない…っという事であれば無視しても良さそうですが…)
追記2:Clamtkのウイルス定義ファイルの更新について
[追記:2026年2月18日]
一部サイトではClamtkはデフォルトパッケージではないのでFlathubなどから導入と説明するサイトなどもありますが、なんとなくもし導入する場合は主にリソースを常に喰いそうな感じでしたし、公式にパッケージが存在していないのかなあ…っといった感じでしたので検索してみると実はNixOSのパッケージに普通に存在していますのでenvironment.systemPackages = with pkgs; [ ]の中にclamtkを追記して$sudo nixos-rebuild switchを実施します。
ただし、この状態ですとFlathubのバージョンなどと異なりClamtk起動時にはシグネクチャ期限切れだから更新できないぜとエラーが出て定義ファイルなどはアップデートできない状況なので、$sudo nano /etc/nixos/configuration.nixにて下記を追加後に$sudo nixos-rebuild switchを実施する事で更新可能になります。
#clamtk update
services.clamav.daemon.enable = true;
services.clamav.updater.enable = true;
この情報はNixOSのWikiページに記載されていますが、ソフト導入後に接続ができないなどの状況が発生した場合にはサービスを許可する事で改善できる可能性があるという事ではないかと思います。(逆に考えると基本ロックしているのを解除するイメージではないかと…)
以上の方法で更新できるようになりました。
まあこんな感じです。
