Arch Linux 安装记录

Arch Linux

个人直接在 arch 中 使用 arch-install-scripts 安装新系统,一些前面的步骤没有记录。其中的步骤可以用 GUI 软件逃课。分区和格式化可以使用 partitionmanager(Linux)、 diskgenius(Windows) 等 GUI 软件一键分区。partitionmanager 在安装 btrfs-progs 后可以格式化分区为 btrfs。

假设安装硬盘为sda(NVMe 同理):

  1. sda1 —— EFI 分区
  2. sda2 —— win 下的 C 盘
  3. sda3 —— 其他分区
  4. 剩余为空分区

分区

输入 lsblk 查看情况

分区:

cfdisk /dev/nvmeXn1 # 对安装 archlinux 的 NVMe 磁盘分区 或 /dev/sdX

输入 lsblk或检查结果

格式化 (btrfs)

(空硬盘)创建 EFI 分区

mkfs.fat -F32 /dev/sdx1

格式化 Btrfs 分区

mkfs.btrfs -L 'archlinux' /dev/sdxn
# -L` 选项后指定该分区的 LABLE

创建子卷

mount -t btrfs -o compress=zstd /dev/sdxn /mnt
btrfs subvolume create /mnt/@ # 创建 / 目录子卷
btrfs subvolume create /mnt/@home # 创建 /home 目录子卷
b

检查 btrfs

btrfs subvolume list -p /mnt

卸载

umount /mnt

按顺序挂载

mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # 挂载 / 目录
mkdir /mnt/home # 创建 /home 目录
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # 挂载 /home 目录
mkdir -p /mnt/boot # 创建 /boot 目录
mount /dev/sdxn /mnt/boot # 挂载 /boot 目录

安装系统

pacstrap /mnt base base-devel linux linux-firmware btrfs-progs networkmanager vim bash-completion zsh zsh-completions zsh-autosuggestions zsh-syntax-highlighting
genfstab -U /mnt > /mnt/etc/fstab

进入新系统

arch-chroot /mnt

主机名

vim /etc/hostname

hosts

vim /etc/hosts

127.0.0.1   localhost
::1         localhost

时区

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

同步时间:hwclock --systohc

设置 Locale

vim /etc/locale.gen 去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的 #

执行 locale-gen

echo 'LANG=en_US.UTF-8' > /etc/locale.conf

安装引导程序

pacman -S intel-ucode amd-ucode
pacman -S grub efibootmgr os-prober
mkdir /efi
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Arch

编辑 /etc/default/grub,禁用 watchdog:

GRUB_DISABLE_OS_PROBER=false
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 nowatchdog modprobe.blacklist=iTCO_wdt"

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

user 设置

设置密码:passwd root

创建用户:useradd -m -G wheel -s /bin/bash myusername

passwd myusername

visudo 授权 wheel 组 root 权限

输入 visudo 如果没有找到,导出 EDITOR 环境变量

export EDITOR=/usr/bin/vim

去除 #%wheel ALL=(ALL:ALL) ALL 前的 #

启用 archlinuxcn multilib arch4edu,并使用 paru

要添加 archlinuxcn,在 /etc/pacman.conf 添加

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = http://mirrors.163.com/archlinux-cn/$arch

同时去掉 multilib 注释以使用 multilib

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

导入 arch4edu 参考:

https://mirrors.tuna.tsinghua.edu.cn/help/arch4edu/

一些优化:

# Misc options 下设置 Color(去掉 # 号),ParallelDownloads = 16(并行下载加速)

sudo pacman -S archlinuxcn-keyring # cn 源中的签名(archlinuxcn-keyring 在 archlinuxcn)
sudo pacman -S yay paru

paru 的用法和 pacman 差不多,但是可以安装 AUR 软件,更加方便。

https://www.archlinuxcn.org/archlinux-cn-repo-and-mirror/

grub 美化

使用 aur helper(yay/paru) 安装 Distro Grub Themes

/etc/default/grub 中添加

GRUB_THEME="/usr/share/grub/themes/arch-linux/theme.txt"

并更新 grub 配置文件

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

Possibly missing firmware for module XXXX

使用 aur helper(yay/paru) 安装 mkinitcpio-firmware

输入法

根据 https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#KDE_Plasma

安装 fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki

字体

Sans-serif 无衬线字体:
Inter::inter-font
Noto Sans CJK {SC,TC,JP,KR}:思源黑体:noto-fonts-cjk

Serif 衬线字体
Noto Serif CJK {SC,TC,JP,KR}:思源宋体:noto-fonts-cjk
汉仪玄宋
Liberation Serif:Times New Roman、及Courier New兼容:ttf-liberation

等宽字体
Sarasa Term {SC,TC,J}:更纱黑体:ttf-sarasa-gothic
Maple Mono SC NF:资源圆体:ttf-maple-sc-nerd
Monaspace:otf-monaspace,otf-monaspace-nerd

Emoji
Noto Color Emoji,Noto Emoji:noto-fonts-emoji

