Arch Linux Setup Guide

はじめに

Arch Linuxのインストールが無事に終わったら、今度は基本的なセットアップに移っていく。ネットワークや時刻の設定や、パッケージ管理の拡充、デスクトップ環境の整備など多岐にわたる。

システムの設定

ネットワークの管理

再起動後、まずはネットワーク接続を確認する。NetworkManagerが有効であれば、有線LANは自動で認識されるだろう。無線LANはnmtui を実行し、GUIベースのインターフェースでSSIDを選択してパスワードを入力すると楽である。

時刻同期の設定

デュアルブート時にWindowsと時刻をそろえる

パッケージ管理ツールの拡充

パッケージマネージャの最適化

必要であれば/etc/pacman.conf を編集し、ダウンロード速度の向上と視認性の改善を行う。設定後、 sudo pacman -Syuでデータベースを同期する。また、高速な国内ミラーを選択する。

sudo pacman -S reflector
sudo reflector --country Japan --protocol https --sort rate --save /etc/pacman.d/mirrorlist

AURヘルパの導入

Arch User Repository (AUR) を利用するため、paru を導入する。

sudo pacman -S --needed base-devel git
mkdir sources & cd sources
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

日本語環境の構築

フォント

最低限、Noto Sans CJK JPをインストールする。

sudo pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra

開発用のフォントもいくつかインストールしておく。

paru -S ttf-plemoljp-bin ttf-hackgen

日本語入力

入力メソッドフレームワークにはFcitx5を用いる。日本語IMEは一般的にはMozcを用いる。LLMを応用した先進的なIMEとしてHazkeyKarukan を使うのも良いだろう。私は現在Hazkeyを利用している。

sudo pacman -S fcitx5-im

~/.config/environment.d/im.confXMODIFIERS=@im=fcitxを記述し、X Window System(X11)の標準的な入力プロトコルである XIM(X Input Method)を利用するアプリケーションに対し、Fcitxの使用を指定する。

Fcitx5でMacライクなIME切り替えをするための設定をする。

グラフィック環境

グラフィックドライバの導入

使用しているハードウェアに適したドライバをインストールする。Intel CPUの内蔵グラフィックスでは次のようになる。
sudo pacman -S mesa vulkan-intel

デスクトップ環境の構築

Waylandデスクトップ環境

ディスプレイマネージャの設定

起動後にユーザを認証し、そのユーザのデスクトップセッションを開始するためのソフトウェアであり、これをディスプレイマネージャと呼ぶ。ここではgreetdを利用する。greetd自体はログイン画面を描画するものではなく、ユーザー認証とセッションの開始を管理するデーモンである。実際のログイン画面にはtuigreetを利用する。

sudo pacman -S greetd greetd-tuigreet

greetd の動作を規定する設定ファイルは /etc/greetd/config.toml であり、Niriを用いるのであれば、次の内容のようにする。

[default_session]
command = "tuigreet --time --remember --cmd niri-session"
user = "greeter"

任意のログインマネージャを無効化したのち、sudo systemctl enable greetdによって有効化する。

オーディオ

Linuxのデスクトップで音声を扱う場合、ハードウェアを認識するためのカーネルドライバだけでなく、アプリケーションとオーディオデバイスの間で音声を管理する仕組みが必要になる。ここではPipeWireを利用する。

PipeWireは、低遅延での音声・映像の再生およびキャプチャを目的としたマルチメディアフレームワークである。オーディオサーバーおよびビデオキャプチャサーバーとして機能する。
PipeWire自体は接続ロジックを持たず、WirePlumberなどの外部コンポーネントがストリームの管理と接続を担う。

sudo pacman -S pipewire pipewire-pulse wireplumber

systemdのユーザーユニットを使用してサービスを有効化・起動する。

systemctl --user enable --now pipewire.service pipewire-pulse.service wireplumber.service

ファームウェア

一部のPCでは、カーネルだけでは内蔵オーディオデバイスを正しく利用できず、追加のファームウェアが必要になる。DellのPCではオーディオデバイスが認識されなかったため、Sound Open FirmwareとALSA用の設定データを導入する。Linuxのサウンドまわりのデバイスが動かないときはsof-firmwareを入れておけ

sudo pacman -S sof-firmware alsa-ucm-conf

周辺機能

Bluetooth

LinuxではBluetoothプロトコルスタックとしてBlueZが利用される。bluezがBluetooth機能本体を提供し、bluez-utilsにはbluetoothctlなど管理用のコマンドが含まれている。

# install
sudo pacman -S bluez bluez-utils
 
# check
lsmod | grep btusb
 
# activate
sudo systemctl enable --now bluetooth.service

Bluetooth - ArchWiki

電源管理

もしサスペンドや充電の設定など行う場合は使用するハードウェアによって適切に設定する。
Inspiron14の電力管理

クラウドストレージ

Google Driveなどのクラウドストレージを通常のファイルシステムに近い形で扱いたい場合はrcloneを利用できる。

rcloneはGoogle Driveそのもののクライアントではなく、多数のクラウドストレージサービスに共通して接続できるファイル転送・マウントツールである。
rcloneでGoogle Driveをマウント

基本アプリケーション

ターミナルエミュレータは文字ベースの入出力を行うためのGUIを提供し、その内部でbashzshなどのシェルが動作する。ターミナルエミュレータにはalacrittyを利用する。

シェルのデフォルトはzshに切り替える。フレームワークとしてOh My Zshをつかう。

sudo pacman -S alacritty

ファイルマネージャ

コンソールではyaziを使う。グラフィカルなものについては依存が多いのは嫌だったのでThunarをつかっている。

sudo pacman -S yazi thunar

ブラウザ

Firefoxを利用している。

sudo pacman -S firefox-i18n-ja

エディタやノート

コンソールではNeoVimを使う。たまにしか使わないので多くの環境で使うことのできるVimのほうがいいのかもしれないがストレスは少ないほうがよい。
グラフィカルなものはVisual Studio Codeを使う。

sudo pacman -S nvim obsidian
paru -S visual-studio-code-bin

組版

Arch Linux 版では TeX Live が texlive-basictexlive-latexextratexlive-fontsextra などのパッケージに分割されている。特に texlive-fontsextra のようなパッケージは非常に大きく、TeX Live を一通り導入していると pacman -Syu の際に数百MB規模の TeX 関連アップデートがシステム更新へ頻繁に混ざることがある。それが嫌だったためTeX Live のネイティブインストールを行う。

dotfiles

chezmoiをつかう

開発環境

開発環境を構築する

Python

uvをつかう

Node.js

fnmをつかう