Arch Linux
Install
Disable BIOS secure boot.
timedatectl set-ntp true
reflector -a 12 -c cn -f 10 —sort score —v —save /etc/pacman.d/mirrorlist
pacman-key —init
pacman -Sy archinstall
archinstall
- Mirrors: China + multilib.
- Disk:
1GBfat32/boot,16GBlinux-swap,compress=zstdbtrfswith@sub-volume mount/and@homesub-volume mount/home, enablesnapper. - Swap: disable
zram. - Bootloader: GRUB.
- Hostname:
station. - Authentication: Root and user.
- Profile: Niri.
- Applications: Bluetooth, audio, print, power.
- Network: Network Manager (
iwd). - Timezone: Asia/Shanghai.
Browse Arch Wiki and official installation guide in TTY:
pacman -S lynx arch-wiki-docs arch-wiki-lite
less /usr/share/aif/docs/official_installation_guide_en
lynx /usr/share/doc/arch-wiki/html/index.html
Setup
sudo pacman -S firefox
sudo sed -i '/^#\[multilib\]/{N;s/^#//gm}' /etc/pacman.conf
sudo sed -i 's/^#Color/Color/' /etc/pacman.conf
sudo sed -i 's/^#VerbosePkgLists/VerbosePkgLists/' /etc/pacman.conf
cat << EOF | sudo tee -a /etc/pacman.conf
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/\$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/\$arch
Server = https://mirrors.aliyun.com/archlinuxcn/\$arch
EOF
sudo systemctl enable --now NetworkManager
sudo pacman -Sy archlinuxcn-keyring
sudo pacman -S --needed base-devel btrfs-progs os-prober \
linux-headers linux-lts linux-lts-headers \
git neovim paru clash-verge-rev
echo "EDITOR=nvim" | sudo tee -a /etc/environment
sudo sed -i 's/^Devel$/# Devel/' /etc/paru.conf
Use polkit-gnome to enable clash-verge-rev tun mode:
sudo pacman -S polkit-gnome
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & disown
Desktop
curl -fsSL https://install.danklinux.com | sh
paru -S greetd-dms-greeter-git qt6ct-kde
dms greeter enable
dms greeter sync
After Qt updates, rebuild AUR packages:
paru -S --rebuild qt6ct-kde
Pacman
sudo pacman -S --needed snapper snap-pac grub-btrfs inotify-tools \
pacman-contrib man-db man-pages man-pages-zh_cn tldr less \
noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-jetbrains-mono-nerd ttf-firacode-nerd \
ttf-maplemono-nf-cn-unhinted ttf-lxgw-wenkai ttf-lxgw-wenkai-mono \
adobe-source-han-sans-cn-fonts adobe-source-han-serif-cn-fonts wqy-zenhei \
fcitx5-im fcitx5-chinese-addons fcitx5-rime rime-ice-pinyin-git \
zoxide bat eza fd ripgrep fzf television jq fx \
procs duf dust gdu bottom nvtop s-tui fastfetch \
gping curlie wget ddgr doggo net-tools speedtest-cli rsync rclone \
git-delta lazygit tmux zsh starship chezmoi \
nodejs npm pnpm bun python uv rustup go luarocks mise \
tree-sitter-cli github-cli openai-codex gemini-cli opencode \
bluez bluez-utils pipewire-pulse pipewire-alsa pipewire-jack \
fprintd fwupd i2c-tools power-profiles-daemon speech-dispatcher \
xdg-desktop-portal xdg-desktop-portal-gnome gnome-keyring libsecret \
nautilus-python file-roller gvfs-smb ffmpegthumbnailer \
yazi 7zip unzip trash-cli \
grim slurp satty wl-clipboard \
poppler poppler-glib python-pylatexenc \
imagemagick imv chafa kimageformats resvg \
ffmpeg mpv cava yt-dlp \
lib32-nvidia-utils lib32-mesa lib32-vulkan-radeon vulkan-headers mesa-utils \
papirus-icon-theme firefox firefox-i18n-zh-cn steam
sudo pacman -Rns polkit-gnome lightdm lightdm-gtk-greeter alacritty fuzzel mako waybar swaybg swayidle swaylock
Sync
# Search
pacman -Ss <keyword>
# Information
pacman -Si <package-name>
# Needed only
sudo pacman -S --needed <package-list>
DO NOT use pacman -Sy <package-name>.
Partial upgrade are unsupported.
Query
# Information
pacman -Qi <package-name>
# Contents
pacman -Ql <package-name> | grep '/usr/bin/'
# Installed
pacman -Qq | wc -l
# Upgradable (`checkupdates`)
pacman -Qu
# Orphans
pacman -Qdtq
# Owns
pacman -Qo /usr/lib/bluetooth/bluetoothd # -> bluez
Remove
# Package
sudo pacman -Rns <package-name>
# Orphans
sudo pacman -Rns $(pacman -Qdtq)
# Cache
sudo pacman -Sc # 清理未安装包的缓存
sudo pacman -Scc # 清理全部缓存
sudo paccache -ruk0 # 清理未安装包的缓存
sudo paccache -rk0 # 清理全部缓存
AUR
paru -S --needed chsrc-bin shellcheck-bin libtexprintf \
visual-studio-code-bin claude-code \
cc-switch-bin cli-proxy-api-bin models-bin \
go-musicfox-bin uudeck linuxqq wechat \
wps-office-cn wps-office-mui-zh-cn wps-office-fonts ttf-wps-fonts
Helpers
Rolling updates:
# sudo pacman -Syu
paru
Clean up packages:
# sudo pacman -Rns $(pacman -Qtdq)
paru -c
Show diagnostics and statistics:
paru -Qm
paru -Ps
Install, remove, and browse packages with fzf.
Repository
PKGBUILD在 AUR 仓库 单独维护-git包的pkgver()由makepkg自动执行, 格式:0.2.0.r1.g783b971(tag.revision.commit)-git包的更新频率由维护者控制, 确保代码可用后才推送pkgver更新
# Target
paru -Syu quickshell-git
# Ignore
paru -Syu --ignore quickshell-git
# Latest commit
paru -Syu --devel
# Force rebuild
paru -S --rebuild quickshell-git
# Manual
git clone https://aur.archlinux.org/quickshell-git.git
cd quickshell-git && makepkg -si
Develparu 在 /etc/paru.conf 默认开启 --devel 选项:
运行 sudo sed -i 's/^Devel$/# Devel/' /etc/paru.conf 进行关闭.
GRUB
sudo sed -i "/GRUB_CMDLINE_LINUX=/s/\"$/ panic=10\"/" /etc/default/grub
sudo sed -i 's/^#GRUB_DISABLE_OS_PROBER=false/GRUB_DISABLE_OS_PROBER=false/' /etc/default/grub
echo 'GRUB_TOP_LEVEL="/boot/vmlinuz-linux"' | sudo tee -a /etc/default/grub
git clone --depth=1 https://github.com/vinceliuice/grub2-themes \
&& cd grub2-themes && sudo ./install.sh -b -t tela -s 2k && cd .. && rm -rf grub2-themes
sudo grub-mkconfig -o /boot/grub/grub.cfg
Snapshot
sudo systemctl status grub-btrfsd
sudo snapper list-configs
sudo systemctl enable --now grub-btrfsd
reboot
sudo snapper -c root create-config /
sudo snapper -c home create-config /home
sudo snapper -c root create -d "Initial root snapshot"
sudo snapper -c home create -d "Initial home snapshot"
sudo systemctl enable --now snapper-cleanup.timer
sudo grub-mkconfig -o /boot/grub/grub.cfg
Keyring
echo -e "auth optional pam_gnome_keyring.so\nsession optional pam_gnome_keyring.so auto_start" | sudo tee -a /etc/pam.d/login
echo -e "auth optional pam_gnome_keyring.so\nsession optional pam_gnome_keyring.so auto_start" | sudo tee -a /etc/pam.d/greetd
Locale
sudo sed -i '/zh_CN\.UTF-8 UTF-8/s/^#\s*//' /etc/locale.gen
sudo locale-gen
sudo localectl set-locale LANG=zh_CN.UTF-8
LC_ALL=C.UTF-8 xdg-user-dirs-update --force
cat ~/.config/user-dirs.dirs
Dotfiles
chezmoi init sabertazimi
chezmoi diff
chezmoi apply -v
Zsh
chsh -s $(which zsh)
exec zsh -l
Development
Modern Linux toolchain:
chsrc set node
rustup default stable
tv update-channels
Git
Complete setup in git config guide.
GitHub
Complete setup in GPG config guide.
Claude Code
Complete setup in Claude Code guide.
OneDrive
rclone config
Steam
Appearance (设置 -> 界面) 中文 + 24小时制 + 开机自启:
sed -i 's|^Exec=/usr/bin/steam %U$|Exec=/usr/bin/steam -silent %U|' ~/.config/autostart/steam.desktop
rm ~/Desktop/steam.desktop
WeChat
Add DLAGENTS=("https::/usr/bin/curl -A 'apt' -fLC - --retry 3 --retry-delay 3 -o %o %u")
to deepin-wine8-stable.PKGBUILD:
paru -S --fm nvim com.qq.weixin.work.deepin
WPS
修复中文输入法:
sudo sed -i '1a export GTK_IM_MODULE=fcitx\nexport QT_IM_MODULE=fcitx5\nexport XMODIFIERS=@im=fcitx' /usr/bin/wps
Wallpapers
chezmoi cd
bash wallpapers/third-party.sh
exit
Settings
- 头像.
- 配色:
应用 Qt 配色与应用 GTK 配色. - 天气.
Virtualization
sudo pacman -S qemu-full virt-manager dnsmasq swtpm
sudo usermod -aG libvirt $USER
sudo systemctl enable --now libvirtd.service
Microsoft Fonts
Delete _loopDev related lines (10 + 4 lines),
add 7z e -aoa "${_isoFile}" path-with-prefix,
and update 7z e -aoa "path-without-prefix" \
to all PKGBUILD:
paru -S --fm nvim ttf-ms-win11-auto ttf-ms-win11-auto-zh_cn ttf-ms-win11-fod-auto-hans