Arch Linux 系ディストリビューションの共通設定

2021-11-30

基本の設定

パスワードを変更

passwd

パッケージ管理を設定

# 高速なミラーサーバを選択
sudo pacman -Sy
sudo pacman -S --needed reflector rsync
sudo reflector -c Japan -f 5 --save /etc/pacman.d/mirrorlist

mkdir -p ~/tmp_arch
cd ~/tmp_arch/

# AUR パッケージをビルドするときのスレッド数を論理プロセッサ数にする
sudo pacman -S --needed wget
wget https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/pacman/trunk/makepkg.conf
sed -i -e 's,#MAKEFLAGS="-j2",MAKEFLAGS="-j\$(nproc)",g' makepkg.conf
sudo cp -f makepkg.conf /etc/

# 公式の pacman.conf をダウンロード
wget https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/pacman/trunk/pacman.conf

# pacman.conf を変更して multilib を有効にする
sed -z -i -e 's,#\[multilib\]\n#,\[multilib\]\n,g' pacman.conf

# pacman.conf をインストールして非公式リポジトリを削除
sudo cp -f pacman.conf /etc/

非純正Archの場合: 独自パッケージを削除

pacman.conf 内のリポジトリに存在しないパッケージを削除する。
yay などの AUR パッケージも削除されるので注意。
GRUB テーマが削除される場合はあとで Sleek Dark テーマをインストール。

pacman -Qqm | sudo pacman -Rs -

# ~/.bashrc が上書きされている場合は削除
# rm ~/.bashrc

GRUB のテーマを Sleek Dark に変更

事前にUSBメモリを抜いておく。

mkdir -p ~/tmp_arch
cd ~/tmp_arch/
wget https://github.com/sandesh236/sleek--themes/archive/refs/heads/master.zip -O sleek--themes-master.zip
unzip sleek--themes-master.zip 
cd sleek--themes-master/Sleek\ theme-dark/
sudo ./install.sh

# Press enter to begin installation (automatically install after 10s)  :  
# Enter を押すとインストールを開始します(10秒後に自動的にインストールします)
# (Enter)
#
# Do you wanna display your name on a bootloader 
# ブートローダーに自分の名前を表示しますか
# [y/n]: n

# GRUB の解像度を変更
cd ~/tmp_arch/
cp /etc/default/grub .
sed -i -e 's,GRUB_GFXMODE=.*,GRUB_GFXMODE=1920x1080,g' grub
sudo cp grub /etc/default/
sudo grub-mkconfig -o /boot/grub/grub.cfg

Sleek Dark を削除する場合

cd sleek--themes-master/Sleek\ theme-dark/
sudo ./uninstall.sh

# Press enter to begin uninstallation (automatically uninstalling after 10s)  :  
# Enter を押すとアンインストールを開始します(10秒後に自動的にアンインストールします)
# (Enter)

yay をインストール

mkdir -p ~/tmp_arch
cd ~/tmp_arch/

mkdir -p ~/tmp_arch
cd ~/tmp_arch/
wget https://aur.archlinux.org/cgit/aur.git/snapshot/yay-bin.tar.gz
tar xf yay-bin.tar.gz
cd yay-bin/
makepkg -is

システムをアップグレード

yay

再起動して問題なければパッケージのキャッシュを削除。

yay -Scc

「デスクトップ」などのディレクトリが作られるのを止める

printf 'XDG_DESKTOP_DIR="$HOME"
XDG_DOWNLOAD_DIR="$HOME"
XDG_TEMPLATES_DIR="$HOME"
XDG_PUBLICSHARE_DIR="$HOME"
XDG_DOCUMENTS_DIR="$HOME"
XDG_MUSIC_DIR="$HOME"
XDG_PICTURES_DIR="$HOME"
XDG_VIDEOS_DIR="$HOME"
' > ~/.config/user-dirs.dirs

コアダンプを無効にする

# 設定ファイルを編集
sudo sed -z -i -e 's,\n\n#\ End\ of\ file,\n\n*\ hard\ core\ 0\n#\ End\ of\ file,g' /etc/security/limits.conf

