はじめに
Surface Pro 9にArch Linuxをインストールした際の備忘録です。
とあるきっかけでArch Linuxを再インストールしたのですが、手順をあまり覚えておらずグダグダだったので、この機会にまとめてみました。
と言っても、作業の大部分は他の方が書いた記事とほぼ同じなので、この記事では他の方の記事と異なる部分(ブートローダーやウィンドウマネージャーの設定)について書きます。
Arch Linuxインストール
インストールメディア作成からデスクトップ環境構築の直前までは、Meatwo310氏の下記の記事の通りに進めました。
記事内ではブートローダーはGRUBですが、私はsystemd-bootにしました。理由は、後述するセキュアブート有効化の際、GRUB関連で躓いてしまったためです。GRUBのほうが多機能ですが、私はWindows 11とArch Linuxをデュアルブートしたいだけなので、ぱっと見GRUBよりセキュアブートが簡単そうなsystemd-bootを選びました。
セキュアブートを有効化しなくてもいいならば、先程の記事のとおりにGRUBをインストールしたほうが簡単かもしれません。
systemd-boot導入
systemd-bootはArch Linuxインストールの際にデフォルトで入っているので、手動で追加のパッケージを入れる必要はありません。
記事のGRUBをインストールする部分でbootctl installを実行すれば、EFIシステムパーティションにsystemd-bootがインストールされます。
インストール後は、ローダーの設定や追加を行います。これについては、ArchWikiのsystemd-bootのページに詳しいことが書いてあるので、そちらの方を見ると良いと思います。
一応、私の環境のloader.confとsurface.confを下に載せておきます。
default surface.conf
timeout 10
console-mode auto
title Arch Linux (Surface Kernel)
linux /vmlinuz-linux-surface
initrd /intel-ucode.img
initrd /initramfs-linux-surface.img
options root=PARTUUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
ArchWikiの方ではPARTUUIDではなくUUIDの方で書かれていますが、PARTUUIDでも大丈夫です。UUIDやPARTUUIDは、root権限でblkidコマンドを使えば確認できます。
最初にArch Linuxを入れたときは、windows.confを書いて、起動時にWindows 11とArch Linuxを選択できるようにしていました。しかし、下記のsoh506氏の記事のようにしたところ、書かなくても選択できるようになったので、そちらの方法のほうがいいかもしれません。
ウィンドウマネージャー
ウィンドウマネージャーはhak112233氏の下記の記事を参考にして、end-4氏のdots-hyprlandを用いてHyprland環境を構築しました。
この記事を書いている2026/11/1時点でHyprlandは0.57.0にバージョンアップしており、設定ファイルが.conf形式から.lua形式に完全移行しました。そのため、Hyprland関連のカスタマイズは上記の記事通りの方法ではうまくいきません。Hyprland以外の設定は、記事通りの方法で大丈夫です。ここでは、hak112233氏の記事を参考にした私のHyprland環境の設定について説明します。
日本語入力設定
キーボードの配列を日本語配列へ変更するために、~/.config/hypr/custom/general.luaに以下の内容を追記します。
hl.config({
input = {
kb_layout = "jp"
}
})
日本語入力に用いられるFcitx5を自動起動するために、~/.config/hypr/custom/execs.luaに以下の内容を追記します。
hl.on("hyprland.start", function()
-- fcitx
hl.exec_cmd("fcitx5 -d")
end)
画面スケールの拡大
デフォルトだとおそらくスケールが小さいので、~/.config/hypr/hyprland/general.luaのhl.monitor({})部分を編集します。
以下の例ではスケールを1.60(160%)にしています。
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = 1.60
})
キーバインドを変更
デフォルトのキーバインドだと、検索バーやワークスペースの一覧の表示にSuperキー単体が割り当てられているため、チートシートの確認などの際にSuperキーを押すと検索バーなどが一緒に出てきて見づらい、ということがあったので変えています。
キーバインドの変更は、~/.config/hypr/hyprland/keybinds.luaを編集して行います。
以下の例では、検索をSuper + Spaceで行うように変更しています。
-- 元のキーバインドはコメントアウトして無効化
-- hl.bind("SUPER + SUPER_L", hl.dsp.global("quickshell:searchToggleRelease"), { description = "Shell: Toggle search" })
-- hl.bind("SUPER + SUPER_R", hl.dsp.global("quickshell:searchToggleRelease"))
-- hl.bind("SUPER + SUPER_L", hl.dsp.exec_cmd(qsIsAlive .. " || pkill fuzzel || fuzzel"))
-- hl.bind("SUPER + SUPER_R", hl.dsp.exec_cmd(qsIsAlive .. " || pkill fuzzel || fuzzel"))
hl.bind("SUPER + Space", hl.dsp.global("quickshell:searchToggleRelease"), { description = "Shell: Toggle search" })
hl.bind("SUPER + Space", hl.dsp.exec_cmd(qsIsAlive .. " || pkill fuzzel || fuzzel"))
セキュアブートを有効化
セキュアブートの設定は、a44ki氏の下記の記事の通りに進めることで、問題なく有効化できました。
soh506氏の記事の方法でWindows 11とデュアルブートさせている場合、/boot/EFI/Microsoftにあるファイルは自前の鍵で署名しない方がいいです。署名するとWindows Updateの更新などによって起動不能になる恐れがあります。
ブートローダーにGRUBを使っていてセキュアブートを有効にしたい場合は、ArchWikiの以下のページが参考になると思います。
その他の設定
ターミナルのフォント設定
私の使っているターミナルフォントはパッケージマネージャになく、手動でインストールする必要があったため、その方法を簡単に下にまとめます。
フォントファイルをダウンロードする
私はyuru7氏のUDEV Gothicを使っているので、下記のページからダウンロードしました。
フォントファイルを所定のディレクトリに移動する
シングルユーザーにインストールする場合は~/.local/share/fonts/の下に、全ユーザーの場合は、/usr/local/share/fonts/の下に移動させます。
インストールする
fc-cacheコマンドでインストールされます。
私は一応、すべてのフォントキャッシュを作り直す-fオプションと、実行時の詳細を表示する-vオプションをつけて実行しています。
ターミナルフォントに設定
使っているターミナルの設定ファイルを編集して設定します。私はkittyを使っているので~/.config/kitty/kitty.confを編集しました。
フォントについては、下記のページに詳しいことが書いてあります。
タイプカバーを閉じたときにサスペンド(スリープ)させる
おそらくデフォルトではサスペンド状態になると思いますが、ならない場合は/etc/systemd/logind.confを編集して、HandleLidSwitchとHandleLidSwitchExternalPower(電源接続時)の項目をsuspendにすれば、大丈夫だと思います。
Windows 11とは違って、タイプカバーを開いたあとに電源ボタンを押すことで復帰します。
詳しいことは下記のページに書いてあります。
最後に
この記事が少しでも役に立てたら幸いです。
間違った内容や誤字、脱字などがありましたらぜひコメントでお知らせください。