中文字体
霞鹜文楷 ttf-lxgw-wenkai
文泉驿正黑体 wqy-zenhei
苹方字体
微软雅黑
汉仪中圆简

Liberation:与Arial、Arial Narrow、Times New Roman、及Courier New兼容

编程字体:
Fira Code:ttf-fira-code
JetBrains Mono:ttf-jetbrains-mono
Cascadia Code:ttf-cascadia-code
sf mono
Monaco
Source Code Pro:adobe-source-code-pro-fonts

斜体:
Victor Mono:ttf-victor-mono
图标字体:
ttf-nerd-fonts-symbols
ttf-firacode-nerd

一般而言,手动将无衬线字体设置成 sans-serif, 衬线字体设置成 serif, 等宽字体设置成 monospace 后,这些程序就会遵循 fontconfig 的设置了。
一般装上文泉驿就能解决大多 wine 应用中文方块的问题

驱动和常见软件

# ==== 固件 ====
sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf  # 声音固件
pipewire pipewire-pulse pipewire-alsa pipewire-audio pipewire-jack alsa-utils
intel-media-driver libva-utils vulkan-intel lib32-vulkan-intel
ntfs-3g


#  ==== 字体 ==== https://szclsya.me/zh-cn/posts/fonts/linux-config-guide/
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
inter-font ttf-sarasa-gothic ttf-maple
ttf-liberation wqy-zenhei ttf-lxgw-wenkai(archlinuxcn)
ttf-firacode-nerd ttf-nerd-fonts-symbols
ttf-jetbrains-mono ttf-fira-code ttf-cascadia-code
adobe-source-code-pro-fonts


# ==== 优化 ====
kernel-modules-hook # kernel 更新完可以不重启


# ==== 软件 ==== 一些软件记录在 KDE/GNOME 套件安装中
btrfs-assistant timeshift # btrfs 管理
easyeffects grub-customizer bustle
obs-studio netease-cloud-music-gtk4

visual-studio-code-bin google-chrome # arch4edu
koodo-reader-bin # archlinuxcn

# CLI
paru -S xorg-xhost xorg-xeyes xorg-xlsclients btrfs-heatmap openssh wget curl
zip unzip unarchiver thefuck
fastfetch zoxide fzf eza lsd dust ripgrep bat
bottom btop htop
yazi tmux zsh-theme-powerlevel10k-git


# ==== 触摸板 ====
xf86-input-libinput # 触摸板固件
libinput-gestures
touche touchegg # 适用于 x11

Nvidia

对于 30 系及以后的显卡,安装 nvidia-open 否则安装闭源驱动
nvidia-open-dkms nvidia-utils lib32-nvidia-utils nvidia-prime vdpauinfo

kernel modules 配置

找到 /etc/mkinitcpio.conf

找到 MODULES=() 行,在 () 中加入 i915 nvidia nvidia_modeset nvidia_uvm nvidia_drm
先加入i915 确保启动顺序,解决双显卡 chromium 系需要 30s 启动无法使用硬件加速的问题
同时记得要移除 HOOKS 部分 kms
见:https://forums.developer.nvidia.com/t/550-54-14-cannot-create-sg-table-for-nvkmskapimemory-spammed-when-launching-chrome-on-wayland/284775/27

同时编辑 /etc/default/grub
找到以 GRUB_CMDLINE_LINUX_DEFAULT 开头的行,并将 modprobe.blacklist=nouveau nvidia-drm.modeset=1 nvidia_drm.fbdev=1 附加到其末尾

不使用 grub 的也可以通过模块配置传递参数
编辑 /etc/modprobe.d/nvidia.conf

# be sure to add "options" before each line
blacklist nouveau
options nouveau modeset=0
options nvidia_drm modeset=1
options nvidia_drm fbdev=1
options nvidia NVreg_EnableGpuFirmware=0
options nvidia Nvreg_PreserveVideoMemoryAllocations=1

如果使用 KDE Plasma 桌面,将 nvidia.NVreg_EnableGpuFirmware=0 添加到上述设置中非常重要。

MPV 视频播放器:

更推荐

DE 与 WM

GTK 主题

materia-gtk-theme
whitesur-gtk-theme-git

Lavanda

QT 配置

在 Gnome/GTK3 中,控件(widget; Application Style)主题和窗户装饰主题是一体的,称之为 GTK_THEME,而在 KDE Plasma 中,它们一分为二。

在 KDE Plasma 中,可以单独配置窗口装饰(Window Decoration;标题栏)。
在非 KDE Plasma 环境中,无法配置窗口装饰,只能配置控件主题。
其中,kvantum 由于其高度的可自定义性,常被用于配置控件主题。
非 kvantum 主题相当罕见,适配了 KDE6 的有 Klassy/Darkly(forked from lightly)/Vinyl。

qt6ct-kde 是个轻量的 Qt6 配置工具,用于调整 Qt6 应用程序 的外观和行为。
qt6ct 相比,可以让 KDE 应用程序(如dolphin)正确工作。

