Arch Linux + Hyprlandでタイリングデスクトップを構築する — インストールからWayland環境までのロードマップ
TL;DRベースシステムのインストール、GPUドライバとオーディオと日本語環境、Hyprland本体と起動方法、dwindle/masterのタイリング設定、waybarやrofiなど周辺ツール、という5段階で組む。Hyprlandは0.55で設定がhyprlangからLuaに移行中なので、ブログのコピペではなく公式Wikiの当該バージョンを一次情報として読むことが最重要。
普段使いのデスクトップにLinuxを選ぶ人はまだ少数派ですが、一度自分で組んでみる価値は十分にあります。キーボード中心で素早く操作でき、ウィンドウを重ねず画面を分割して使い切れて、環境そのものを設定ファイル、つまりコードとして管理できる。この再現性と操作感は、macOSやWindowsの既製のデスクトップにはない魅力です。本記事のゴールは、Arch LinuxをPCにインストールし、その上にWaylandコンポジタのHyprlandでタイリング型のデスクトップを構築することです。タイリングウィンドウマネージャは、ウィンドウを重ねずに画面を分割して敷き詰める方式で、マウス操作を減らしキーボード中心で作業したい人に向いています。なぜX11ではなくWaylandなのかというと、Hyprlandが最初からWayland専用に設計されており、これからLinuxデスクトップを始めるなら新しいWayland側に乗るほうが素直だからです。
全体は大きく5つのフェーズに分けて考えると迷いません。ベースシステム、デスクトップの土台(GPU・音・日本語)、Hyprland本体と起動方法、タイリングの設定、周辺ツール。順番を飛ばすと「起動はしたが何も操作できない」状態に陥りやすいので、下の層から順に積み上げます。
フェーズ1:ベースシステムをCUIまで入れる
まずはArch本体の素のインストールです。ディスクをcfdiskで切り、mkfsでファイルシステムを作り、pacstrapでベースを流し込み、arch-chrootで設定します。デスクトップ特有の追加は、CPUのマイクロコード(Intelならintel-ucode、AMDならamd-ucode)と、後で使う一般ユーザーの作成・sudo設定くらいです。手順を全部手で覚える学習が目的でなければ、archinstallという公式の対話インストーラで土台だけ短時間で済ませ、Hyprland以降に集中する選び方もあります。どちらが正解ということはなく、学びの密度と時間のトレードオフです。
# パーティションを切る(EFI + ルート)
cfdisk /dev/nvme0n1
# ファイルシステム作成とマウント
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mount /dev/nvme0n1p2 /mnt
mount --mkdir /dev/nvme0n1p1 /mnt/boot
# ベース+マイクロコードを導入し新環境へ
pacstrap -K /mnt base linux linux-firmware intel-ucode vim sudo
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
chroot後にロケール、タイムゾーン、ホスト名、ブートローダー(systemd-bootまたはgrub)、そしてネットワークを設定します。デスクトップでは無線も扱う場面が多いので、NetworkManagerを入れて有効化しておくと素直です。再起動してCUIでログインできれば第1フェーズは完了です。ここまではまだGUIの気配すらありません。
フェーズ2:GPUドライバ・オーディオ・日本語環境
Waylandコンポジタは描画をGPUに強く依存するので、ドライバを先に入れます。Intel/AMDの内蔵GPUならmesaで素直に動きますが、NVIDIAは事情が異なり、専用ドライバと環境変数の追加設定が必要で、Wayland環境では相対的に手間がかかります。NVIDIA機を使うなら、Hyprland公式WikiのNVIDIA専用ページを必ず先に読んでください。音はpipewire系(pipewire + wireplumber + pipewire-pulse)が現在の標準です。さらに日本語環境として、CJKフォントのnoto-fonts-cjkと、日本語入力のfcitx5-mozcを入れておきます。英語圏のチュートリアルはこの2つを省きがちですが、入れないと文字化けしたり日本語が打てなかったりします。
# GPU(Intel / AMD 内蔵の例)
sudo pacman -S mesa
# オーディオ
sudo pacman -S pipewire wireplumber pipewire-pulse
# フォントと日本語入力
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji fcitx5-im fcitx5-mozc
フェーズ3:Hyprland本体と、起動方法を選ぶ
Hyprland本体は公式リポジトリにありpacman -S hyprlandで入ります。かつてはwlrootsを別途用意する説明が多かったのですが、現在のHyprlandは独自のaquamarineバックエンドに移行しており、その手順はもう古い情報です。ブログ記事の鮮度に注意すべき典型例といえます。起動方法は、ディスプレイマネージャ(sddmやgreetd、軽量なly)から選ぶ方式と、ttyログイン後にシェルから起動する方式があります。systemdと統合したい場合はuwsmという選択肢もありますが、公式は「一部に不具合があり、多くの利用者には非uwsmを推奨」としているので、最初は無理に使わないほうが無難です。
# 本体+認証エージェント+デスクトップポータル
sudo pacman -S hyprland hyprpolkitagent xdg-desktop-portal-hyprland
# まずはttyから起動し、画面が出るか確認する
# (新しい版では crash recovery 付きの start-hyprland ラッパーも使えます)
Hyprland
ここで一度Hyprlandの画面が出れば、土台は成功です。ただし重要な注意点があります。Hyprlandは0.55で設定ファイルの方式がhyprland.conf(hyprlang)からLua(hyprland.lua)へ移行しました。古い記事の設定をそのまま貼っても、動かないか非推奨になっている可能性があります。設定を書き始める前に、必ず公式Wikiで自分が入れたバージョンの記法を確認してください。
フェーズ4:タイリングの中身 — dwindleとmaster
Hyprlandのタイリングには大きく2つのレイアウトがあります。dwindleは新しいウィンドウを二分木で分割していく方式で、親領域の縦横比に応じて左右分割か上下分割かが自動的に決まります。bspwmを触ったことがあれば馴染みやすい挙動です。もう一つのmasterは、1枚の「マスター」ウィンドウを大きく置き、残りを脇のスタックに積む方式で、メインの作業領域を常に大きく保ちたい人に向きます。どちらを既定にするかをレイアウト設定で選び、あとはキーバインドでフォーカス移動・ウィンドウの入れ替え・分割比の変更・ワークスペース切り替えを割り当てていきます。タイリングWMの使い勝手の大半はこのキーバインド設計で決まるので、最初は欲張らず、フォーカス移動と起動・終了・ワークスペース移動だけを固めるのがおすすめです。具体的なキーや変数名はバージョンで変わるため、公式Wikiのdwindle/masterの該当ページを一次情報として参照してください。
フェーズ5:デスクトップとして使える状態にする
Hyprland単体では、ステータスバーも通知も壁紙もありません。これらは別々のプログラムを組み合わせて足していきます。最低限そろえると実用になるのは、ステータスバーのwaybar、アプリ起動ランチャーのwofiまたはrofi-wayland、通知のdunstまたはmako、壁紙のhyprpaper、画面ロックのhyprlockと自動ロックのhypridle、クリップボードのwl-clipboard、スクリーンショットのhyprshotあたりです。端末(kittyやfoot)とファイルマネージャ(thunarなど)も忘れずに入れます。これらを起動時に自動で立ち上げる設定をHyprland側に書けば、ログインしてすぐ作業できるデスクトップになります。
sudo pacman -S waybar wofi dunst hyprpaper hyprlock hypridle wl-clipboard hyprshot kitty thunar
つまずきやすい所と、情報源の当て方
このロードマップで最も大事なのは、手順そのものより情報源の選び方です。Hyprlandは更新が速く、設定の記法もこの1年で大きく変わっています。だからこそ、個人ブログのコマンドをそのまま貼るのではなく、Arch WikiのHyprlandページとHyprland公式Wikiを一次情報として、自分が入れたバージョンに対応する記述を読む癖をつけてください。詰まりやすいのはNVIDIA環境、ローリングリリース更新後の不調、そして古い記法のコピペの3つで、いずれも「これはどのバージョンの話か」を常に意識すれば切り分けられます。そして完成した設定は、必ずdotfilesとしてGitで管理しておくと、壊れたときや別マシンへ移すときに一気に楽になります。ここで身につく「公式の一次情報を当てる」「設定をコードとして管理する」という習慣は、そのままクラウドやインフラの実務にも効いてきます。