見出し画像

【NixOS GUI設定ツール(nixgen)】エンジニアじゃない僕が作ってみた

まずはこれを見てください。

ベータ版ではありますが、NixOSのGUI設定ツールを作成してみました。
まだ荒削りな部分はたくさんありますが、文系の自分としてはよくやったと思います。
この記事では、制作過程で考えたことを記録しています。
技術的な内容はGithubに載せているので、そちらを見てください。


土曜の朝、ダイニングのテーブルで、僕はこの一行を思い出すために英語のドキュメントを何度も行き来していました。自分のパソコンに「外から接続できるようにする」という、ただそれだけの設定です。何度も書いたことがあるはずなのに、綴りが出てこない。

そのとき、ふと思いました。この設定項目、全部でいくつあるんだろう。

数えてみたら、24,517個ありました。

「作る側」は、ずっと向こう岸の話だった

会社で備品の発注をしていると、システムの話は必ず「向こうの部署」から降りてきます。

僕は総務職で、プログラムを書く仕事をしたことがありません。ExcelのマクロもAIに丸投げしています。自分のパソコンでLinuxを使ってはいますが、それは「設定ファイルをいじる側」であって、「道具を作る側」ではありませんでした。

道具は誰かが作ったものを選んで使う。不便があれば我慢するか、別の道具を探す。それが当たり前だと思っていました。

ソフトウェアの世界では、この線引きがずっとはっきりしていました。使う人と作る人のあいだには、プログラミング言語という分厚い壁があったからです。

コードは1行も書いていません。それでも完成しませんでした

1行です。今回作った道具のうち、僕が書いたコードの行数です。

残りは全部AIが書きました。僕がやったのは、日本語で「こうしたい」と伝えることと、出てきたものを自分のパソコンで動かすことだけです。

ここまでは、たぶん多くの方が想像する通りだと思います。「AIがあれば非エンジニアでも作れる」という話は、もう珍しくありません。

ただ、実際にやってみて意外だったのは、そこから完成までがまったく終わらなかったことです。

AIが書いたコードは、最初からきれいに動きました。エラーも出ませんでした。それなのに、僕の環境に持っていくと壊れる。しかも、壊れ方が毎回ちがう。

この話は最後にもう一度します。先に、何ができる道具なのかを書かせてください。

何ができるのか——検索窓と、フォームと、生成されたファイル

画面は3つに分かれています。

左が検索窓です。24,517個の設定項目と、144,200個のソフトウェアを、ここから探します。firewall と打てば、目的の項目が先頭に出ます。

真ん中がフォームです。項目を選ぶと、その項目の「型」に合った入力欄が出てきます。オンかオフかの設定ならスイッチ、数字なら数値入力、選択肢が決まっているならドロップダウン。ここが今回いちばん頭を使った部分で、全体の88.3%の項目に、専用の入力欄を用意できました。

右が、生成されたファイルです。フォームをいじるたびに、右側の内容がリアルタイムで書き換わっていきます。

もうひとつ、既存の設定ファイルを読み込む機能を付けました。いま使っている設定を放り込むと、中身がフォームに展開されます。

これが思わぬ副産物を生みました。読み込ませたときに、もう存在しない設定項目が見つかったんです。OSのバージョンが上がって名前が変わっていた項目が、僕の設定ファイルに残ったままになっていました。棚卸しの道具としても使えるとは、作る前は考えていませんでした。

誰のための道具か——正直に言うと、かなり狭いです

この道具は、誰の役に立つのか。宣伝の記事でこう書くのもどうかと思うのですが、対象はかなり限られます。

NixOSという、少し変わったLinuxを使っている人だけです。日本語話者に絞ったら、何人いるのか見当もつきません。

そのうえで、こういう方には効くはずです。

設定項目の名前を覚えていられない人。 つまり僕です。使う頻度が低い設定ほど、毎回ドキュメントを探すことになります。

始めたばかりの人。 最初の壁は「何を設定できるのかが分からない」ことです。検索窓に思いついた言葉を入れて、出てきたものを眺めるだけでも、地図の代わりになります。

バージョンを上げたばかりの人。 OSが新しくなると、設定項目は静かに増えたり消えたりします。手元のファイルを読み込ませれば、消えた項目に色が付いて出てきます。

逆に、向いていない人もはっきりしています。 設定項目をだいたい暗記していて、テキストエディタで直接書いたほうが速い人です。そういう方には、この道具は遠回りにしかなりません。作った本人が言うのも変ですが、慣れた人ほど使わなくていい道具だと思っています。

完成させたのは、AIではなく「壊れた回数」でした

6回。僕のパソコンの上で、この道具が壊れた回数です。

AIが書いたコードは、AIの中では完璧に動いていました。壊れたのは、僕が自分のパソコンで実際に使い始めてからです。

たとえば、こういうことが起きました。

