Logo
Overview
Arch 安装记录

Arch 安装记录

kinntaku kinntaku
December 10, 2025
8 min read

[toc]

安装目标

  • 操作系统: ArchLinux

  • 文件系统: Btrfs

  • 引导程序: GRUB

  • 桌面环境: KDE Plasma (Wayland)

  • 登录管理器: greetd + Tuigreet / SDDM

设备信息

  • 华硕天选5Pro (FA607PV)

  • CPU: AMD Ryzen 9 7940HX

  • 内存: 16 GiB 内存

  • GPU1: AMD Radeon 610M

  • GPU2: NVIDIA GeForce RTX 4060 Laptop GPU

安装前的准备

下载 内容

  1. Arch Linux 镜像

  2. (推荐) ventoy

  3. (推荐) Flclash build 包

    • Flclash AUR 包

      下载 Package Actions 中的 Download snapshot

      下载 Source 中的 全部文件

  4. (推荐) 万象拼音

    • 万象拼音 Releases

      下载 最新的 Rime万象拼音输入方案 中的 rime-wanxiang-base.zip

      如果有更新的 实时提交的词库更新 下载 base-dicts.zip 如果词库比输入方案旧则不用下载

    • 语法模型

    • 萌娘词库

      下载最新的 tone_moe.dict.yaml

  5. 部分软件安装包

  6. 需要的 AppImage

    • (推荐) Motrix: 一款下载器

    • (可选) QQ 音乐

    • (可选) PureRef: 一款绘画参考图查看工具

      Linux 下载中选择 Portable 然后 Select amount 中选择第三个 Custom Amount 输入 0 即可下载免费版

    • (可选) QtScrcpy: 一款安卓投屏工具

    • 微信

    PS: 腾讯 QQ 也提供了 AppImage 版本, 但是由于打包问题, 无法使用 AppImageLauncher 安装, 建议直接使用 AUR 包

  7. 字体文件

    • (可选) Nerd Fonts: 用于终端美化显示系统图标等

      这里选择 0xProto Nerd Font

    • (可选) Jetbrains Mono: 好看的编程字体

    • (可选) Windows 字体: 防止wps和qq音乐缺少字体

      从 Windows 系统中拷贝 C:\Windows\Fonts 文件夹下的字体文件到一个单独的文件夹中备用

Ventoy 制作启动盘

系统安装 (Live CD)

chroot 前

禁用 reflector 服务

不禁用也没关系, 后面也会手动换换源

Terminal window
systemctl stop reflector.service
systemctl status reflector.service

(可选) wifi连接

Terminal window
iwctl # 进入交互界面
device list # 查找网卡名称-wlan0
station wlan0 scan
station wlan0 get-networks
station wlan0 connect wifi-name
# 输入密码
exit

更新时钟

Terminal window
timedatectl set-ntp true
timedatectl status

(可选) 使用 ssh 安装

Terminal window
passwd # 设置 root 密码
ip a # 查看 IP 地址
# 使用ssh客户端临时连接
ssh -o StrictHostKeyChecking=no -o "UserKnownHostsFile /dev/null" root@目标计算机的_IP_地址

修改镜像站和仓库

修改 Arch 仓库镜像站

编辑

Terminal window
nano /etc/pacman.d/mirrorlist

在文件的最顶端添加

Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch

(可选) 添加cachyos软件源