# 既存のダンプファイルを削除
sudo rm /var/lib/systemd/coredump/*

CPUの脆弱性緩和を確認

mkdir -p ~/tmp_arch
cd ~/tmp_arch/
wget https://github.com/speed47/spectre-meltdown-checker/raw/master/spectre-meltdown-checker.sh
sudo sh spectre-meltdown-checker.sh

SUMMARYがすべて「OK」(緑色)になっていれば問題ない。

不具合がある場合はマイクロコードをアップデートする。
USBメモリは全て抜いておく。

Intelの場合:

yay -S --needed intel-ucode 
sudo grub-mkconfig -o /boot/grub/grub.cfg

AMDの場合:

yay -S --needed amd-ucode
sudo grub-mkconfig -o /boot/grub/grub.cfg

再起動して脆弱性が緩和されているか確認する。

時刻サーバを変更

yay -S --needed ntp

# 設定ファイルを変更
printf 'server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
server 3.jp.pool.ntp.org iburst
' > ntp.conf

sudo mv ntp.conf /etc/ntp.conf

# 正常に動作しているか確認
sudo date -s 00:00:00 && sudo systemctl restart ntpd.service && sleep 10s && date

# 2021年  4月 13日 火曜日 00:00:00 JST
# 2021年  4月 13日 火曜日 06:15:23 JST

ディスプレイマネージャのフォントを日本語フォントに変更

ディスプレイマネージャのフォントを Noto Sans CJK に変更する。容量が小さめ(20MB)で日中韓の文字を表示できる。

mkdir -p ~/tmp_arch
cd ~/tmp_arch/
wget -N https://github.com/googlefonts/noto-cjk/raw/main/Sans/OTC/NotoSansCJK-Regular.ttc
sudo mkdir -p /usr/share/fonts/TTF/
sudo cp NotoSansCJK-Regular.ttc /usr/share/fonts/TTF/

cp /usr/share/fontconfig/conf.avail/65-nonlatin.conf .
sed -i -e 's,\t\t\t<family>.*,\t\t\t<family>Noto\ Sans\ Mono\ CJK\ JP</family>,g' 65-nonlatin.conf
sudo cp -f 65-nonlatin.conf /usr/share/fontconfig/conf.avail/

フォントのファイル名からフォント名を調べるには次のようにする。

LC_ALL=C fc-match -a | grep NotoSansCJK-Regular.ttc

# NotoSansCJK-Regular.ttc: "Noto Sans Mono CJK JP" "Regular"
# NotoSansCJK-Regular.ttc: "Noto Sans CJK JP" "Regular"

/home に Noto Sans CJK をインストール

mkdir -p ~/.local/share/fonts/
cp -f NotoSansCJK-Regular.ttc ~/.local/share/fonts/

/home に普段使用しているフォントをインストールしておくと、別のディストリビューションに変更したときでも最初から普段のフォントを使用できる。ただし /home 内のフォントは標準権限で実行するアプリでしか使用できない。

使用しない音声出力をオフにする

テレビにHDMIで接続していると音が出ないことがある。音声出力を1つに絞ると音が出る。

yay -S --needed pavucontrol
pavucontrol

「設定」タブを開いて、使用しないものを「オフ」にする。

日本語対応を整える

Qtアプリのフォントを設定

yay -S --needed qt5ct
qt5ct

「フォント」タブを開き、デフォルトフォントを指定する。「fonts.conf を作成」ボタンを押す。

「アンチエイリアス」と「ヒンティング」にチェックを入れる。「ヒンティングスタイル」は「なし」にする。

Xfce のフォントを設定

xfce4-appearance-settings

「フォント」タブを開き、デフォルトフォントを指定する。「アンチエイリアスを有効にする」にチェックを入れ、ヒンティングを「なし」にする。

日本語入力システムをインストール

必要なパッケージをインストール。

yay -S --needed fcitx5 fcitx5-configtool fcitx5-gtk fcitx5-qt fcitx5-mozc

# 既存の設定ファイルを削除
rm -f ~/.xprofile

# fcitx5 をデフォルトの入力メソッドにする
printf 'GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE  DEFAULT=fcitx
XMODIFIERS    DEFAULT=@im=fcitx
' > ~/.pam_environment

ログアウト/ログインして設定を有効にする。

fcitx5 を設定

fcitx5-configtool 

「入力メソッド」タブを開き、「現在の入力メソッド」に Mozc があるのを確認する。なければ右側の「有効な入力メソッド」から追加して、「適用」を押す。

「グローバルオプション」タブを開き、一番下までスクロール。「第1入力メソッドの情報を表示する」のチェックを外して、「適用」を押す。

「アドオン」タブを開く。「クラシックユーザーインターフェース」の歯車アイコンを押す。

「候補ウィンドウを縦にする」にチェックを入れる。ただし Mozc ではチェックを外していても強制的に縦になる。「フォント」「メニューフォント」を変更する。

「アドオン」タブを下にスクロールして、「Mozc」の歯車アイコンを押す。

「用例を表示」を「ホットキー」にする。
「プリエディットカーソルをプリエディットの先頭に固定する」のチェックを外す。

コンソールのキーボード配列を jp106 にする

localectl set-keymap --no-convert jp106

その他

DNSサーバを変更

# DNSサーバの自動設定を止める
mkdir -p ~/tmp_arch
cd ~/tmp_arch
cp /etc/NetworkManager/NetworkManager.conf .
printf "
[main]
dns=none" >> NetworkManager.conf
sudo mv NetworkManager.conf /etc/NetworkManager/

# Cloudflare のDNSサーバに変更
printf "nameserver 2606:4700:4700::1111
nameserver 2606:4700:4700::1001" > resolv.conf
sudo mv resolv.conf /etc/

# DNSサーバの設定が自動的に上書きされないか確かめる
sudo systemctl restart NetworkManager.service
drill https://www.youtube.com

# ;; SERVER: 2606:4700:4700::1111

2606:4700:4700::1111 に接続している。次回からは resolv.conf の内容が即座に反映されるので、書き換えたあとの systemctl restart は不要。

UEFIブートマネージャの不要なエントリーを削除

ブートマネージャに登録されているエントリーを表示する。

sudo efibootmgr

# BootCurrent: 0002
# Timeout: 1 seconds
# BootOrder: 0002,0003,0001,0000,0006,0007

現在起動しているエントリーは「BootCurrent: 0002」なので、それ以外のエントリーを削除する。

sudo efibootmgr -b 3 -B
sudo efibootmgr -b 1 -B
sudo efibootmgr -b 0 -B
sudo efibootmgr -b 6 -B
sudo efibootmgr -b 7 -B

PulseAudio を PipeWire に置き換える

yay -Rs pulseaudio-equalizer pulseaudio-jack pulseaudio-lirc pulseaudio-zeroconf 
yay -S --needed pipewire pipewire-pulse pipewire-alsa

再起動して動作を確認する。

pactl info | grep PipeWire
# Server Name: PulseAudio (on PipeWire 0.3.25)

ディスプレイマネージャを SDDM に変更

# SDDM をインストール
yay -S --needed sddm
sudo systemctl -f enable sddm

再起動して問題なく SDDM が起動したら、LightDM を削除する。

yay -Rs lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings

ディスプレイマネージャを LXDM に変更するのは避ける。LXDM を使うと、Xfce でマウスカーソルのテーマを変更しても一部が反映されなかった。LightDM か GDM か SDDM が良い。

挿入した HDD を認識させる

こちらのスクリプトを使用する。

printf '#/bin/bash
# ReScan all SCSI/SATA Hosts
for SHOST in /sys/class/scsi_host/host*; do
    echo -n "Scanning ${SHOST##*/}..."
    echo "- - -" > ${SHOST}/scan
    echo Done
