Skip to content

设备介绍

  • AMD 锐龙 7 PRO 8845HS
  • 32GBx2 DDR5 5600MHz
  • PCIe 4.0 NVMe SSD 2TB

Geekbench 6 跑分结果:

备份旧发行版

我并没有备份整个系统,而只是将 home 目录压缩拷贝了出来。

shell
# 将个人目录打包
sudo tar -cf /tmp/home_xxx.tar /home/xxx
# 新开终端查看打包后大小
watch -n 1 ls -lh /tmp/home_xxx.tar

系统配置

登录失败次数和锁定时间

shell
# 修改 faillock 配置文件
$ sudo nano /etc/security/faillock.conf

# 在这个时间段内累计的失败次数如果超过 deny,则触发锁定。
fail_interval = 900
# 在 fail_interval 间隔内,允许连续输错密码的次数。超过此数值,账户将被锁定。设置为 0 表示不锁定账户。
deny = 10
# 账户被锁定后,需要等待多久才能自动解锁。设置为 0 或 never 表示必须手动通过 faillock 命令解锁。
unlock_time = 30

Pacman 换源

如果在安装前选了时区和语言,/etc/pacman.d/mirrorlist开头会默认有Country : China的源。

##
## Manjaro Linux default mirrorlist
## Generated on 2025-06-30 23:48
##
## Please use 'pacman-mirrors -f [NUMBER] [NUMBER]' to modify mirrorlist
## (Use 0 for all mirrors)
##

## Country : China
Server = https://mirrors.jlu.edu.cn/manjaro/stable/$repo/$arch

## Country : United_States
Server = https://ohioix.mm.fcix.net/manjaro/stable/$repo/$arch

## Country : Bangladesh
Server = https://bd.mirror.vanehost.com/Manjaro/stable/$repo/$arch

如果没有,参考 archlinux | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 换源。

或者使用命令:

shell
sudo pacman-mirrors -c china

Pacman 配置

shell
# 修改 Pacman 配置文件
sudo nano /etc/pacman.conf
  • 启用 Pacman 颜色:取消注释#ColorColor
  • 调整并行下载线程数:修改ParallelDownloads = 4的值

网络时间同步

shell
# 启用网络时间同步
sudo timedatectl set-ntp true

# 如果是 Windows 双系统,建议设置 RTC 使用本地时间,防止切换系统后时间相差 8 小时
sudo timedatectl set-local-rtc 1 --adjust-system-clock

# 检查状态
timedatectl status