CachyOS 是一个基于 Arch Linux 的发行版, 专注于为用户提供更好的性能, 特别是针对AMD硬件进行了优化, 其软件源包含了很多特定优化的软件包.

  1. 导入 CachyOS 的 GPG 密钥并安装相关包

    导入密钥

    Terminal window
    sudo pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
    sudo pacman-key --lsign-key F3B607488DB35A47

    注: 密钥可能会更新, 请进入 CachyOS 官方文档 - Adding Our Repositories to an Existing Arch Linux Install - Manual 选项 - Install CachyOS keyring: 查看最新指令

    安装 CachyOS 相关包

    Terminal window
    sudo pacman -U 'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-keyring-20240331-1-any.pkg.tar.zst' \
    'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-mirrorlist-22-1-any.pkg.tar.zst' \
    'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-v3-mirrorlist-22-1-any.pkg.tar.zst' \
    'https://mirror.cachyos.org/repo/x86_64/cachyos/cachyos-v4-mirrorlist-22-1-any.pkg.tar.zst' \
    'https://mirror.cachyos.org/repo/x86_64/cachyos/pacman-7.0.0.r7.g1f38429-2-x86_64.pkg.tar.zst'

    注: 包可能会更新, 请进入 CachyOS 官方文档 - Adding Our Repositories to an Existing Arch Linux Install - Manual 选项 - Install the necessary packages: 查看最新指令

    注: 如果官方文档也没来得及更新, 可以去 cahcyos 仓库, 比如 中科大镜像站 搜索出错的包, 查看具体版本, 修改安装指令

  2. 启用仓库

    注意:请参考 CachyOS Wiki 选择适合当前设备架构的仓库!错误的软件仓库可能导致系统不稳定或无法正常工作!

    由于笔者使用 Ryzen 9 7940HX, 属于 Zen 4 架构, 因此选择 znver4 仓库

    修改 /etc/pacman.conf

    Terminal window
    nano /etc/pacman.conf

    添加以下内容到仓库中 [core] 项之前

    [cachyos-znver4]
    Include = /etc/pacman.d/cachyos-v4-mirrorlist
    [cachyos-core-znver4]
    Include = /etc/pacman.d/cachyos-v4-mirrorlist
    [cachyos-extra-znver4]
    Include = /etc/pacman.d/cachyos-v4-mirrorlist
    [cachyos]
    Include = /etc/pacman.d/cachyos-mirrorlist
  3. 修改镜像站

    编辑

    Terminal window
    nano /etc/pacman.d/cachyos-mirrorlist

    在最顶端添加

    Server = https://mirrors.ustc.edu.cn/cachyos/repo/$arch/$repo

    编辑

    Terminal window
    nano /etc/pacman.d/cachyos-v3-mirrorlist

    在最顶端添加

    Terminal window
    Server = https://mirrors.ustc.edu.cn/cachyos/repo/$arch_v3/$repo

    编辑

    Terminal window
    nano /etc/pacman.d/cachyos-v4-mirrorlist

    在最顶端添加

    Terminal window
    Server = https://mirrors.ustc.edu.cn/cachyos/repo/$arch_v4/$repo
  4. 更新仓库数据库

    Terminal window
    sudo pacman -Syy

分区

注意: 建议提前备份重要数据, 以免误操作, 以下命令除非你非常清楚, 否则请勿直接复制粘贴执行!

Terminal window
lsblk -f # 查看磁盘结构, 找到目标磁盘, 笔者这里为 /dev/nvme1n1
cfdisk /dev/nvme1n1 # 使用 cfdisk 工具分区

进入 cfdisk 分区工具之后, 你会看到如图所示的界面。通过方向键 可以在要操作磁盘分区或空余空间中移动; 通过方向键 在对当前高亮的磁盘分区或空余空间要执行的操作中移动

首先创建 EFI 分区, 选中 Free space , 再选中操作 [New] , 然后按下回车 Enter 以新建 EFI 分区 按下回车后会提示输入分区大小, 默认为剩余的全部空间, EFI 分区建议最少为 550MB, 笔者选择输入 1G > 然后按下回车 Enter

注意,由于 Windows 更新往往会破坏掉 Windows Boot Manager 所在的 EFI 分区, 因此建议新建一个 EFI 分区专门用于 Linux 的引导程序, 并且这个 EFI 分区和 Windows Boot Manager 所在的 EFI 分区离得越远越好, 最好不要在同一个磁盘上, 但是该 EFI 分区需要和 Linux 系统所在分区在同一个磁盘上

然后创建 Swap 分区, Swap 分区建议为电脑内存大小的 60%, 或者和内存大小相等, 笔者内存为 16G, 所以大小设置为 16G

然后创建 Linux 系统分区, 剩余全部空间用于 Linux 系统分区, 所以直接使用默认值,即剩余全部空间大小

接下来选择分区类型, 选中第一个分区, 即 EFI 分区, 然后选择 [Type] , 按下回车 Enter, 在弹出的分区类型列表中选择 EFI System , 然后按下回车 Enter

然后设置 Sway 分区类型为 Linux swap

Linux 系统分区类型无需修改

然后请仔细确认分区是否正确无误! 包括磁盘选择是否正确! 是否错误的删除了重要分区!

接下来选中操作 [Write] 并回车 Enter, 输入 yes 并回车 Enter 确认分区操作

选中操作 [Quit] 并回车 Enter 以退出 cfdisk 分区工具

Terminal window
lsblk -f # 再次查看磁盘结构, 确认分区无误
# 此处笔者查看分区 /dev/nvme1n1p2 为 EFI 分区, /dev/nvme1n1p3 为 Swap 分区, /dev/nvme1n1p4 为 Linux 系统分区

格式化分区