done
' > rescan-sata.sh

chmod a+x rescan-sata.sh
sudo ./rescan-sata.sh

Realtek: サスペンドから復帰するとウェブにつながらない

使用しているドライバを確認。

ethtool -i enp2s0 | grep driver

# driver: r8168

r8168 ドライバを使用しているときは削除。

yay -Rs r8168

再起動する。

音量をショートカットキーで調節

出力デバイスを確認。

LC_ALL=C pactl info | grep "Default Sink"
# Default Sink: alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1

次のコマンドをショートカットキーに登録する。

# 音量アップ
pactl set-sink-volume alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1 +2%
# 音量ダウン
pactl set-sink-volume alsa_output.pci-0000_00_03.0.hdmi-stereo-extra1 -2%

Xfceデスクトップでショートカットキーを登録する場合は次のように行う。

xfce4-keyboard-settings

「アプリケーションショートカットキー」タブを開く。「追加」を押す。

コマンドを登録する。

画面の明るさをショートカットキーで調節

アクティブなモニタを確認。

xrandr --listactivemonitors
# 0: +HDMI-2 1920/708x1080/398+0+0  HDMI-2

次のコマンドをショートカットキーに登録する。

# 画面の明るさを上げる
xrandr --output HDMI-2 --brightness 1.2
# 画面の明るさを元に戻す
xrandr --output HDMI-2 --brightness 1

暗めの場面のとき一時的に明るくできて便利。

Xfce: ログイン後に自動的に開始されるアプリを減らす

xfce4-session-settings

「自動開始アプリケーション」タブを開く。不要なアプリのチェックを外す。

Xfce: 時計表示の設定