它的核心功能包括:
KDE 配色方案(colorscheme)支持
KDE QML 主题(Application Style;控件主题,如对话框、按钮等样式)
设置图标主题
调整 Qt 应用的字体

kvantum 是一个基于SVG的主题引擎。SVG图像用于绘制QT小部件,它可以帮助用户在不需要代码的情况下创建出色的主题,因此有很多基于 kvantum 的主题可以选择。
可以使用 Kvantum 主题选择器来更改 kvantum 主题。
但是,它有开销,SVG缩放也影响性能。

要使用 qt6ct

KDE 桌面安装

awesome-kde 记录了KDE Plasma 的应用程序和软件包的完整列表

KDE Plasma 桌面环境的组件:

# plasma 桌面
plasma-desktop plasma-disks plasma-firewall plasma-nm plasma-pa plasma-wayland-protocols plasma-thunderbolt 

# kde 系统级组件
systemsettings kdialog kinfocenter kscreen kwallet-pam kdeplasma-addons
# packagekit-qt6 packagekit appstream-qt appstream # 确保 Discover(软件中心)可用,需重启

# kde 部分套件
dolphin konsole spectacle gwenview
ark filelight kdiskmark kwalletmanager partitionmanager

# applets
plasma6-applets-panel-colorizer
plasma6-applets-netspeed
plasma6-applets-weather-widget-3-git
# Modern Clock for KDE

# blur window
kwin-effects-forceblur

# theme
bibata-cursor-theme-bin
darkly-bin
klassy
plasma6-themes-layan-git
flat-remix-kde-git
papirus-icon-theme

系统美化:

Application Style(控件风格): Darkly | kvantum(GraphiteNord)

Plasma Style( plasmashell 样式): Graphite-Nord | Colloid-{dark,light}-nord

Plasma Color Schemes:

Light color: Orchis | GraphiteNordLight
Dark color: GraphiteNordDark | ColloidDarkNord | Flat-Remix-Blue

Windows Decorations: Klassy(with Defenestrated 11 Preset)

Icon: Tela | Papirus | WhiteSur(alternative,bold panel) | Colloid(catppuccin)

cursors: Bibata-Modern-Ice

Welcome: Arch Simple Blue KDE 6

SDDM: Sugar Candy

sddm 启动时激活数字锁定(在 Wayland 下不生效)

[General]
InputMethod=
Numlock=on

Gnome 桌面安装

gnome-shell gnome-control-center gnome-tweaks

# gnome 程序
gparted baobab # 磁盘管理
mission-center
alacarte # 应用条目编辑器

启用实验性分数缩放

gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

启用 super 键调整窗口大小

gsettings set org.gnome.desktop.wm.preferences resize-with-right-button "true"

安装必要扩展

gnome-shell-extensions gnome-browser-connector
gnome-shell-extension-gsconnect
gnome-shell-extension-dash-to-panel
gnome-shell-extension-dash-to-dock
gnome-shell-extension-appindicator

一些扩展需要从浏览器安装,确保 gnome-browser-connector 和浏览器扩展有安装:

Blur my Shell
Brightness control
CHC-E
Clipboard History
Input Method Panel
Just Perfection
Quick Settings Audio Panel
Rounded Window Corners Reborn

Hyprland

hyprland gnome-keyring

archlinux-xdg-menu

export XDG_MENU_PREFIX=arch-
export XDG_MENU_PREFIX=plasma-
sudo ln -s /etc/xdg/menus/plasma-applications.menu /etc/xdg/menus/applications.menu

## 设置开机自启服务

``` bash
sudo systemctl enable NetworkManager bluetooth
sudo systemctl enable sddm
sudo systemctl enable linux-modules-cleanup.service  # kernel-modules-hook provide

硬件加速

https://wiki.archlinuxcn.org/wiki/硬件视频加速#Intel

虚拟机增强

virtualbox

sudo pacman -S virtualbox-guest-utils
sudo systemctl enable vboxservice.service

VMware

sudo pacman -S open-vm-tools gtkmm gtk2 gtkmm3 xf86-input-vmmouse xf86-video-vmware
sudo systemctl enable vmtoolsd

vim /etc/mkinitcpio.conf

MODULES=(vsock vmw_vsock_vmci_transport vmw_balloon vmw_vmci vmwgfx)

sudo mkinitcpio -P

WSL

Inter GPU:

https://github.com/yuk7/ArchWSL/issues/308

sudo ln -sf /usr/lib/libedit.so /usr/lib/libedit.so.2

wslg:

start wsl.exe -d ArchWSL --system Xwayland -terminate :1
wsl -d ArchWSL -e zsh -c "sleep 1 && exit"
start wsl.exe -d ArchWSL -e zsh -c "env -u WAYLAND_DISPLAY DISPLAY=:1 /usr/sbin/dbus-launch startplasma-x11"

多屏左右切换,系统会适应

posted @ 2024-09-11 13:43  comsoi  阅读(83)  评论(0编辑  收藏  举报