全てはArchの意思のままに ラップトップにArch Linuxをインストールする


滅亡迅雷.netには接続しません。あと、Arch Linuxはアークではなくアーチと読みます。

さて、

Emacs on Chromebook

をやっていたり、いろいろメジャーではないデバイスで遊ぶことが多いのですが、 ちゃんとしたマシンも欲しいということで、中古のラップトップにArch Linuxを導入してみました。

ゼロからのインストールだと何回か最初から入れ直したくなることが多々あるので、その時のための自分向けのメモです。

Arch Linuxのインストール

公式サイトからISOをダウンロードし、インストールメディアを作成したら起動します。

起動メニューの中から、 Arch Linux Install medium (x86_64, UEFI) を選択します。

Ubuntuなど多くのLinuxディストリビューションでは、インストール用のウィザードが起動しますが、 Arch Linuxの場合は、プロンプトが起動し、手動でインストールしていくのが標準になります。

キーボード配列を日本語に切り替えます。

loadkeys jp106

無線LANを設定します。

iwctl
[iwd]# device list
[iwd]# station <デバイス名> connect <SSID>

システムクロックを確認します。

timedatectl status

ディスクを設定します。

gdisk /dev/nvme0n1

パーティションを切っていきます。 以下のように設定しました。

パーティションマウントポイントコードサイズ
EFIN/Aef00+1G
System Root/8300-16G
swapN/A820016G

各パーティションをフォーマットしていきます。

System Rootはext4にするかbtrfsにするか迷いましたが、今回はext4にしました。

mkfs.fat -F 32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkswap /dev/nvme0n1p3

システムルートに必要なコンポーネントを入れていきます。

mount /dev/nvme0n1p2 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot

pacstrap -K /mnt base linux linux-firmware vim
genfstab -U /mnt >> /mnt/etc/fstab

システムルートに移動して初期設定をしていきます。

arch-chroot /mnt

言語・タイムゾーンを設定していきます。

ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
hwclock --systohoc

locale-gen
vim /etc/locale.gen # en_US.UTF-8とja-JP.UTF-8の行をコメント解除する
vim /etc/locale.conf # LANG=ja_JP.UTF-8を追記

vim /etc/vconsole.conf # KEYMAP=jp106を追記

vim /etc/hostname # ホスト名を設定

ルートパスワードを設定します。

passwd

ブートローダを設定します。

mkinitcpio -P
pacman -S grub efibootmgr
grub-install --target=x86_x64-efi --efi-directory=/boot --bootloader-id=GRUB_UEFI
grub-mkconfig -o /boot/grub/grub.cfg
pacman -S intel-ucode
grub-mkconfig -o /boot/grub/grub.cfg

一般ユーザを作成します。

useradd -m -g users -G wheel -s /bin/bash <ユーザ名>
pacman -S sudo
vim /etc/sudoers # 一般ユーザがsudoできるように設定

再起動後にネットワークが有効化できるようにパッケージを導入します。

pacman -S networkmanager dhcpcd

再起動してインストール完了です。

reboot

インストール後の初期設定

インストールが終わったら、初期設定をしていきます。 作成した一般ユーザでログインして作業していることを前提とします。

まずは改めてネットワークを設定します。

sudo systemctl start NetworkManager
sudo systemctl enable NetworkManager
sudo nmtui # 無線LANの設定

Gitの導入

自分のdotfilesだったり、各種ツールを導入するためにも、 Gitやgitを便利に扱うghqは不可欠なので導入していきます。

git、ghqをインストールします。

sudo pacman -S git ghq

ghqで git clone したときの作成先を指定するために、 ~/.gitconfig を設定します。 私は、 ~/src/ 配下にリポジトリを作成するようにしています。

[ghq]
    root = ~/src

AURを利用できるようにする

pacmanから取得できるパッケージだけだと不足するものがあるので、Arch User Repository (AUR)を利用できるように設定します。 フロントエンドには yay を利用します。

sudo pacman -S debugedit fakeroot
ghq get aur.archlinux.org/yay.git
cd ~/src/aur.archlinux.org/yay/
mkpkg -si

GUIの設定

GUIを設定していきます。

Window Managerには hyprland 、ステータスバーには waybar を利用します。 ランチャーには wofi を利用します。

ターミナルには折角なので最近出たばかりの ghostty を使ってみます。

sudo pacman -S hyprland waybar wofi ghostty

一度 hyprland コマンドを実行し、起動すると文字化けしたメッセージが表示されると思います。

S-m (Superキーを押しながら m 、SuperキーはWindows端末を元にしていれば、 Windowsキー にマッピングされています。)で、 一度hyprlandを終了します。

メッセージが文字化けしているので、日本語フォントを導入しましょう。 また、このあと絵文字も文字化けするので一緒に導入しておきます。

sudo pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra otf-font-awesome

hyprlandの設定ファイルを編集して、最小限のカスタマイズをします。 設定ファイルは先ほどの初回起動のタイミングで、 ~/.config/hypr/hyprland.conf に作成されています。

# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################

#autogenerated = 1 # remove this line to remove the warning # コメント化して自動生成の警告を無効化する

(略)

###################
### MY PROGRAMS ###
###################

# See https://wiki.hyprland.org/Configuring/Keywords/

# Set programs that you use
$terminal = ghostty # Ghosttyを利用するように変更
$fileManager = dolphin
$menu = wofi --show drun


#################
### AUTOSTART ###
#################

# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:

# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
exec-once = waybar # waybarを起動する
# exec-once = fcitx5

(略)

#############
### INPUT ###
#############

# https://wiki.hyprland.org/Configuring/Variables/#input
input {
    kb_layout = jp # 日本語配列を指定
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.

    touchpad {
      natural_scroll = true # タッチパッドの二本指でのスクロールを自然にする
    }
}

(略)

CapsLockをCtrlキーにする

普通のラップトップなので、Aの横にはCapsLockがあります。 CapsLockは普段使わないのでCtrlキーに変更します。

やりかたは複数ありますが、とりあえずは xremap を使うようにしています。 ~/.config/ 配下に以下のようなファイルを作成した上で、xremapを導入して自動起動を設定します。 xremapはpacmanでは入手できないので、YaYを使ってAURからインストールします。

modmap:
  - name: CapsLock to Ctrl
    remap:
      CapsLock: Ctrl_L
[Unit]
Description=xremap service

[Service]
# restart periodically
Restart=always
ExecStart=/usr/bin/xremap /home/grugrut/.config/xremap/config.yml
User=root
#Group=root

[Install]
WantedBy=default.target
yay -S xremap
sudo systemctl enable ~/.config/systemd/xremap.service
sudo systemctl start xremap

ターミナルの整備など、やりたいことはありますが一旦はここまでで、とりあえず動くようにはなります。


comments powered by Disqus