Repository navigation
v1.0.0-rc.1 — the first release candidate
Pre-releaseThe first release candidate for 1.0. Please try it and report anything odd — see Reporting at the bottom.
nix run github:hatake716/nixgen/v1.0.0-rc.1日本語は下にあります。
English
From a fresh NixOS install to a machine you can use, without knowing a single option name. Search all 24,557 settings and 144,245 packages, fill in values with widgets that know the type, pick a desktop that works on the first login, and take away three files you can read before anything on your machine changes.
Three reasons
1. A desktop that works on the first login. Enabling a desktop is one line anyone can write. What nobody tells you is the rest: the greeter and its Wayland mode, the session name NixOS checks at build time, XWayland, the shell's autostart unit and the PATH it needs to launch anything, the terminal its default config asks for by name, the keyring, the bar that would otherwise appear twice. Every one of those was found by running a real machine and hitting the failure.
Nine desktops: GNOME, KDE Plasma, Xfce, Cinnamon, COSMIC, LXQt, i3, and two Wayland compositors that arrive with a shell already on them — Sway + noctalia and niri + noctalia, both confirmed on a real machine.
2. Japanese, set up all the way through. Locale, console keymap, and the keyboard layout for X and Wayland — two different settings, and the Wayland one is an environment variable nothing documents. Then fcitx5 with mozc, its front end matched to the session your desktop actually runs. The app itself says everything in both languages, and guards option paths from machine translation.
3. Nothing on your machine changes until you say so. nixgen writes new files and never edits yours; a configuration.nix you import is only ever read. It has no privileged endpoint at all — the server cannot change your system, because a local server with no authentication is a door any page in your browser could knock on. It hands you one command instead.
Also in this candidate
- Kernel, shell, graphics, language, region and Flatpak in one click each
- 189 common apps in twelve categories, with icons taken from your own machine
- Reads your existing
configuration.nix: the Setup fields take what they own,importsis merged, everything else becomes cards you can edit - Reading a
generated.nixback sets the Options dropdowns to what that file chose
How it is checked
tools/fuzz.py and tools/import_check.py run on every push, along with tools/browser_check.py — eleven points driving the real app in a browser. Before this tag, tools/eval_check.py evaluated the generated bundle as an actual NixOS system and read its claims back out of it: the session name the display manager offers, the keyring lines in the built pam.d/login, the sway config's include and missing bar, the Wayland layout variable. The round-tripped module evaluates identically.
Known limits
- NixOS only. Tested on the author's own machines, x86_64 by default.
- Hyprland is hidden. Its generated config overrides what nixgen writes — the keyboard layout, the terminal, the warning banner — so a working desktop could not be promised from the form alone. Importing a file that carries it still works.
Check syntaxruns the Nix parser and cannot judge types. Runsudo nixos-rebuild dry-buildbefore you switch.
日本語
NixOS をインストールした直後から、使えるマシンまで。オプション名を1つも知らないまま、24,557件の設定と144,245件のパッケージを検索し、型に応じたウィジェットで値を入れ、初回ログインから使えるデスクトップを選び、マシンに何も起きないうちに中身を読める3つのファイルを持ち帰れます。
3つの理由
1. 初回ログインから使えるデスクトップ。 デスクトップを有効にする1行は誰でも書けます。誰も教えてくれないのはその周りの残り全部です。グリーターとその Wayland モード、NixOS がビルド時に検証するセッション名、XWayland、シェルの自動起動ユニットとアプリを起動できる PATH、既定設定が名指しする端末、キーリング、放っておくと2つ出るバー。どれも実機で動かして、実際に踏んで分かったものです。
デスクトップは9種類。GNOME・KDE Plasma・Xfce・Cinnamon・COSMIC・LXQt・i3、そしてシェルが最初から載った状態で出てくる Wayland コンポジタ2つ、Sway + noctalia と niri + noctalia(どちらも実機で確認済み)。
2. 日本語環境が、通しで整う。 ロケール、コンソールのキーマップ、そして X と Wayland 両方のキーボードレイアウト。この2つは別の設定で、Wayland 側はどこにも書かれていない環境変数です。さらに fcitx5 と mozc、そして実際に動くセッションに合わせたフロントエンド。アプリ自身も全文を日英併記で表示し、オプション名は機械翻訳から守ります。
3. あなたが実行するまで、マシンには何も起きない。 nixgen は新しいファイルを作るだけで、あなたのファイルは書き換えません。読み込んだ configuration.nix は最後まで読むだけです。特権の口は1つもありません。 認証の無いローカルサーバーは、ブラウザで開いた任意のページから叩ける入口になるからです。代わりに読めるコマンドを1つ渡します。
この候補に入っているもの
- カーネル・シェル・グラフィックス・言語・地域・Flatpak が各1クリック
- 定番アプリ12分野189個。アイコンはお使いのマシンにあるものから出します
- 既存の
configuration.nixを読めます。Setup タブが持つ項目はその入力欄へ、importsは統合、それ以外は編集できるカードに generated.nixを読み戻すと、Options のプルダウンもその内容に合わせて選択されます
どう検査しているか
毎プッシュで tools/fuzz.py と tools/import_check.py、そして実アプリをブラウザで操作する11項目の tools/browser_check.py が走ります。このタグの前には tools/eval_check.py で、生成した3ファイルを実際の NixOS システムとして評価し、その主張を読み戻しました(ログイン画面が提示するセッション名、生成された pam.d/login のキーリング行、sway 設定の include とバーの不在、Wayland のレイアウト変数)。往復後のモジュールも同一に評価されます。
既知の制限
- NixOS 専用。 検証は作者のマシンで行っており、既定は x86_64 です。
- Hyprland は非表示です。 自動生成される設定がキーボード配列・端末・警告バナーを握り、nixgen が書くものを上書きするため、フォームだけでは「動くデスクトップ」を約束できません。Hyprland を含むファイルの取り込みは従来どおり動きます。
Check syntaxは Nix のパーサであって、型は判定できません。 切り替える前にsudo nixos-rebuild dry-buildを実行してください。
Reporting — 不具合の報告
生成されたファイルの2行目に、書き出した nixgen の版が入っています。報告にはこの行を添えてください。
# channel: nixos-26.05 generated: 2026-08-12 10:00 nixgen: 2026-08-12o
Nix は github: の指す先を1時間記憶します。すぐ最新版が欲しいときは --refresh を付けてください。
This candidate is build 2026-08-12o. Nix remembers a github: reference for an hour — add --refresh if you want the newest build right away.