LOADING

加载过慢请开启缓存 浏览器默认开启

我的 Arch + Niri 全安裝及配置

ArchLinux 安裝

网络配置

首先检查网络连接状态, 查看网络连接, 如出现 ip 地址则说明连接

ip a

ping 一下网址看是否正常连接

ping baidu.com

连接 wifi

# 进入 wifi 连接模式
iwctl

# 连接你的 wifi, 回车后输入 wifi 密码后再次回车
station wlan0 connect <你的 wifi 名称>

# 退出
exit

同步时间

timedatectl set-ntp true

硬盘分区

列出详细的硬盘信息, 记住你的设备名称, 我这边是 /dev/nvme0n1

lsblk -pf

分区, 上下左右进选择
New -> Partition size: 1g -> Type -> EFI System
New -> Partition size: <你剩下的所有空间> -> Write -> Quite

cfdisk /dev/nvme0n1

再次列出详细的硬盘信息

lsblk -pf
# NAME             FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% # MOUNTPOINTS
# /dev/nvme0n1
# ├─/dev/nvme0n1p1 vfat   FAT32       EFF6-F931                             659.2M    #35% /boot
# └─/dev/nvme0n1p2 btrfs              14ea5817-05e1-4798-bdec-8f98f9cb0a5a  206.4G    #13% /home

格式化启动分区

mkfs.fat -F 32 /dev/nvme0n1p1

格式化 BTRFS 根目录

mkfs.btrfs /dev/nvme0n1p2

创建 BTRFS 分区子卷, 先挂载根分区, 再创建子卷

mount -t btrfs -o compress=zstd /dev/nvme01n1p2 /mnt && \
btrfs subvolume create /mnt/@ && \
btrfs subvolume create /mnt/@home && \
btrfs subvolume create /mnt/@swap

取消挂载

umount /mnt

正式挂载

mount -t btrfs -o subvol=/@,compress=zstd /dev/nvme0n1p2 /mnt && \
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/nvme0n1p2 /mnt/home && \
mount --mkdir -t btrfs -o subvol=/@swap,compress=zstd /dev/nvme0n1p2 /mnt/swap && \
mount --mkdir /dev/nvme01np1 /mnt/boot

复查挂载 /mnt /mnt/home /mnt/swap /mnt/boot 存在即可

df -h

更新密钥

pacman -Sy archlinux-keyring

安装系统

pacstrap -K /mnt base base-devel linux linux-firmware btrfs-progs

安装必要软件, 若为 AMD 则将 intel-ucode 换为 amd-ucode

pacstrap /mnt networkmanager nano sudo intel-ucode

创建 swap 文件, 这边以 RedHat 官网文档为参考

系统中的 RAM 量 推荐的 swap 空间 如果允许休眠则推荐使用 swap 空间
⩽ 2 GB RAM 量的 2 倍 RAM 量的 3 倍
> 2 GB – 8 GB 与 RAM 量相等 RAM 量的 2 倍
> 8 GB – 64 GB 至少 4 GB RAM 量的 1.5 倍
> 64 GB 至少 4 GB 不推荐休眠

我的电脑内存为 16GB 但这边我不需要休眠所以只设置 8GB

btrfs filesystem mkswapfile --size 8g --uuid clear /mnt/swap/swapfile

启动 swap

swapon /mnt/swap/swapfile

生成 fstab

genfstab -U /mnt > /mnt/etc/fstab

进入系统

arch-chroot /mnt

设置主机名

nano /etc/hostname

设置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

同步时间

hwclock --systohc

设置本地化

nano /etc/locale.gen
- #en_US.UTF-8 UTF-8
+ en_US.UTF-8 UTF-8
- #zh_CN.UTF-8 UTF-8
+ zh_CN.UTF-8 UTF-8

生成区域设置

locale-gen

编辑配置文件

nano /etc/locale.conf
+ LANG=en_US.UTF-8

设置 root 密码, 密码不会显示

passwd

安装引导程序

pacman -S grub efibootmgr os-prober

安装 grub

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=<你想要的任何名字>

编辑 grub, 若为 AMD 则将 iTCO_WDT 换为 sp5100_tco

nano /etc/default/grub
- GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quit"
+ GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog modprobe.blacklist=iTCO_WDT"
- #GRUB_DISABLE_OS_PROBER=false
+ GRUB_DISABLE_OS_PROBER=false

