archisoでGNOMEデスクトップ環境のライブISOイメージを作成してみました。
Fluentテーマを利用していてすっきりした見た目になっています。

環境

  • Arch Linux
  • archiso 83-1

構築

一旦、カスタマイズ前の状態でISOを作成してみます。

  1. archisoをインストール
    sudo pacman -S archiso
  2. プロジェクトディレクトリを作成
    cp -r /usr/share/archiso/configs/releng/ archiso-gnome
    cd archiso-gnome
  3. ISOをビルド
    sudo rm -rf work
    time sudo mkarchiso -v -o ./ ./

    N100 CPUで7分30秒で生成し、サイズは1.2GB

  4. VirtualBox等で生成されたISOが起動するか確認する

カスタマイズ

カスタマイズ方針

  • ブートローダはGRUB
  • デスクトップ環境はGNOME
  • GNOME Shell拡張機能を有効化
  • テーマはFluent
  • できるだけパッケージを利用する(後でアップデートできるように)
  • GUIインストーラCalamaresを有効化(調査中)

カスタムローカルリポジトリ

AURパッケージや独自パッケージをインストールするためにカスタムローカルリポジトリを作成します。

  1. リポジトリディレクトリの作成

    sudo mkdir -p /opt/custom-repo/x86_64
    sudo chown -R $USER:$GROUP /opt/custom-repo
  2. パッケージファイルの準備
    インストール済のAURパッケージを更新します。

    paru

    AURヘルパーparuのキャッシュディレクトリ~/.cache/paru/clone/配下から過去にインストールしたパッケージファイルを抽出できます。最新バージョンを利用します。

    extension-manager-0.6.3-3-x86_64.pkg.tar.zst
    fluent-cursor-theme-git-2025.02.26.r6.ge8ac55a-1-any.pkg.tar.zst
    fluent-gtk-theme-2025.04.17-1-any.pkg.tar.zst
    fluent-icon-theme-git-2025.02.26.r6.ge8ac55a-1-any.pkg.tar.zst
    gnome-shell-extension-blur-my-shell-68-1-any.pkg.tar.zst
    gnome-shell-extension-openweatherrefined-139-1-any.pkg.tar.zst
    paru-bin-2.0.4-3-x86_64.pkg.tar.zst
    ttf-hackgen-2.10.0-1-any.pkg.tar.zst
    yay-12.5.0-1-x86_64.pkg.tar.zst
  3. パッケージファイルのコードを修正したい場合
    例えば拡張機能のmetadata.jsonを修正したい場合

    paru -G gnome-shell-extension-openweatherrefined
    cd gnome-shell-extension-openweatherrefined
    makepkg -o
    ./src/gnome-openweather-139/metadata.json
    "shell-version": [ "45", "46", "47", "48" ],
    makepkg -f -e --skipchecksums

    パッケージ(*.pkg.tar.zst)が生成される。インストール確認する。

    sudo pacman -U *.pkg.tar.zst
  4. パッケージファイルの配置
    パッケージファイル*.pkg.tar.zstをカスタムリポジトリディレクトリ/opt/custom-repo/x86_64/に配置します。

  5. リポジトリデータベースの生成

    cd /opt/custom-repo/x86_64/
    rm custom-repo.*
    repo-add /opt/custom-repo/x86_64/custom-repo.db.tar.zst /opt/custom-repo/x86_64/*.pkg.tar.zst
  6. カスタムローカルリポジトリの参照設定

    ./pacman.conf
    [custom-repo]
    SigLevel = Optional TrustAll
    Server = file:///opt/$repo/$arch

インストールするパッケージの指定

インストールしたいパッケージ名を設定ファイル./packages.x86_64に追記する。

インストールするファイルの配置

インストールしたいファイルをディレクトリ./airootfs/配下に格納する。

  • 壁紙の場合
    ./airootfs/usr/local/share/backgrounds/
  • ユーザのホームディレクトリに配置したい場合(.bashrc等)
    ./airootfs/etc/skel/

dconf設定

  1. dconfデータベースの作成
    ./airootfs/etc/dconf/配下にgdmとuserのデータベースを作成する。
  2. ユーザ設定
    ./airootfs/etc/dconf/db/local.d/に設定ファイルを格納する。
  • 背景画像(org/gnome/desktop/background)の設定
  • インタフェース(org/gnome/desktop/interface)の設定
  • ウィンドウボタン(org/gnome/desktop/wm/preferences)の設定
  • GNOME Shell(org/gnome/shell)の設定
    拡張機能の有効化、お気に入りアプリの指定、ツアーのスキップ 等
  • 各GNOME Shell拡張機能(org/gnome/shell/extensions/***)の設定

    現在の設定値の確認はdconf-editor
    設定値のエクスポートはdconf dump <パス>

ISO生成

  1. ISOをビルド
    sudo rm -rf work
    time sudo mkarchiso -v -o ./ ./

    N100 CPUで24分で生成し、サイズは2.7GB

TODO

  • GUIインストーラcalamaresの組み込み
    https://ktkr3d.github.io/2025/06/01/calamares/
  • 構築手順整備
  • GitHubにプロジェクトを登録
  • 生成したISOファイルをどこかに配置
  • CI
  • サイズ最適化(パッケージ削減)
    2025-06-01 2.3 GB 20分44秒
  • 起動速度最適化
  • 電源アイコンの非表示(Just Perfectionかdconfで)
  • pamac追加する?

テーマリソースの最適化

Fluent round dark

GTKテーマ

https://github.com/vinceliuice/Fluent-gtk-theme

git clone https://github.com/vinceliuice/Fluent-gtk-theme.git
cd Fluent-gtk-theme
./install.sh -c dark -s standard -i arch --tweaks round
出力先
~/.themes/Fluent-round-Dark/

アイコン、カーソルテーマ

https://github.com/vinceliuice/Fluent-icon-theme

git clone https://github.com/vinceliuice/Fluent-icon-theme.git
cd Fluent-icon-theme
./install.sh
出力先
~/.local/share/icons/Fluent/
~/.local/share/icons/Fluent-dark/
~/.local/share/icons/Fluent-light/
cd cursors
./install.sh
出力先
~/.local/share/icons/Fluent-cursors/
~/.local/share/icons/Fluent-dark-cursors/

壁紙

https://github.com/vinceliuice/Fluent-gtk-theme/tree/Wallpaper

git clone -b Wallpaper https://github.com/vinceliuice/Fluent-gtk-theme.git Wallpaper
cd Wallpaper
sudo ./install-gnome-backgrounds.sh
sudo rm -rf /usr/share/backgrounds/fluent/
sudo rm -rf /usr/share/backgrounds/fluent-mountain/
sudo rm /usr/share/gnome-background-properties/fluent.xml
sudo rm /usr/share/gnome-background-properties/fluent-mountain.xml
出力先
/usr/share/backgrounds/fluent-building/
fluent-building-day.jpg
fluent-building-morning.jpg
fluent-building-night.jpg
fluent-building-timed.xml

/usr/share/gnome-background-properties/
fluent-building.xml