Terminal window
mkfs.fat -F32 /dev/nvme1n1p2
mkswap /dev/nvme1n1p3
mkfs.btrfs -L ArchLinux /dev/nvme1n1p4 # 输入自己喜欢的分区名字, 并格式化为 btrfs 文件系统

挂载 Btrfs 分区并创建子卷

Terminal window
mount -t btrfs -o compress=zstd /dev/nvme1n1p4 /mnt
df -h
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@cache
btrfs subvolume create /mnt/@log
btrfs subvolume list -p /mnt # 检测子卷是否创建正确
umount /mnt

正式挂载系统

Terminal window
mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme1n1p4 /mnt
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/nvme1n1p4 /mnt/home
mount --mkdir -t btrfs -o subvol=/@cache,compress=zstd /dev/nvme1n1p4 /mnt/var/cache
mount --mkdir -t btrfs -o subvol=/@log,compress=zstd /dev/nvme1n1p4 /mnt/var/log
mount --mkdir /dev/nvme1n1p2 /mnt/boot
swapon /dev/nvme1n1p3
df -h #查看挂载情况

安装基础系统

Terminal window
# 更新密钥环
pacman -S archlinux-keyring
# 安装基础组件
pacstrap -K /mnt base base-devel linux-cachyos linux-cachyos-headers linux-firmware amd-ucode btrfs-progs networkmanager gvim sudo zsh zsh-completions =grub efibootmgr os-prober openssh
软件包名称说明可选替代
base base-devel基础组件
linux-cachyos linux-cachyos-headers(可更换) CachyOS 内核及头文件, 如果之前没有添加 CachyOS 镜像源, 需要换更换linux linux-headers 或 linux-zen linux-zen-headers
linux-firmwarelinux 固件
amd-ucode微码驱动intel-ucode
btrfs-progsBtrfs 工具
networkmanager网络工具
gvim(可更换) 命令行文本编辑器, gvim 相比 vim 多了剪贴板集成nano 或 vim 或 micro
sudo权限工具
zsh zsh-completions(可更换)终端工具bash bash-completion
grub efibootmgr os-prober引导工具,本教程使用 grub, 也可以使用 rEFInd, systemd-boot 或 limine
openssh(可选) sshd 客户端, 方便退出 Live CD 后远程安装系统

分区表

Terminal window
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab # 确认分区表

chroot 后

进入 chroot

Terminal window
arch-chroot /mnt

自定义设置

设置主机名

Terminal window
echo Arch-TUF > /etc/hostname # 设置你喜欢的主机名

设置时区

Terminal window
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

设置语言

编辑

Terminal window
vim /etc/locale.gen

取消注释

Terminal window
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8

生成语言配置

Terminal window
locale-gen

设置语言

Terminal window
echo 'LANG=en_US.UTF-8' > /etc/locale.conf #设置语言

设置密码

Terminal window
passwd root

引导相关

安装引导

Terminal window
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ArchLinux

编辑

Terminal window
vim /etc/default/grub

修改配置 GRUB_CMDLINE_LINUX_DEFAULT

Terminal window
GRUB_CMDLINE_LINUX_DEFAULT ="loglevel=5 nowatchdog modprobe.blacklist=sp5100_tco"

取消注释 GRUB_DISABLE_OS_PROBER

Terminal window
GRUB_DISABLE_OS_PROBER = false

生成引导配置文件

Terminal window
grub-mkconfig -o /boot/grub/grub.cfg

卸载挂载点并重启

Terminal window
exit
umount -R /mnt
reboot

第一次进入系统(root)

使用 root 账户登录

启动基础服务

Terminal window
systemctl enable --now NetworkManager
systemctl enable --now sshd # (可选) 启动sshd服务

(可选) 连接 wifi

Terminal window
nmcli dev wifi list
nmcli dev wifi connect "SSID" password "password"

(可选) 使用 ssh 安装

修改镜像站和仓库

修改 Arch 仓库镜像站

(可选) 添加cachyos软件源

启用 32 位仓库

编辑

Terminal window
vim /etc/pacman.d/mirrorlist

取消 [multilib] 项前的注释

[multilib]
Include = /etc/pacman.d/mirrorlist

想使用 Hyprland 的用户到这里就可以跳转到 Hyprland 使用教程 继续安装了


软件相关

安装软件