ツールチップの形式: %c
時計のオプション: %m月%d日 (%a) %R

キーリピートが効かないときは

xset r on

/home パーティションの予約ブロックを 0 にする

ext4 では5%の領域が予約ブロックになっている。これを解放すると空き容量が増える。

/home パーティションの番号を確認する。

df | grep \/home
# /dev/sda3        440G  216G  224G   50% /home

/dev/sda3 の予約ブロックを 0 にする。

sudo tune2fs -m 0 /dev/sda3

linux-zen カーネルに変更

yay -S --needed linux-zen
sudo grub-mkconfig -o /boot/grub/grub.cfg

再起動して GRUB メニューで linux-zen を選択。
動作に問題がなければ linux カーネルを削除する。

sudo grub-mkconfig -o /boot/grub/grub.cfg

linux-zen カーネルに切り替えたときのベンチ結果はこちら

linux カーネルに戻す

GRUB メニューで通常の linux カーネルを選択。
起動したら linux-zen カーネルを削除する。

yay -Rs linux-zen
sudo grub-mkconfig -o /boot/grub/grub.cfg

個人的に必要なパッケージをインストール

yay -S --needed chromium mousepad cmake evince poppler-data file-roller p7zip filezilla gnome-disk-utility hdparm mpv libva-utils ripgrep rsync ruby ruby-irb gpicview pngquant wine pavucontrol vulkan-intel wget pamac-aur yt-dlp

# 不要なパッケージを削除
yay -Rs ristretto galculator firefox firefox-i18n-ja parole vim xed xterm adobe-source-han-sans-cn-fonts adobe-source-han-sans-kr-fonts noto-fonts

# Xfce: スクリーンセーバーを削除
# スクリーンセーバーが実行されていると、一定時間の無操作で画面にロックがかかる。
yay -Rs xfce4-screensaver
killall xfce4-screensaver

# マウスカーソル
mkdir -p ~/tmp_arch
cd ~/tmp_arch/
wget https://github.com/numixproject/numix-cursor-theme/releases/download/v1.1/numix-cursor-1.1.tar
tar xf numix-cursor-1.1.tar
rm -rf ~/.local/share/icons/{Numix-Cursor,Numix-Cursor-Light}
mv Numix-Cursor ~/.local/share/icons/

# アイコン
mkdir -p ~/tmp_arch
cd ~/tmp_arch/
wget https://github.com/PapirusDevelopmentTeam/papirus-icon-theme/archive/refs/heads/master.zip -O papirus-icon-theme-master.zip
7z x papirus-icon-theme-master.zip
rm -rf ~/.local/share/icons/{Papirus,Papirus-Light}
mv papirus-icon-theme-master/{Papirus,Papirus-Light} ~/.local/share/icons/
cd ~/.local/share/icons/
gtk-update-icon-cache Papirus/
gtk-update-icon-cache Papirus-Light/

# テーマ
mkdir -p ~/tmp_arch
cd ~/tmp_arch/
wget https://github.com/daniruiz/skeuos-gtk/archive/refs/heads/master.zip -O skeuos-gtk-master.zip
7z x skeuos-gtk-master.zip
rm -rf ~/.local/share/themes/{Skeuos-Blue-Light,Skeuos-Blue-Light-XFWM}
cp -r skeuos-gtk-master/themes/{Skeuos-Blue-Light,Skeuos-Blue-Light-XFWM} ~/.local/share/themes/

# HaswellとBroadwell: VP9 用のドライバをインストール
yay -S --needed intel-hybrid-codec-driver libva-intel-driver-hybrid libva-utils

# VP9がサポートされていることを確認
vainfo | grep VP9

# 次の表示が出ればOK
# VAProfileVP9Profile0: VAEntrypointVLD

個人的な ~/.bashrc の設定

printf 'EDITOR=/usr/bin/mousepad
alias df="df -h"
alias du="du -h"
alias xterm="xfce4-terminal"
export XCURSOR_PATH="~/.local/share/icons/"

# ディレクトリをサイズ順に並べる
alias duu="du -BM -d1 | sort -n"

# ファイルリストを縦に並べる
alias ls="ls -1"

# rg
alias rg="rg --smart-case --colors path:fg:0x34,0x83,0xE3 \
--colors line:fg:0x34,0x83,0xE3 --colors match:bg:0x34,0x83,0xE3 \
--colors match:fg:white"

# yt-dlp の解像度を1080pに制限
alias yt-dlp-fhd="yt-dlp -S res:1080"
' > ~/.bashrc

HOME