メモ:Dell XPS 13 (7390)にArch Linuxをインストールしたときのメモ

全部うろ覚えなので間違ってたらすみません(随時追記するかも)。

OSインストール

基本は公式に従う。

ネットワークに接続

wifi-menuが楽でした。wpa_supplicantを使う場合はこんな感じだった気がします。

# パスワードは対話的に入力
wpa_passphrase "<SSID>" > tmp.conf

wpa_supplicant -B -i wlp2s0 -c tmp.conf
dhcpcd

LVM on LUKSでインストール

基本は公式のwikiを見ればいいけど、よくわからないなあと思っていたところ、

dm-crypt/システム全体の暗号化 - ArchWiki

インストール手順が転がっていたのでこれを見ながらやればいい(ところどころ落とし穴があります)

Minimal instructions for installing arch linux on an UEFI NVMe system with full system encryption using dm-crypt and luks · GitHub

まずはパーティションを切る。

fdisk /dev/nvme0n1
  1. gGPTのラベルを作成
  2. bootパーティションをつくる: nで新規作成、サイズは+512Mtでラベル変更、cFAT32 (LBA)を選ぶのが正解らしい(ここでなぜか1: FAT12を選んだ記憶があるけど、動いてるからまあいっか...)
  3. 暗号化パーティションをつくる: nで新規作成、サイズは残りすべて、t でラベル変更、83Linuxを選ぶ

あとはたぶんこんな感じです。

mkfs.vfat -F32 /dev/nvme0n1p1

cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup open /dev/nvme0n1p2 cryptlvm

pvcreate /dev/mapper/cryptlvm
vgcreate vg0 /dev/mapper/cryptlvm
# メモリ16GBのモデルなので
lvcreate --size 16G vg0 --name swap
lvcreate -l +100%FREE vg0 --name root

mkfs.ext4 /dev/mapper/vg0-root
mkswap /dev/mapper/vg0-swap

mount /dev/mapper/vg0-root /mnt
swapon /dev/mapper/vg0-swap
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot
/etc/mkinitcpio.conf

gistの方だと詳しく載ってなくて引っかかったけど、keyboardkeymapencryptの前にないと復号パスワードを入力できなくて永遠にブートできません。注意。手元のはこんな感じになってた。

HOOKS=(base udev autodetect modconf keyboard keymap block encrypt lvm2 resume filesystems fsck)

GNOME

GNOMEとGDMのインストール

GNOME別に付属アプリとかは全部はいらないなあ、と思って「gnome minimal install arch」とかでググる適当なgistが転がっているので真似します。

sudo pacman -S gnome-shell nautilus gnome-terminal guake gnome-tweak-tool gnome-control-center xdg-user-dirs gdm

あとはGDMを有効にすればよろしくやってくれるはず。

sudo systemctl enable gdm

.xprofileの代わりは?

これはいまだに正解がわかりません...。Arch wikiだと/etc/environmentに書けという指示があったりしますが、いやいやユーザーごとの設定あるでしょ??とは思うものの、ググって出てきた、

  • ~/.local/share/gdm/env.d/ (GDMが設定してくれるという噂を見たけど何も起こらない)
  • ~/.config/environment.d/ (systemdが設定してくれるという噂を見たけど何も起こらない)

は効果がなくて、結局~/.pam_environmentにこの辺のおまじないを書きました。

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

LIBVA_DRIVER_NAME=iHD

TERMINAL=alacritty

Xmodmapの代わりは?

これは、gsettingというコマンドで以下を一度実行するだけです。

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:ctrl_modifier']"

Firefox

Arch wikiにかかれているようにFirefoxはWayland用のモードがあります。 別にデフォルトのX11用のモードでも問題は感じなかったけど、いちおう変えておきます。Arch wikiだと/usr/share/applications/firefox.desktopExecを編集するように書かれているけど、どうもここはFirefoxのアップデートのたびに上書きされちゃうっぽいので~/.pam_environmentに書きます。

MOZ_ENABLE_WAYLAND=1

Alacritty

よくわかりませんが、 WAYLAND_DISPLAY 環境変数があるとうまくうごかないらしいです。

/usr/share/applications/alacritty.desktopExec環境変数をつけます(これは~/.pam_enviromnentに指定するにはちょっと厳しいので、アップデートがあるたびに直すしかなさそう)

Exec=env WAYLAND_DISPLAY= alacritty

キーボード設定

VS Codeでキーボードが英字配列で認識されてしまってなんでかなと思ったら、fcitxの設定で「規定のキーボードレイアウト」を「日本語」にしておかないとだめらしい。