Terminal window
pacman -S fastfetch nvidia-open-dkms lib32-nvidia-utils nvidia-utils nvidia-settings libva-nvidia-driver vulkan-radeon vulkan-mesa-layers libva libva-utils power-profiles-daemon vulkan-icd-loader snapper btrfs-assistant grub-btrfs inotify-tools asusctl rog-control-center plasma-meta konsole dolphin egl-wayland ark kleopatra partitionmanager sof-firmware alsa-firmware alsa-ucm-conf fcitx5-im fcitx5-chinese-addons fcitx5-rime fcitx5-configtool wqy-zenhei noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra paru starship firewalld greetd greetd-tuigreet
软件包名称说明可选替代
fastfetch(可选) 大家都在用
nvidia-open-dkms lib32-nvidia-utils nvidia-utils nvidia-settings libva-nvidia-driverNvidia 独显相关
vulkan-radeon vulkan-mesa-layers libva libva-utilsAMD 核显相关
power-profiles-daemon电源管理
vulkan-icd-loaderVlkan 管理
snapper btrfs-assistantBtrfs 快照工具
grub-btrfs inotify-tools(可选) Grub 的 Btrfs 工具, 防滚挂
asusctl rog-control-center华硕相关
plasma-meta konsole dolphin egl-wayland ark kleopatra partitionmanagerKDE 及相关工具
sof-firmware alsa-firmware alsa-ucm-conf音频相关
fcitx5-im fcitx5-chinese-addons fcitx5-rime fcitx5-configtool输入法
wqy-zenhei noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra中文字体
paruAUR 管理器
starship(可选) 终端美化
firewalld(可选) 防火墙
greetd greetd-tuigreet(可选) 登录管理器, 也可以用 kde 自带的sddm

(可选) 卸载软件

Terminal window
pacman -Rns discover sddm-kcm sddm
# 如果你打算使用 greetd, 可以卸载 kde 自带的 sddm
# discover 软件中心有元数据更新问题, 可以卸载

账户设置

修改全局文本编辑器

Terminal window
vim ~/.bash_profile

写入

Terminal window
export EDITOR='vim'

添加账户

Terminal window
useradd -m -G wheel,uccp -s /bin/zsh kinntaku # 选择你喜欢的用户名
# 笔者需要嵌入式开发, 添加了 uccp 组, 普通用户可以不添加
passwd kinntaku

编辑用户权限

Terminal window
EDITOR=vim visudo

取消注释

Terminal window
%wheel ALL=(ALL:ALL) ALL

登录管理器

(选择1) 若使用 sddm

启用服务

Terminal window
systemctl start sddm

(选择2) 若使用 greetd

编辑 greetd 配置文件

Terminal window
vim /etc/greetd/config.toml

修改为以下内容

Terminal window
command = "tuigreet --time --remember --cmd startplasma-wayland"
user = "kinntaku"

启用服务

Terminal window
systemctl enable greetd.service

启用系统服务

Terminal window
systemctl enable --now grub-btrfsd # (可选) 启用 grub-btrfs 服务
systemctl enable --now power-profiles-daemon.service
systemctl --user enable --now pipewire pipewire-pulse wireplumber

重启

Terminal window
reboot

第二次进入系统(rootless)

(可选) 安装字体

Plasma 设置 - 文字和字体 - 字体管理 - 安装字体 - 系统字体

安装软件

(可选) 安装提前准备的 flclash

解压之前下载的 flclash-bin.tar.gz 在文件夹中创建 src 文件夹, 并将在 Source 中下载的所有文件放入 src 文件夹中

进入到提前下载好的 flclash 包所在目录

makepkg
sudo paru -U flclash-bin-xxx.tar.zst

安装用户软件

Terminal window
sudo pacman -S podman xorg-xhost lazydocker distrobox nvidia-container-toolkit picocom cmake jdk21-openjdk obs-studio chromium virt-manager pandoc vlc ffmpeg vlc-plugin-ffmpeg steam blender gimp krita kdenlive localsend
sudo paru -S appimagelauncher wps-office-cn wps-office-mui-zh-cn wemeet-bin linuxqq
软件包名称说明可选替代
podman xorg-xhost lazydocker distrobox nvidia-container-toolkit(可选) 容器开发
picocom(可选) 串口工具
cmake(可选) 构建工具
jdk21-openjdk(可选) java 相关
obs-studio(可选) 录屏推流工具
chromium(可选) 浏览器
virt-manager(可选) 虚拟机工具
pandoc(可选) 文档工具
vlc ffmpeg vlc-plugin-ffmpeg(可选) 影音工具
steam(可选) 游戏
blender gimp krita kdenlive(可选) 生产力工具
localsend(可选) 局域网文件传输工具
appimagelauncher(可选) AppImage安装器
wps-office-cn wps-office-mui-zh-cn(可选) wps相关
wemeet-bin linuxqq(可选) 通讯工具

