archlinux速查速记

2025-02-13 17:32:50

# 安装

对于安装过程,建议参考:archlinux 简明指南以及archwiki

对于那些想要快速安装的用户,推荐使用我写的脚本:iarch-install。具体的安装过程详见README。

本文主要讲解一下进系统后要做的一些设置。

# 一些习惯

对于一些常用的软件,都应当维护一份配置文件。对于我来说,喜欢需要维护的配置文件放在一个文件夹中,比如dotfiles,然后将其软链接到具体的路径,比如~/.config/xxx,这样就能方便地使用git进行配置文件的管理和同步。如:

ln -s ~/<path to dotfiles>/dotfiles/xxx ~/.config/xxx

对于环境变量,我喜欢全部放在shell的配置文件中。一方面,前面已经有了/etc/environment被弃用的案例,另一方面也应该为单一用户,而非所有用户,维护一份单独的配置文件,即使这台电脑只有一个人使用。所以你能看见我在后文中将环境变量全部写进shell配置文件(我使用fish,因此你或许会感到语法有些奇怪lol)。

当然这两点也是仅供参考。下面开始正文。

# 中文输入法

安装 fcitx5、rime:

paru -S fcitx5-im fcitx5-rime

设置环境变量

set -gx QT_IM_MODULE fcitx5
set -gx GTK_IM_MODULE fcitx5
set -gx XMODIFIERS "@im=fcitx5"
set -gx XIM fcitx5
set -gx XIM_PROGRAM fcitx5
set -gx SDL_IM_MODULE fcitx5
set -gx INPUT_METHOD fcitx5
set -gx GLFW_IM_MODULE ibus

修改fcitx5配置:

fcitx5-configtool

修改rime配置,默认配置文件夹路径为:

~/.local/share/fcitx5/rime/

# 显卡驱动

首先查询显卡型号:

lspci -k -d ::03xx

对于40系之后较新的显卡,建议安装nvidia-open-beta-dkms

paru -S nvidia-open-beta-dkms nvidia-utils-beta lib32-nvidia-utils-beta nvidia-settings

修改/etc/mkinitcpio.conf,删除HOOKS数组中的kms,结果如下:

HOOKS=(base udev autodetect microcode modconf keyboard keymap consolefont block filesystems fsck)

重新生成initramfs

mkinitcpio -P

# HIDPI

对于GDK和QT程序,设置如下环境变量:

set -gx GDK_DPI_SCALE -1
set -gx GDK_SCALE 2
set -gx XCURSOR_SIZE 32
set -gx QT_AUTO_SCREEN_SCALE_FACTOR 2
set -gx QT_ENABLE_HIGHDPI_SCALING 0
set -gx QT_SCALE_FACTOR 2

对于火狐,进入about:config界面,修改layout.css.devPixelsPerPx属性,调整到满意为止。

对于electron;

echo "--force-device-scale-factor=2" > ~/.config/electron-flags.conf

但是一些electron应用不会读electron-flags,此时修改.desktop文件,路径一般为:/usr/share/applications/。在Exec中修改:

Exec=/usr/bin/code --force-device-scale-factor=2 %F

# 更换内核

paru -S linux-zen linux-zen-headers

修改/etc/default/grub

GRUB_DISABLE_SUBMENU=y
sudo grub-mkconfig -o /boot/grub/grub.cfg

重启确保没有错误后可以删除原内核:

paru -Rsn linux linux-headers
sudo grub-mkconfig -o /boot/grub/grub.cfg

# 禁用GRUB倒计时

sudoedit /etc/default/grub

修改配置文件:

GRUB_TIMEOUT=-1
sudo grub-mkconfig -o /boot/grub/grub.cfg

# 主题

# GTK

对于GTK,安装lxappearance以切换主题:

paru -S lxappearance

然后安装主题,这边推荐tokyonight(主要是catppuccin-gtk已不再维护):

paru -S tokyonight-gtk-theme-git

进入lxappearance切换主题:

lxappearance

# QT

QT建议使用kvantum进行管理;

paru -S kvantum

然后添加环境变量:

set -gx QT_STYLE_OVERRIDE kvantum

安装主题:

paru -S kvantum-theme-catppuccin-git

使用kvantummanager管理主题:

kvantummanager

# fcitx5

fcitx5的用户配置路径在.local/share/fcitx5/themes文件夹下,这边推荐catppuccin

根据文档安装即可:

git clone https://github.com/catppuccin/fcitx5.git
mkdir -p ~/.local/share/fcitx5/themes/
cp -r ./fcitx5/src/* ~/.local/share/fcitx5/themes

然后使用fcitx5配置工具进行配置:

fcitx5-configtool

# sddm

依然推荐 catppuccin。

paru -S catppuccin-sddm-theme-mocha

这个包已经亲切地安装了相应的依赖,因此我们只需要修改sddm配置文件即可。

printf "\n[Theme]\nCurrent=catppuccin-mocha\n" | sudo tee -a /etc/sddm.conf

如果要启用缩放:

printf "\n[Wayland]\nEnableHiDPI=true\n[X11]\nEnableHiDPI=true\n[General]\nGreeterEnvironment=QT_SCREEN_SCALE_FACTORS=2,QT_FONT_DPI=192\n" | sudo tee -a /etc/sddm.conf

# grub

paru -S catppuccin-mocha-grub-theme-git

然后编辑/etc/default/grub,新增或修改以下行:

GRUB_THEME="/usr/share/grub/themes/catppuccin-mocha/theme.txt"

然后更新grub:

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

# steam

paru -S steam

如果想要静默启动,执行:

steam -nochatui -nofriendsui -silent

对于linux,建议使用proton-ge,并在兼容性设置中选择:

paru -S proton-ge-custom-bin

# 对于ntfs文件系统

一般建议使用ext4或btrfs等文件系统存放游戏文件,因为ntfs上的steam库并非开箱即用的。但通过一定设置,它是可以正常使用的。

  1. 安装ntfs-3g
paru -S ntfs-3g
  1. 获取uuid:
sudo blkid /dev/<your disk> | awk '{print $3}' | awk -F'"' '{print $2}'
  1. 写fstab
sudoedit /etc/fstab

新增以下内容,填写上面获取到的uuid:

UUID=<your uuid> /media/d lowntfs-3g uid=1000,gid=1000,rw,user,exec,umask=000 0 0
  1. 重启;
reboot
  1. 如果不起作用,链接本地的compatdata到库的steamapps文件夹
ln -s /<local steam path>/steamapps/compatdata /<remote steam path>/steamapps/

其中,本地steam文件夹路径一般为~/.steam/root

另外,由于驱动的原因,ntfs有时会被搞脏,产生只读无法写的情况,此时需要使用sudo ntfsfix /dev/nvme1nx进行修复。如果遇到ntfsfix无法修复的情况,尝试登录到windows使用chkdsk进行操作,如:

chkdsk c: /f
chkdsk d: /f

# 其他

# 跳过validity check

对于一些SHA256错误的包,可以使用以下flag跳过验证(保证安全的前提下):

paru -S --mflags --skipinteg