终端粘贴出现 ^[[200~

shell
# 临时解决
$ printf "\e[?2004l"

# 永久解决,追加内容
$ nano ~/.zshrc

# 禁用 Zsh 的 Bracketed Paste Mode (解决粘贴出现 ^[[200~ 的问题)
unset zle_bracketed_paste

ArchLinuxCN 源

shell
# 在末尾添加 ArchLinuxCN 源并注释
sudo nano /etc/pacman.conf

# [archlinuxcn]
# Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

# 启用源 (使用 sed 去掉行首的 #)
sudo sed -i 's/^# *\[\(archlinuxcn\)\]/[\1]/; s/^# *\(Server.*archlinuxcn\)/\1/' /etc/pacman.conf
# 首次使用时安装 ArchLinuxCN 的 GPG 密钥
sudo pacman -Sy archlinuxcn-keyring
# 刷新数据库 (仅同步数据库,不要进行全局更新 -Su)
sudo pacman -Sy
# 安装需要的软件
sudo pacman -S ttf-maplemono-nf-cn-unhinted
# 禁用源 (安装完成后立即恢复注释,防止系统更新时混用)
sudo sed -i 's/^\[\(archlinuxcn\)\]/# [\1]/; s/^\(Server.*archlinuxcn\)/# \1/' /etc/pacman.conf

加速 AUR 的 GitHub 下载和 git clone GitHub 仓库

安装 axel 多线程下载工具,创建替换 github 下载的脚本:

shell
# 安装 axel
$ sudo pacman -S axel
# 创建脚本文件
$ sudo nano /home/duanluan/workspaces/bin/github-mirror-axel.sh

github-mirror-axel.shshell-scripts/github-mirror-axel.sh at main · duanluan/shell-scripts

shell
# 保存退出后赋予可执行权限
$ sudo chmod +x /home/duanluan/workspaces/bin/github-mirror-axel.sh

修改makepkg.conf

shell
# 复制 /etc/pacman.conf 到个人目录,避免系统更新 pacman 包时覆盖
cp /etc/makepkg.conf ~/.makepkg.conf

# 修改 ~/.makepkg.conf
nano ~/.makepkg.conf

# 找到 DLAGENTS 部分,修改为如下内容
DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
          #'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
          #'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
          #'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
          'ftp::/usr/bin/axel -n 10 -a -o %o %u'
          'http::/usr/bin/axel -n 10 -a -o %o %u'
          'https::/home/duanluan/workspaces/bin/github-mirror-axel.sh %o %u'
          'rsync::/usr/bin/rsync --no-motd -z %u %o'
          'scp::/usr/bin/scp -C %u %o')

遇到“没有状态文件,无法恢复下载!”提示,是因为之前使用 curl 下载到一半,现在又用 axel 下载。

删除缓存后重新下载,例如:

shell
rm -rf ~/.cache/paru/clone/geekbench
paru geekbench

github 下载生效:

shell
$ paru clash-verge-rev-bin

==> 获取源代码...
  -> 正在下载 clash-verge-rev-2.4.2-x86_64.deb...
github-mirror-axel.sh 生效
正在初始化下载:https://gh-proxy.com/https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v2.4.2/Clash.Verge_2.4.2_amd64.deb
File size: 47.8972 兆字节 (50223894 bytes)
正在打开输出文件 clash-verge-rev-2.4.2-x86_64.deb.part
正在开始下载

连接 0 完成下载
连接 1 完成下载
[100%] [.....................................................................................] [   2.7MB/s] [00:00]

已下载 47.8972 兆字节,用时 17 秒。(2766.17 KB/s)

配置 URL 重写,加速 GitHub Clone:

shell
# 删除旧规则(如果配置过)
git config --global --unset-all url."https://download.fastgit.org/https://github.com/".insteadof
# 设置新规则
git config --global url."https://gh-proxy.com/https://github.com/".insteadof "https://github.com/"
# 查看所有规则
git config --global --get-regexp url

克隆 github 仓库生效:

shell
$ paru rime-ice

==> 获取源代码...
  -> 正在克隆 rime-ice git 仓库...
克隆到纯仓库 '/home/duanluan/.cache/paru/clone/rime-ice-git/rime-ice'...
remote: Enumerating objects: 11879, done.
remote: Counting objects: 100% (44/44), done.
remote: Compressing objects: 100% (35/35), done.
remote: Total 11879 (delta 24), reused 9 (delta 9), pack-reused 11835 (from 3)
接收对象中: 100% (11879/11879), 232.18 MiB | 7.03 MiB/s, 完成.

参考 Archlinux AUR 加速完整设置 – 平凡生活小记

加速 curl / wget GitHub 下载

shell
# 创建脚本文件
$ nano /home/duanluan/workspaces/bin/github-wrappers.sh

github-wrappers.shshell-scripts/github-wrappers.sh at main · duanluan/shell-scripts

shell
# 授予可执行权限
$ chmod +x /home/duanluan/workspaces/bin/github-wrappers.sh
# 编辑 zsh 配置文件,在文件末尾添加
$ nano ~/.zshrc

#  加载 GitHub 镜像加速的 Shell 包装器
if [ -f /home/duanluan/workspaces/bin/github-wrappers.sh ]; then
    source /home/duanluan/workspaces/bin/github-wrappers.sh
fi

# 保存退出后使配置生效
$ source ~/.zshrc

修改 GitHub Host 加速

shell
# 备份 hosts 文件
sudo cp /etc/hosts /etc/hosts.bak

访问 https://github-hosts.tinsfox.com/hosts,复制内容

shell
# 内容追加到 /etc/hosts 末尾
nano /etc/hosts

参考:GitHub Host - 加速访问 GitHub | 自动更新的 Hosts 工具

或者使用脚本:shell-scripts/update-github-hosts.sh at main · duanluan/shell-scripts

安装 Fcitx5(必看)

进入系统后,Manjaro Hello 弹窗中点击Applications按钮,勾选Extended language support-Manjaro Asian Input Support Fcitx5,点击UPDATE SYSTEM按钮。

选择fcitx5-chinese-addons: 简体中文 | Simplified Chinese安装。

开始菜单,离开-注销并重新登录,按Ctrl Space切换输入法。

开始菜单搜索输入法

可选修改配置:

  • 配置全局选项-快捷键
    • 切换启用/禁用输入法快捷键改成Ctrl Shift
  • 配置全局选项-行为
    • 共享输入状态选择所有

可选删除快捷键:

  • 配置全局选项-快捷键
    • 切换是否使用嵌入预编辑
  • 键盘-汉语-右侧配置图标:
    • 切换提示模式
    • 触发一次提示模式
  • 配置附加组件
    • 模块-标点-切换键
    • 模块-剪贴板-触发键
    • 模块-简繁转换-切换键
    • 模块-快速输入-触发键
    • 模块-云拼音-切换键
    • 模块-Unicode-触发键使用十六进制数字输入 Unicode 字符

系统更新

开始菜单搜索软件更新应用更新。

shell
sudo pacman -Syu

更新后要重启系统,否则系统内核和内核模块版本对不上,导致modprobe tun等命令运行失败。

DPI 缩放

开始菜单搜索显示器配置,修改全局缩放率应用后重新登录生效。

切换个人目录下语言

shell
# 安装 xdg-user-dirs-gtk
sudo pacman -S xdg-user-dirs-gtk
export LANG=en_US
xdg-user-dirs-gtk-update

选择“Update Names”。

shell
export LANG=zh_CN.UTF-8
xdg-user-dirs-gtk-update

勾选“不要再次询问我”,选择“保留旧的名称”。

手动删除主文件夹下残留的视频、图片、文档、下载、桌面等中文文件夹。

Dolphin 中左侧常用位置项右键编辑,修改位置。

取消 KRunner、KWin/窗口管理、plasmashell/Plasma 工作空间 的全局快捷键

取消勾选系统设置 键盘 快捷键中的活动快捷键后应用

KRunner

  • 启动:Alt+F2

KWin/窗口管理

  • 切换到桌面1:Ctrl+F1
  • 切换到桌面2:Ctrl+F2
  • 切换到桌面3:Ctrl+F3
  • 切换到a桌面4:Ctrl+F4
  • 显示隐藏窗口平铺(窗口类):Ctrl+F7
  • 显示隐藏窗口平铺(当前桌面):Ctrl+F9
  • 显示隐藏窗口平铺(全部桌面):Ctrl+F10
  • 暂停显示特效合成:Alt+Shift+F12

plasmashell/Plasma 工作空间

  • 激活应用程序启动器:Alt+F1
  • 显示桌面:Ctrl+F12

创建虚拟屏(远程必看)

远程连接时,如果本地没有连接显示器或显示器未开启,会导致无法连接或黑屏。通过以下配置强制创建一个虚拟屏幕即可解决。

开源驱动(Intel/AMD)

通过内核参数强制创建一个虚拟接口。

shell
# 查看当前系统识别到的显示接口 (用于确认 HDMI/DP 端口的具体名称)
$ ls /sys/class/drm/

card1       card1-DP-2  card1-HDMI-A-1  card1-HDMI-A-3  card1-HDMI-A-5  card2-DP-4  card2-DP-6      renderD128  version
card1-DP-1  card1-DP-3  card1-HDMI-A-2  card1-HDMI-A-4  card2           card2-DP-5  card2-HDMI-A-6  renderD129

# 列出各显示接口的状态,使用 disconnected 的接口名称
$ grep "^" /sys/class/drm/*/status

/sys/class/drm/card1-DP-1/status:disconnected
/sys/class/drm/card1-DP-2/status:disconnected
/sys/class/drm/card1-DP-3/status:disconnected
/sys/class/drm/card1-HDMI-A-1/status:disconnected
/sys/class/drm/card1-HDMI-A-2/status:disconnected
/sys/class/drm/card1-HDMI-A-3/status:disconnected
/sys/class/drm/card1-HDMI-A-4/status:disconnected
/sys/class/drm/card1-HDMI-A-5/status:disconnected
/sys/class/drm/card2-DP-4/status:disconnected
/sys/class/drm/card2-DP-5/status:disconnected
/sys/class/drm/card2-DP-6/status:disconnected
/sys/class/drm/card2-HDMI-A-6/status:connected


# 编辑 GRUB 配置文件
$ sudo nano /etc/default/grub

# 在 GRUB_CMDLINE_LINUX_DEFAULT 中追加 video=接口名称:分辨率@刷新率
GRUB_CMDLINE_LINUX_DEFAULT='quiet splash udev.log_priority=3 video=HDMI-A-1:3840x2160@60e'

# 更新 GRUB 引导
$ sudo grub-mkconfig -o /boot/grub/grub.cfg

NVIDIA 闭源驱动(X11)

NVIDIA 驱动无法通过 GRUB 注入,需修改 Xorg 配置文件来实现“双屏并存”(真实屏+虚拟屏)。

shell
# 查询显卡 PCI 地址,获取显卡 BusID
$ lspci | grep -i vga

# 记下 01:00.0,在配置文件中需转换为十进制格式 PCI:1:0:0
01:00.0 VGA compatible controller: NVIDIA Corporation AD107 [GeForce RTX 4060] (rev a1)

# 查看当前连接的接口名称,找到 connected 的那个,记下 DFP-4、HDMI-0
$ nvidia-settings -q dpys

    [4] njcm-pc:0[dpy:4] (HDMI-0) (connected, enabled)

      Has the following names:
        DFP
        DFP-4
        DPY-EDID-b83621ba-cd9f-fefb-a8c5-a438b3e7a04b
        DPY-4
        HDMI-0
        Connector-1

# 点击`Acquire EDID...`按钮将`edid.bin`保存到当前用户主目录
$ nvidia-settings

shell
# 将 EDID 文件移动到 X11 目录并授权
$ sudo mv edid.bin /etc/X11/edid.bin
$ sudo chmod 644 /etc/X11/edid.bin

# 生成 1080P EDID 数据
python -c "import binascii; open('virtual_1080p.bin', 'wb').write(binascii.unhexlify('00ffffffffffff0031d8000000000000051601036d3c2278ea5e03a1544c99260f5054a1080081800101010101010101010101010101023a801871382d40582c450056502100001e000000fc004c696e7578204648440a20202020000000fd00323c1e4611000a202020202020000000ff004c696e75782023300a2020202001ba02030400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000092'))"
# 移动并授权
$ sudo mv virtual_1080p.bin /etc/X11/virtual_1080p.bin
$ sudo chmod 644 /etc/X11/virtual_1080p.bin

# 创建 Xorg 配置文件
$ sudo nano /etc/X11/xorg.conf.d/20-nvidia-headless.conf

# --- 内容如下 ---
Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    # 根据 lspci 结果修改 BusID,例如 01:00.0 改为 PCI:1:0:0
    BusID          "PCI:1:0:0"

    # --- 核心配置开始 ---
    # 1. 允许无显示器启动
    Option         "AllowEmptyInitialConfiguration" "True"

    # 2. 强制开启双端口:填入 [真实接口], [虚拟空闲接口]
    # 例如:DFP-4 是真实屏幕,DFP-0 是我们要生成的虚拟屏
    Option         "ConnectedMonitor" "DFP-4, DFP-0"

    # 3. 分别加载不同的 EDID:真实屏用原厂数据,虚拟屏用生成的 1080P 数据
    Option         "CustomEDID" "DFP-4:/etc/X11/edid.bin; DFP-0:/etc/X11/virtual_1080p.bin"
    # --- 核心配置结束 ---
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection     "Display"
        Depth       24
        # 虚拟屏的默认参考分辨率
        Modes      "1920x1080"
    EndSubSection
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    # 保持 DPMS 开启,允许 KDE 进行电源管理
    Option         "DPMS"
EndSection
# --- end ---


# 禁用系统自动生成的配置(通常是 90-mhwd.conf)
$ sudo mv /etc/X11/xorg.conf.d/90-mhwd.conf /etc/X11/xorg.conf.d/90-mhwd.conf.bak
# 禁用 dummy 驱动配置(如果存在)
$ sudo mv /etc/X11/xorg.conf.d/10-headless.conf /etc/X11/xorg.conf.d/10-headless.conf.bak

解决物理显示器无法点亮/黑屏

当物理显示器关闭电源再打开,或系统休眠唤醒后出现黑屏(但远程正常),说明显卡信号握手失败。需配置脚本强制重置输出信号。

shell
# 创建信号重置脚本
$ nano ~/workspaces/bin/reset_screen.sh

#!/bin/bash
# 1. 强制关闭真实显示器输出,其中 HDMI-0 替换为你的接口名称
xrandr --output HDMI-0 --off
# 等待 1 秒让电容放电/状态生效
sleep 1
# 2. 重新开启并设为主屏
# --auto: 恢复最佳分辨率
# --primary: 确保任务栏回归
# 不指定位置(--right-of),交由 KDE 自动恢复之前的布局记忆
xrandr --output HDMI-0 --auto --primary

# 保存退出后赋予可执行权限
$ chmod +x ~/workspaces/bin/reset_screen.sh

开始菜单搜索快捷键-新增-命令或脚本,命令:~/workspaces/bin/reset_screen.sh

右侧添加,输入快捷键Meta F10,右下角应用

显示器打开电源后按Meta F10,等待几秒即可亮屏。

故障恢复

重启后无法进入图形界面,通过 SSH 登录或 TTY(Ctrl Alt F2)执行以下命令恢复:

shell
# 恢复 GRUB 配置
sudo nano /etc/default/grub
# 删除 video= 接口名称:分辨率@刷新率 部分
# 更新 GRUB 引导
sudo grub-mkconfig -o /boot/grub/grub.cfg

# 删除自定义配置
sudo mv /etc/X11/xorg.conf.d/20-nvidia-headless.conf /etc/X11/xorg.conf.d/20-nvidia-headless.conf.bak
# 恢复系统自动生成的配置
sudo mv /etc/X11/xorg.conf.d/90-mhwd.conf.bak /etc/X11/xorg.conf.d/90-mhwd.conf
# 恢复 dummy 驱动配置(如果存在)
sudo mv /etc/X11/xorg.conf.d/10-headless.conf.bak /etc/X11/xorg.conf.d/10-headless.conf

# 重启系统
sudo reboot