使用 AppImageLauncher 安装 AppImage

安装需要手动安装的软件

(可选) 安装 micromamba

Terminal window
"${SHELL}" <(curl -L micro.mamba.pm/install.sh)

安装 nvidia-laptop-power-cfg

Terminal window
git clone https://gitlab.com/asus-linux/nvidia-laptop-power-cfg.git
cd nvidia-laptop-power-cfg
makepkg -sfi
systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service
systemctl enable --now nvidia-powerd

实现独显运行软件

编辑

Terminal window
vim ~/.zshrc

添加

Terminal window
alias prime-run='__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia '

此时使用 prime-run 前缀即可实现独显运行软件

修改防火墙设置

Terminal window
sudo firewall-cmd --add-interface=FlClash --zone=trusted --permanent
sudo firewall-cmd --permanent --add-service=ms-wbt
sudo firewall-cmd --zone=public -add-port=53317/tcp --permanent # (可选) 这是LocalSend 的端口, 如果不用可以不开
sudo firewall-cmd --zone=public -add-port=53317/udp --permanent # (可选) 这是LocalSend 的端口, 如果不用可以不开
sudo firewall-cmd --reload

(可选) 美化 vim

编辑

Terminal window
vim ~/.vimrc

写入

Terminal window
set number
colorscheme evening
syntax on

(可选) 修改关机超时

编辑

Terminal window
sudo vim /etc/systemd/system.conf

取消注释并修改为 10s

Terminal window
DefaultTimeoutStopSec=10s

(可选) 阻止usb外设唤醒电脑

创建系统服务

Terminal window
sudo vim /etc/systemd/system/disable-xhc-wakeup.service
[Unit]
Description=Disable all XHC wakeup devices
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c "grep XHC /proc/acpi/wakeup | awk '{print $1}' | while read dev; do echo $dev | tee /proc/acpi/wakeup; done"
RemainAfterExit=true
[Install]
WantedBy=multi-user.target

启用并检查

Terminal window
sudo systemctl enable --now disable-xhc-wakeup.service
cat /proc/acpi/wakeup | grep XHC # 检查外设是否变为disabled

(可选) 禁用密码尝试次数耗尽锁定时间

编辑

Terminal window
sudo vim /etc/security/faillock.conf

修改

Terminal window
deny = 0

fcitx 设置

编辑

Terminal window
sudo vim /etc/profile

添加

Terminal window
export GTK_IM_MODULE=fcitx5
export QT_IM_MODULE=fcitx5
export XMODIFIERS=@im=fcitx5

编辑

Terminal window
sudo vim /etc/environment

添加

Terminal window
XIM=fcitx5
XIM_PROGRAM=fcitx5
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5
SDL_IM_MODULE=fcitx5
GLFW_IM_MODULE=fcitx5

编辑

Terminal window
vim ~/.config/gtk-3.0/settings.ini

添加

Terminal window
gtk-im-module = fcitx

第三次进入系统(rootless)

查看显卡是否动态启动

Terminal window
cat /proc/driver/nvidia/gpus/0000:01:00.0/power #其中 0000:01:00.0 换成你自己的地址

会输出类似

Terminal window
Runtime D3 status: Enabled (fine-grained)
Video Memory: Off
GPU Hardware Support:
Video Memory Self Refresh: Supported
Video Memory Off: Supported
S0ix Power Management:
Platform Support: Supported
Status: Enabled
Notebook Dynamic Boost: Supported

软件设置

(可选) 设置 fcitx 万象拼音

Plasma设置 - 键盘 - 虚拟键盘 - Fcitx 5 Wayland启动器 (实验性)

Plasma设置 - 输入法 - 配置附加组件 - 经典用户界面 - 主题:默认深色,深色主题:默认深色

Plasma设置 - 输入法 - 配置附加组件 - 添加输入法 - 中州韵

Plasma设置 - 输入法 - 配置全局选项 - 切换输入法: Super+空格, 在程序中显示预编辑文本: off

打开 ~/.local/share/fcitx5/rime/

将语法模型wanxiang-lts-zh-hans.gram文件放入这个目录。

把之前下载的方案压缩包(.zip)解压, 然后将解压出来的所有文件和文件夹放入这个目录 (注意不包含压缩包根目录, 其中default.yaml是rime配置, weasel.yaml是小狼毫皮肤等配置, 可选择性放入)

如果有更新的词库文件,将里面的内容覆盖放到 dicts 文件夹中