生成 grub 配置文件

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

退出 chroot

exit

重启

reboot

先联网

systemctl enable --now NetworkManager

无线网链接

nmcli dev wifi connect <你的 wifi 名称> password <你的 wifi 密码>

ping 一下确认网络已连接

ping baidu.com

Niri 安装和配置

先上成品图

创建新用户

基本安装和配置

创建新用户

sudo useradd -m -G wheel -s /bin/bash 你的用户名

设置密码

sudo passwd 你的用户名

修改 visudo 默认编辑器, 会用 vi/vim 可跳过这一步

sudo nano ~/.bashrc
VISUAL="nano" ; export VISUAL
EDITOR="$VISUAL" ; export EDITOR

配置 sudo 权限

source ~/.bashrc && sudo visudo
- # %wheel ALL=(ALL) ALL
+   %wheel ALL=(ALL) ALL

国内环境优先配置镜像源, 这边推荐 tuna

sudo echo -e "Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/\$repo/os/\$arch" > /etc/pacman.d/mirrorlist

更新软件包缓存

sudo pacman -Syyu

安装必要的包, 根据自己需求做删减

sudo pacman -S --needed fuzzel mako niri xwayland-satellite base-devel git yazi fastfetch ffmpeg p7zip nano dms-shell noto-fonts-cjk wqy-microhei wqy-zenhei vlc vlc-plugins-all

安装 paru

git clone https://aur.archlinux.org/paru.git && cd paru && makepkg -si

部分耳熟能详的包名不会列在下面了

软件名 简述
fuzzel 应用程序启动器
mako 轻量级通知管理器
niri 平铺式窗口管理器
xwayland-satellite x11 应用的 Wayland 桥接工具
yazi 文件管理
fastfetch 系统信息获取工具
alacritty-graphics 现代终端模拟器
tlp 电源管理工具

先国际惯例 fastfech 一下

                  -`                     lumorian@Lumorian-Dell
                 .o+`                    ----------------------
                `ooo/                    OS: Arch Linux x86_64
               `+oooo:                   Host: G3 3500
              `+oooooo:                  Kernel: Linux 6.12.58-1-lts
              -+oooooo+:                 Uptime: 9 days, 11 hours, 27 mins
            `/:-:++oooo+:                Packages: 912 (pacman), 9 (flatpak)
           `/++++/+++++++:               Shell: bash 5.3.3
          `/++++++++++++++:              Display (AUOED8F): 1920x1080 in 15", 120 Hz [Built-in]
         `/+++ooooooooooooo/`            Terminal: /dev/pts/0
        ./ooosssso++osssssso+`           CPU: Intel(R) Core(TM) i5-10300H (8) @ 4.50 GHz
       .oossssso-````/ossssss+`          GPU 1: NVIDIA GeForce GTX 1650 Mobile / Max-Q [Discrete]
      -osssssso.      :ssssssso.         GPU 2: Intel UHD Graphics @ 1.05 GHz [Integrated]
     :osssssss/        osssso+++.        Memory: 6.02 GiB / 15.42 GiB (39%)
    /ossssssss/        +ssssooo/-        Swap: 0 B / 8.00 GiB (0%)
  `/ossssso+/:-        -:/+osssso+-      Disk (/): 51.18 GiB / 237.47 GiB (22%) - btrfs
 `+sso+:-`                 `.-/+oso:     Local IP (Mihomo): 198.18.0.1/30
`++:.                           `-/+/    Battery (DELL M4GWP06): 100% [AC Connected]
.`                                 `/    Locale: zh_CN.UTF-8

启用 niri 和 mako

systemctl --user add-wants niri.service mako.service

配置 dms

sudo nano ~/.config/niri/config.kdl

在无任何{}内写入

spawn-at-startup "dms" "run"

配置 nano

sudo nano /etc/nanorc
set autoindent
set tabsize 4
set tabstospaces
set linenumbers
set constantshow
set mouse
set softwrap

bind M-L linenumbers main

set titlecolor bold,white
set numbercolor cyan
set keycolor green
set functioncolor yellow
set statuscolor cyan

include "/usr/share/nano/*.nanorc"
include "/usr/share/nano/extra/*.nanorc"

配置 niri

nano ~/.config/niri/config.kdl