生成されたファイルを実際にシステムに適用したら、パソコンが「ディスクの場所が分かりません」と言って止まりました。原因は、道具が設定ファイルの中の一行を、設定ではないと判断して捨てていたことでした。人間から見れば明らかに必要な行なのに、道具はそれを知りませんでした。

別の日には、意味の分からないエラーで止まりました。調べたら、生成されたファイルが自分自身を読み込もうとして、無限に繰り返していました。

こういう不具合は、AIには見つけられません。コードとしては何も間違っていないからです。間違っているのは「現実がどうなっているか」の理解のほうで、それを持っているのは、そのパソコンを毎日使っている人間だけでした。

そして、そこが分かれ目だったと思っています。

僕がこの道具を作れたのは、プログラムが書けるようになったからではありません。24,517個の設定項目を前にして毎回うんざりしていた当事者が、たまたま僕だったからです。AIは「どう書くか」を全部知っていましたが、「何に困っているか」は最後まで知りませんでした。

会社で新しい仕組みを入れるときも、同じことをよく思います。いちばん良い改善案を出すのは、たいてい、その作業を毎日やらされている人です。仕組みを設計できる人ではありません。

ただ、これまでは、その人に作る手段がありませんでした。だから改善案は要望として上に出され、優先順位をつけられ、たいていは順番待ちのまま忘れられていきます。総務にいると、この流れを毎年のように見ます。

手段のほうが降りてきた、というのが今回の実感でした。

ベータ版として公開します

仮想マシンにNixOSを新しく入れて、まっさらな状態から動かしてみました。手元の環境だけで確かめても、自分に都合のいい結果しか出ないと思ったからです。

そのうえで、nixgen という名前でGitHubに公開しました。MITライセンスなので、誰でも自由に使えます。

ベータ版と書いているのは、控えめに言っているわけではありません。 実際に、この記事を書いている時点で分かっている限界がいくつかあります。

まず、対応しているのは安定版のみです。開発版は仕組み上むずかしく、対応の予定もありません。

次に、内蔵のチェック機能は「文法の間違い」しか見つけられません。 値の中身が正しいかどうかまでは判定できないので、システムに適用する前に、必ず自分でも確認する必要があります。

そして、僕が試したのは自分のパソコンと、仮想マシンでの新規インストールだけです。他の環境で何が起きるかは、正直まだ分かりません。

インストール手順・使い方・できないことの一覧は、全部GitHubに英語と日本語で書きました。紹介ページも用意してあります。この記事には技術的な話をほとんど書いていないので、興味を持たれた方はそちらを見ていただければと思います。

不具合の報告や「ここが使いにくい」という声は、むしろ歓迎です。ここまでの不具合が全部、僕自身が実際に使って壊したことで見つかったものなので。

おわりに

いま、あの朝と同じダイニングのテーブルで、この記事を書いています。

services.openssh.enable の綴りは、たぶん来月にはまた忘れていると思います。でも、忘れても困らなくなりました。検索窓に ssh と打てばいいからです。

毎日困っていたことを、自分の手で解決できる。その手段が、プログラムを書けない人間の手にも渡ってきた。今回いちばん驚いたのは、出来上がった道具そのものより、そちらのほうでした。

作る側と使う側を隔てていた壁は、たぶんもう、思っているほど厚くありません。

この記事が面白かったら、スキとフォローをいただけると毎日更新の励みになります。作った道具の話は、使っていくうちにまた書くことがあると思います。

次の更新はこちら

関連記事はこちら

出典・補足

  • 設定項目数(24,517)・ソフトウェア数(144,200)・専用入力欄の対応率(88.3%)は、いずれも nixos-26.05 のデータを筆者が集計した数値です(2026年8月時点)。

  • 「型」の記述パターンが1,247種類あることも、同じデータからの集計です。

  • 本文中の不具合は、すべて筆者自身の環境および仮想マシンで実際に発生したものです。

  • ライセンス・動作環境・既知の制限はリポジトリのREADMEを参照してください。本記事は道具の紹介であり、動作を保証するものではありません。


フォロワー数が連続投稿122日目で0人→1000人を超えました!毎日更新継続の秘訣を書きました!

  • noteの毎日更新に挑戦して、挫折した経験がある人

  • ネタ出しと構成に時間がかかりすぎて、執筆が苦しくなっている人

  • AIを文章作成に使ってみたものの、「自分の声」が消えて違和感があった人

  • エンジニアではないけれど、Claude Codeを創作に活かしてみたい人

上記に一つでも当てはまる方がいたら、
なにかヒントが得られるかもしれません


僕のデスクセットアップで”ガチで”買ってよかったものをこちらで紹介しています。よかったら読んでください☺️

記事の誤字脱字の確認と修正、イラスト編集に生成AIを使用しています


X(旧Twitter)のアカウントはこちら!
良かったらフォローしてくれると嬉しいです😊

いいなと思ったら応援しよう!

はたけっち|テック&ガジェット雑学 よろしければ応援お願いします! いただいたチップはクリエイターとしての活動費に使わせていただきます!