将萌娘词库文件 tone_moe.dict.yaml 放入 dicts 目录下

编辑 wanxiang.dict.yaml

添加新词库

- dicts/tone_moe

修改 default.yaml

注释掉快捷键, 防止和 vscode 冲突

# - Control+grave

修改 wanxiang.schema.yaml

调整设置

spelling_hints: 0 # 取消拼音显示
tips_key: "Control+q" # 设置快速输入提示键为 Ctrl + Q

右键任务栏 Fcitx 图标 - 选择中州韵 - 右键地球图标项 - 选择重新部署

(可选) micromamba

编辑

Terminal window
vim ~/.zshrc

添加

Terminal window
alias conda='micromamba'

(可选) 如果使用 starship 终端美化, 禁用 micromamba 修改提示符

micromamba config set changeps1 false

plasma

Plasma设置 - 快速设置 - 主题:微风深色,动效速度:即时 - 应用

Plasma设置 - 鼠标和触摸板 - 触摸板 - 反向滚动 - 应用

Plasma设置 - 键盘 - 虚拟键盘 - Fcitx5Wayland - 应用

Plasma设置 - 键盘 - 快捷键 - Spectacle截图工具 - 默认快捷键 - 取消勾选 - 应用

Plasma设置 - 远程桌面 - 勾选系统用户,登录时自动启动,响应速度 - 应用 - 启用rdp服务器

Plasma设置 - 文字和字体 - 字体管理 - 安装字体文件

Plasma设置 - 电源管理 - 空闲时:无操作,按下电源键时:显示注销屏幕

Plasma设置 - 锁屏 - 自动锁定屏幕:不自动锁屏

Plasma设置 - 会话 - 桌面会话 - 登录时自动启动应用程序: 启动为空会话

(可选) starship 终端美化

编辑

Terminal window
vim ~/.zshrc

添加

Terminal window
eval "$(starship init zsh)"

新建主题

Terminal window
starship preset tokyo-night -o ~/.config/starship.toml

编辑

Terminal window
vim ~/.config/starship.toml
"$schema" = 'https://starship.rs/config-schema.json'
format = """
[░▒▓](#a3aed2)\
[ 󰣇 ](bg:#a3aed2 fg:#090c0c)\
[](bg:#769ff0 fg:#a3aed2)\
$directory\
[](fg:#769ff0 bg:#394260)\
$git_branch\
$git_status\
[](fg:#394260 bg:#212736)\
$nodejs\
$rust\
$golang\
$php\
$conda\
[](fg:#212736 bg:#1d2230)\
$time\
[ ](fg:#1d2230)\
\n$character"""
[directory]
style = "fg:#e3e5e5 bg:#769ff0"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = " "
"Pictures" = " "
[git_branch]
symbol = ""
style = "bg:#394260"
format = '[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)'
[git_status]
style = "bg:#394260"
format = '[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)'
[nodejs]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[rust]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[golang]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[php]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
[conda]
symbol = ""
style = "bg:#212736"
format = '[[ $symbol ($environment) ](fg:#769ff0 bg:#212736)]($style)'
[time]
disabled = false
time_format = "%R" # Hour:Minute Format
style = "bg:#1d2230"
format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'

(可选) minegrub

编辑 ./minegrub-world-selection/theme.txt 所有 top 属性都加上 45

复制到主题目录

Terminal window
mkdir -p /boot/grub/themes/
sudo cp -ruv ./minegrub-world-selection /boot/grub/themes/

编辑 grub 文件

Terminal window
sudo vim /etc/default/grub

修改设置

Terminal window
GRUB_TERMINAL_OUTPUT=gfxterm
GRUB_THEME=/boot/grub/themes/minegrub-world-selection/theme.txt

创建 grub 配置

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

(可选) vscode

安装插件

  • background

  • Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code

  • Path Intellisense

  • Panda Theme

"files.autoSave": "afterDelay",
"files.autoGuessEncoding": true,
"workbench.list.smoothScrolling": true,
"editor.cursorSmoothCaretAnimation": "on",
"editor.smoothScrolling": true,
"editor.cursorBlinking": "smooth",
"editor.mouseWheelZoom": true,
"editor.formatOnPaste": true,
"editor.formatOnType": true,
"editor.formatOnSave": true,
"editor.wordWrap": "on",
"editor.guides.bracketPairs": true,
"debug.showBreakpointsInOverviewRuler": true,

设置半透明背景

"background.fullscreen": {
"images": [
"你喜欢的背景图片位置"
],
"opacity": 0.075,
"size": "cover",
"position": "center",
"interval": 0,
"random": false
},