最顶部添加, 不要放进任何{}

prefer-no-csd
\\ 圆角配置段
window-rule {
    geometry-corner-radius 12
    clip-to-geometry true
}

安装和配置 alacritty

通过 aur 安装 alacritty-graphics, 不选择 alacritty 是因为 yazi 的预览图片功能在 alacritty 会有问题

paru -S alacritty-graphics
nano ~/.config/niri/config.kdl
window-rule {
  match app-id="Alacritty"
  draw-border-with-background false
  opacity 0.8
}

安装和配置 rime

sudo pacman -S fcitx5 fcitx5-rime

配置主题, 想自己搭配的也可以试试这个网站

paru -S fcitx5-skin-ori-git

默认简体中文 + 半角标点

touch ~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml && nano ~/.local/share/fcitx5/rime/luna_pinyin.custom.yaml
patch:
  switches:
    - name: simplification
      reset: 1
      states: [ 漢字, 汉字 ]
    - name: full_shape
      reset: 0
      states: [ 半角, 全角 ]
  punctuator:
    half_shape:
      "!": "!"
      "\"": "\""
      "#": "#"
      "$": "$"
      "%": "%"
      "&": "&"
      "'": "'"
      "(": "("
      ")": ")"
      "*": "*"
      "+": "+"
      ",": ","
      "-": "-"
      ".": "."
      "/": "/"
      ":": ":"
      ";": ";"
      "<": "<"
      "=": "="
      ">": ">"
      "?": "?"
      "@": "@"
      "[": "["
      "\\": "\\"
      "]": "]"
      "^": "^"
      "_": "_"
      "`": "`"
      "{": "{"
      "|": "|"
      "}": "}"
      "~": "~"
    full_shape:
      "!": "!"
      "\"": """
      "#": "#"
      "$": "$"
      "%": "%"
      "&": "&"
      "'": "'"
      "(": "("
      ")": ")"
      "*": "*"
      "+": "+"
      ",": ","
      "-": "-"
      ".": "。"
      "/": "/"
      ":": ":"
      ";": ";"
      "<": "<"
      "=": "="
      ">": ">"
      "?": "?"
      "@": "@"
      "[": "["
      "\\": "\"
      "]": "]"
      "^": "^"
      "_": "_"
      "`": "`"
      "{": "{"
      "|": "|"
      "}": "}"
      "~": "~"

使配置生效

方法 1: 通过 Fcitx5 界面

  1. 右键点击 Fcitx5 输入法图标
  2. 选择 重新部署Rime重新部署

方法 2:

rime_deployer --build ~/.local/share/fcitx5/rime ~/.local/share/fcitx5/rime/build

安装和配置 flameshot

sudo pacman -S flameshot
nano ~/.config/niri/config.kdl
\\ 设置 flameshot 快捷键 -c 参数是让你截取完后按下 enter 就能直接复制
binds {
  Alt+A { spawn "flameshot" "gui" "-c"; }
}

安装和配置 tlp, 笔记本专用

sudo pacman -S tlp
sudo nano /etc/tlp.d/00-template.conf 
START_CHARGE_THRESH_BAT0="70"
STOP_CHARGE_THRESH_BAT0="80"
\\ 如果你有第二块电池的话
START_CHARGE_THRESH_BAT1="70"
STOP_CHARGE_THRESH_BAT1="80"

安装配置 ly

sudo pacman -S ly
systemctl enable ly@tty2.service && systemctl disable getty@tty2.service

设置主题, 这边推荐我很喜欢的主题, 点击这里下载

sudo nano /etc/ly/config.ini
- animation = none
+ animation = dur_file
- dur_file_path = /etc/ly/example.dur
+ dur_file_path = /path/to/your/durl/file

安装配置 OBS

sudo pacman -S obs-studio

安装音视频固件

sudo pacman -S pavucontrol sof-firmware alsa-ucm-conf alsa-firmware

安装, 启动 Pipewire

sudo pacman -S pipewire wireplumber pipewire-pulse pipewire-alsa pipewire-jack
systemctl --user --now enable pipewire pipewire-pulse wireplumber
sudo nano ~/.config/niri/config.kdl

在无任何{}内写入

spawn-sh-at-startup "dbus-update-activation-enviroment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=niri & /usr/lib/xdg-desktop-portal-gnome"