添加字体

"editor.fontFamily": "JetBrains Mono, 'Droid Sans Mono', 'monospace', monospace, 'MesloLGS NF'",

(可选) podman 和 distrobox 设置

编辑

Terminal window
vim ~/.zshrc

添加

Terminal window
PATH=$PATH:$HOME/.local/podman/bin:$HOME/.local/bin
xhost +si:localuser:$USER
export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock
alias docker='podman'

设置配置

Terminal window
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml
sudo nvidia-ctk runtime config ure --runtime=docker
sudo systemctl restart docker
systemctl --user enable --now podman.socket
  • 创建带cuda的Ubuntu容器

    从 Nvidia 的从库获取容器名称

    Terminal window
    distrobox create --name ubuntu2204 --additional-flags "--device nvidia.com/gpu=all" --image docker.io/nvidia/cuda:12.8.0-cudnn-devel-ubuntu22.04 --home /home/kinntaku/Documents/distrobox/ubuntu2204_home

    容器内如出现无法调用 xserver 可以尝试

    Terminal window
    sudo apt install libqt5gui5 -y

    容器内使用独显运行软

    将宿主机的 ~/.zshrc 中的 prime-run 配置复制到容器内的 ~/.zshrc

    Terminal window
    alias prime-run='__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia '

    容器内使用 micromamba

    将宿主机的 ~/.zshrc 中的 micromamba 初始化代码复制到容器内的 ~/.zshrc

    Terminal window
    # >>> mamba initialize >>>
    # !! Contents within this block are managed by 'micromamba shell init' !!
    export MAMBA_EXE='/home/kinntaku/.local/bin/micromamba';
    export MAMBA_ROOT_PREFIX='/home/kinntaku/micromamba';
    __mamba_setup="$("$MAMBA_EXE" shell hook --shell zsh --root-prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
    if [ $? -eq 0 ]; then
    eval "$__mamba_setup"
    else
    alias micromamba="$MAMBA_EXE" # Fallback on help from micromamba activate
    fi
    unset __mamba_setup
    # <<< mamba initialize <<<
    alias conda='micromamba'

    安装软件

    Terminal window
    sudo apt install git vim

    容器内调用 vulkan

    安装软件

    Terminal window
    sudo apt install mesa-utils vulkan-tools libglu1-mesa libxt6 libxmu6 libx11-6 libxrender1 libxrandr2 libxi6 libxcursor1 libxinerama1 libxxf86vm1

    测试 vulkan

    Terminal window
    prime-run glxinfo | grep OpenGL

    应该显示包含 Nvidia 的内容

配置 VSCode 进行开发

vscode 安装插件

  • Remote Development

修改 vscode 设置

"dev.containers.dockerPath": "podman",

注意: 每次更新 nvidia 驱动后都需要重新执行以下命令确保容器的动态链接库版本正常

Terminal window
sudo nvidia-ctk cdi generate --output=/etc/cdi/nvidia.yaml

(可选) mujoco 设置

编辑

Terminal window
vim ~/.zshrc

添加路径

Terminal window
export PATH="/home/kinntaku/Applications/mujoco-3.3.7/bin:$PATH"

(可选) chromium

如果出现 twitter 无法登录可以尝试添加以下启动参数

Terminal window
--use-spdy=off

安装扩展

安装油猴脚本

(可选) latex

拉取镜像

Terminal window
podman pull docker.io/texlive/texlive

创建容器

Terminal window
podman run -it \
--name kinntakutexbox \
-v ~/Documents/Latex/texproject1:/alltex/texproject1 \
-w /alltex/texproject1 \
texlive/texlive \
bash

重新启用

Terminal window
podman start -ai kinntakutexbox

安装字体

Terminal window
tlmgr install fandol

vscode 连接容器

vscode server 安装插件

  • LaTeX

  • LaTeX Workshop`

修改 vscode 设置

// 鼠标悬停,预览公式时,支持 boldsymbol 宏
"latex-workshop.hover.preview.mathjax.extensions": [
"boldsymbol"
],
// 是否启用 IntelliSense,自动补全引用的包中的环境和命令
"latex-workshop.intellisense.package.enabled": true,
// 编译后的文件输出目录
"latex-workshop.latex.outDir": "./tmp",
// 默认编译引擎为上次使用的
"latex-workshop.latex.recipe.default": "lastUsed",
// 预览复杂公式,使用时需要通过 command palette (命令面板) 打开
"latex-workshop.mathpreviewpanel.cursor.enabled": true,
"latex-workshop.latex.recipes": [
{
"name": "XeLaTeX",
"tools": [
"xelatexmk"
]
},
{
"name": "PdfLaTeX",
"tools": [
"pdflatexmk"
]
}
],
"latex-workshop.latex.tools": [
{
"name": "xelatexmk",
"command": "latexmk",
"args": [
"-synctex=1",
"-xelatex",
"-interaction=nonstopmode",
"-file-line-error",
"-outdir=%OUTDIR%",
"%DOC%"
],
"env": {}
},
{
"args": [
"-synctex=1",
"-pdf",
"-interaction=nonstopmode",
"-file-line-error",
"-outdir=%OUTDIR%",
"%DOC%"
],
"command": "latexmk",
"env": {},
"name": "pdflatexmk"
}
],

(可选) labelme

Terminal window
conda create -n labelme python=3.13
conda activate labelme
pip install labelme

创建快捷方式

#!/bin/bash
export QT_QPA_PLATFORM=xcb
micromamba run -n labelme labelme

(可选) pdfmathtranslate-next

使用 docker

Terminal window
podman pull docker.io/awwaawwa/pdfmathtranslate-next
podman run --rm -p 7860:7860 docker.io/awwaawwa/pdfmathtranslate-next
http://127.0.0.1:7860

(可选) Minecraft

创建 hmcl 的快捷方式

#!/bin/bash
export __NV_PRIME_RENDER_OFFLOAD=1
export __GLX_VENDOR_LIBRARY_NAME=nvidia
java -Dglass.gtk.uiScale=1.5 -jar ~/Applications/Minecraft/HMCL-3.8.0.304.jar

(可选) Kirta

Kirta - 笔刷 - 笔刷编辑器 - 大小 - 覆盖旧笔刷 - 保存

Kirta - 设置 - 配置Kirta - 笔刷光标图标 - 箭头 - 笔刷轮廓形状 - 圆形轮廓

(可选) Github

Terminal window
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
ssh-keygen -t ed25519 -C "你的邮箱"
cat ~/.ssh/id_ed25519.pub
ssh -T git@github.com

(可选) XnviewMP

设置 - 标签卡 - 仅打开一个文件时隐藏标签: on; 退出 XnView 时, 关闭最后一个选项卡: on, 查看器标签卡上限: 1

设置 - 鼠标 - 鼠标左键 - 无修饰键: 移动图片

设置 - 鼠标 - 滚轮 - 无修饰键: 向上/向下滚动

设置 - 鼠标 - 鼠标右键 - 无修饰键: 创建选区

一些奇怪的问题

部分傻逼软件的快捷方式修复

  • qq: 添加启动参数

    Terminal window
    -enable-features=UseOzonePlatform -ozone-platform=wayland --enable-wayland-ime --wayland-text-input-version=3
  • wechat: 添加环境变量

    Terminal window
    QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx GTK_IM_MODULE=fcitx
  • qq 音乐: 添加启动参数

    Terminal window
    --no-sandbox

安装字体导致字体 fallback 链出问题

创建

Terminal window
vim /etc/fonts/conf.d/99-my-global.conf

写入

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<!-- 强制重写 generic family,让它进入 alias 阶段 -->
<match target="pattern">
<test name="family" compare="eq">
<string>sans-serif</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans</string>
</edit>
</match>
<match target="pattern">
<test name="family" compare="eq">
<string>serif</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Serif</string>
</edit>
</match>
<match target="pattern">
<test name="family" compare="eq">
<string>monospace</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>Noto Sans Mono</string>
</edit>
</match>
<!-- Noto Sans 的 fallback 链 -->
<alias binding="same">
<family>Noto Sans</family>
<prefer>
<family>Noto Sans CJK SC</family>
</prefer>
</alias>
<!-- Noto Serif 的 fallback 链 -->
<alias binding="same">
<family>Noto Serif</family>
<prefer>
<family>Noto Serif CJK SC</family>
</prefer>
</alias>
<!-- Noto Sans Mono 的 fallback 链 -->
<alias binding="same">
<family>Noto Sans Mono</family>
<prefer>
<family>Noto Sans Mono CJK SC</family>
</prefer>
</alias>
</fontconfig>

刷新缓存

Terminal window
sudo fc-cache -f -v

验证

Terminal window
fc-match sans
fc-match serif
fc-match monospace

应该看到类似

Terminal window
NotoSans-Regular.ttf: "Noto Sans" "Regular"
NotoSerif-Regular.ttf: "Noto Serif" "Regular"
NotoSansMono-Regular.ttf: "Noto Sans Mono" "Regular"