重新安装 Arch Linux
折腾Display manager
把系统搞坏掉了,重新安装。这里重新记录安装教程。之前的记录有一些已经变化不适用了。之后如果有变更也会继续更新这里。
安装介质
使用一个U盘作为安装盘
从Arch Linux Downloads下载安装镜像。推荐使用Magnet link
下载,也可以使用网页下方的中国镜像直接下载。
Linux
环境有dd
命令可以直接制作安装U盘。详细说明1
dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync
windows
环境也有对应的工具。印象里直接用微软
官方的Windows USB/DVD Download Tool就可以制作安装U盘。具体的步骤可以参考制作Win7安装U盘的过程
注意事项: 这个安装盘
可以在日后的维护中当作系统急救盘
使用,但是需要隔段时间就更新。
XPS 的 UEFI 设置
根据wiki
上关于XPS 15 9560
的相关说明,安装前需要修改一些UEFI
设置。
安装环境配置
插上U盘,重启。在出现Dell
的图标的时候一直不停按F12
,直到出现进度条。之后就进入Boot Menu
,选择带USB
字样的选项,进入安装环境。
屏幕是4K
的分辨率,默认字体小。先改字体,目前只找到这个字体用的效果比较好1
setfont latarcyrheb-sun32
安装过程需要联网,使用 wifi-menu
iwctl
来连接网络。具体的用法参考iwctl Usage1
2
3# wifi-menu
iwctl
ping t.cn -c 4
安装的时候需要通过软件仓库安装软件。开启时间同步并使用国内的镜像。1
2timedatectl set-ntp true
sed -i '/China/!{n;/Server/s/^/#/};t;n' /etc/pacman.d/mirrorlist
上面的修改方法已经无效了,去Pacman Mirrorlist Generator找一份最快的镜像列表,手动输入下
分区
用的是EFI
,那就需要一个EFI 系统分区
。Arch Linux
本身需要一个分区分配给根目录/
。以防内存不够用计划分SWAP
分区备用。
计划的分区如下表
分区 | 大小 | 格式 | 路径 | 说明 |
---|---|---|---|---|
nvme0n1p1 | 512M | fat32 | /EFI | EFI 系统分区 |
nvme0n1p2 | 8G | [SWAP] | [SWAP] | 交换分区 |
nvme0n1p3 | 160.5G | btrfs | / | 根分区 |
使用lsblk
确定SSD的磁盘名称。结果中带nvme
字样的就是笔记本的SSD。其他以loop
结尾的可以忽略。
然后使用parted
或者cfdisk
进行分区。安装的是Arch Linx
单系统,直接删除原有的分区表,直接新建就可以了。
首先格式化EFI 系统分区
,根据wiki上的EFI 系统分区1
mkfs.fat -F32 /dev/nvme0n1p1
格式化交换分区1
2mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2
格式化根分区,用的btrfs
1
mkfs.btrfs -L xps /dev/nvme0n1p3
格式化完成后使用lsblk
查看有没有错
先挂载分区到对应路径1
2
3mount -o compress=zstd /dev/nvme0n1p3 /mnt
mkdir -p /mnt/boot
mount /dev/nvme0n1p1 /mnt/EFI
注意事项: 之后当作系统急救盘
的来使用的时候也需要安装上面的来挂载。
安装系统
安装基础软件包组base
和基础开发包组base-devel
,后者用于安装AUR
中的软件。Linux
内核需要另外安装,已经排除在base
组中了。1
pacstrap -i /mnt base linux linux-firmware base-devel
如果有选项默认回车就可以了。
如果之前修改软件仓库服务器用了国内的镜像,安装很快就会完成。
系统基础配置
生成分区表。检查一下生成的文件是否正确1
2genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab
使用arch-chroot
进入新系统。接下来的配置都在新系统里进行1
arch-chroot /mnt
设置时区1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
同步硬件时间1
hwclock --systohc
安装编辑器
之后要编辑文件,这里先安装一个编辑器,简单的编辑用nano
。安装系统后如果有复杂的编辑就直接使用vscode
了。1
pacman -S nano
区域设置1
nano /etc/locale.gen
去除en_US.UTF-8 UTF-8
和zh_CN.UTF-8 UTF-8
前的#
,保存退出nano
生成locale
1
locale-gen
设置默认 locale1
echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf
主机名设置,这里直接设置为xps
1
2echo xps > /etc/hostname
nano /etc/hosts
输入以下内容,保存退出1
2
3127.0.0.1 localhost
::1 localhost
127.0.0.1 xps.localdomain xps
设置root
密码
重要,必须记住的密码1
passwd
按提示输入密码
日常使用的话,基于安全原因不使用高权限的root
用户。新建用户作为日常使用。这里以archie
作为用户名。1
2useradd -m -g users -G wheel -s /bin/bash archie
passwd archie
按提示输入密码。日常使用就以archie
用户配合设置的密码登录。日常使用中偶尔需要root
权限,这里配置sudo
用来临时提权1
EDITOR=nano visudo
找到Uncomment to allow members of group wheel to execute any command
这行,删除下一行的#
,保存退出。
关于sudo
的用法和更多配置参考
安装引导程序。这里直接使用传统的GRUB
了1
2
3pacman -S dosfstools grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/EFI --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
至此,Arch Linux
可以算是安装完成了。根据官网的教程这个时候应该要重启了。但是并不能作为日常使用。接下来需要进行基本的配置和安装必要的软件,包括桌面环境
桌面环境
因为显示驱动的关系,开关机会挂起。1
nano /etc/default/grub
在GRUB_CMDLINE_LINUX_DEFAULT
追加acpi_rev_override=1
。加完之后该行差不多就是这个样子1
GRUB_CMDLINE_LINUX_DEFAULT="quiet acpi_rev_override=1"
使用xorg
作为图形界面的接口。这里偷懒直接全部安装了,反正存储不是特别紧张1
pacman -S xorg-server
不要直接安装xorg
软件组,里面带有一些游戏……
不喜欢gnome
,所以安装KDE Plasma
1
pacman -S plasma-meta
查看plasma-meta
中包含的软件,里面用不到的可以删掉。
安装显示管理器sddm
1
pacman -S sddm
sddm
默认不需要配置,直接启用就可以了1
systemctl enable sddm
这样开机就能启动图形环境了,前面已经配置了中文环境,但是没有中文字体。不安装字体就会显示“豆腐”1
pacman -S noto-fonts-cjk noto-fonts-emoji
网络配置
XPS 15 9560
没有网口,这里直接安装无线的相关包1
pacman -S iw wpa_supplicant dialog
安装网络管理包,这里貌似要安装gnome
的才有用,原因存疑1
pacman -S networkmanager
接下来重启进入新系统1
2exit
reboot
这里关机重启XPS
可能会挂起,长时间无响应。长按电源键直接关机。然后按电源键开机进入新系统。
注意事项
安装用的U盘可以拔掉了
进入系统之后,会发现显示的字体特别小,而且没有无线网络。按下Ctrl
+Alt
+F2
,进入tty2
,用root
帐号登录。
先按照之前的步骤设置字体。
查看端口1
ip link show
显示的结果中带wlp
项就是无线,这里以wlp3s0
为例。上线无线端口,并开启管理服务1
2ip link set wlp3s0 up
systemctl enable NetworkManager
按下Ctrl
+Alt
+F1
,回到图形界面。
打开系统设置
->显示和监控
->显示
,设置缩放显示
到合适的大小,4K屏的XPS
设置200%
差不多。确定并应用。
然后重启,应该可以看到显示的字体可以看了,也可以在默认的右下角设置无线网络连接了。
安装软件
终端模拟器
Arch Linux
安装软件一般都需要连接网络。先连接网络。
现在图形环境没有终端,先安装终端。
切换到tty2
,登录
安装konsole
1
pacman -S konsole
安装完后,exit
退出tty2
,在图形界面应该可以打开konsole
。之后的命令在konsole
中执行。
文件管理器、浏览器、编辑器
安装文件管理器、浏览器、编辑器。这里用火狐
只是临时用用,之后最终使用的是带硬件加速的chromium-vaapi
1
pacman -S dolphin firefox code
代理
代理使用的是clash
1
pacman -S clash
下载代理的配置文件,这里放在Clash.yaml
中。记得修改其中的secret
,加上dashbroad的访问密码。
运行代理1
clash -f /path/to/Clash.yaml
在系统设置
->网络 设置
->代理
中选择使用手动配置的代理服务器
。输入代理地址和端口,默认配置如下
代理方式 | 代理地址 | 端口 |
---|---|---|
HTTP 代理 | 127.0.0.1 | 7890 |
HTTPS 代理 | 127.0.0.1 | 7890 |
SOCKS 代理 | 127.0.0.1 | 7891 |
代理默认使用的是第一个节点,切换节点打开管理网页。如果不能打开就说明当前使用的代理节点挂掉了,先取消代理系统配置。默认的端口号是9090,默认的地址是127.0.0.1。
在管理页面的proxies中选择一个可用的代理节点就可以使用代理来访问了。
具体的有没有使用代理可以看connections中的Chains部分
git&AUR Helper
Arch Linux
的软件一般的在pacman
仓库中,还有一些在AUR
中。这里安装yay
作为AUR Helper
用来安装AUR
中的软件。yay
本身在AUR
中,这里依照github
上的说明手动安装1
2
3
4pacman -S git
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
用yay
可以方便地安装AUR
中的软件。之后软件的安装和更新都可以使用yay
。
日常软件和配置
zsh
默认的bash
使用体验一般,安装zsh
来加强体验,并且使用code::stats插件。zsh
插件使用zgen
来管理。直接安装zgen
就可以,zsh
作为依赖也会安装。1
yay zgen
安装后,输入zsh
启动,选择创建一个空的配置文件。然后在.zshrc
中加入下面的配置启用zgen
。1
2# load zgen
source "/usr/share/zsh/share/zgen.zsh"
退出zsh
,重新打开zsh
,输入zgen
确认可以使用。退出zsh
,再次修改.zshrc
来启用zsh
的插件。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36# Created by newuser for 5.8
# code::stat
export CODESTATS_API_KEY="code::stats machine key"
# load zgen
source "/usr/share/zsh/share/zgen.zsh"
# if the init scipt doesn't exist
if ! zgen saved; then
echo "Creating a zgen save"
zgen oh-my-zsh
# plugins
zgen oh-my-zsh plugins/git
zgen oh-my-zsh plugins/sudo
zgen oh-my-zsh plugins/command-not-found
zgen oh-my-zsh plugins/z
zgen oh-my-zsh plugins/archlinux
zgen load zsh-users/zsh-syntax-highlighting
zgen load https://gitlab.com/code-stats/code-stats-zsh.git
zgen load romkatv/powerlevel10k powerlevel10k
# completions
zgen load zsh-users/zsh-completions src
# save all to init script
zgen save
fi
# POWERLEVEL9K theme setting
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir vcs)
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs history time battery)
再次启动zsh
可能会进入powerlevel10k
的初始化流程,可以直接跳过。
日常的大部分操作是在Konsole
中进行的。在tty
中因为缺少部分字体,显示会有不完全的现象。只在Konsole
中默认启用zsh
。设置
->编辑当前配置方案
->常规
->命令
中输入zsh
的路径,默认是
/bin/zsh
注意事项: zsh
配置文件没有发挥powerlevel10k
的全部功能,感觉还有改进的空间
yay配置
这是用来安装软件的相关配置,包括了pacman
、makepkg
、nano
的配置。
打开pacman
的配置文件
/etc/pacman.conf
要做的修改是确保Color
选项启用。为了之后安装steam
,开启community
仓库。为了方便之后的chromium-vaapi
,添加Arch Linux CN
仓库,关于这个仓库查看Arch Linux 中文社区仓库项目主页。仓库镜像写在另一个文件中。1
2[archlinuxcn]
Include = /etc/pacman.d/mirrorlistcn
mirrorlistcn
中内容是Arch Linux CN
的镜像地址,格式仿照其他的mirrorlist
。
使用前还需要更新并安装archlinuxcn-keyring
。1
2yay -Syy
yay -S archlinuxcn-keyring
AUR
中的部分包需要下载源码后编译打包,在
机器内存足够而且多核CPU的情况下,修改makepkg
配置经可能加快编译速度。
默认配置文件路径
/etc/makepkg.conf
主要修改是使用内存编译,并在压缩中使用多线程。1
2BUILDDIR=/tmp/makepkg
COMPRESSZST=(zstd -c -z -q - --threads=7)
yay
默认使用diff
的方式来显示PKGBUILD
,修改为编辑的方式。更多的选项可以参考项目主页1
yay --editmenu --nodiffmenu --save
nano
的修改不多,主要是代码高亮。本来想加上行号的,但是跨行复制的时候会把行号也复制出来。
默认配置文件路径
/etc/nanorc
1 | ## To include all existing syntax definitions, you can do: |
默认的配置中高亮的格式不多,这个项目提供更多的高亮格式。1
yay -S nano-syntax-highlighting
显卡驱动
注意事项:Nvidia
的驱动一直在更新,这里的说明可能已经过期
麻烦的是安装Nvidia
驱动并使用独立显卡。这里直接参考网上的教程
参考这个
只需要安装Nvidia
驱动,屏蔽initramfs
中的kms
安装闭源驱动
1
pacman -S nvidia nvidia-utils nvidia-settings
查看n卡的BusID
1
lspci | egrep 'VGA|3D'
修改grub
nano /etc/default/grub
1
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet initcall_blacklist=simpledrm_platform_driver_init"
把kms
从/etc/mkinitcpio.conf
里的HOOKS
数组中移除,并重新生成initramfs
以下的步骤是失效的
自动生成配置文件
1
nvidia-xconfig
这步我直接跳过了
启动脚本配置
1 | $ nano /usr/share/sddm/scripts/Xsetup |
这是SDDM
的配置,不同的窗口管理器设置不同
- 修改配置文件
1 | $ nano /etc/X11/xorg.conf |
- 解决画面撕裂问题
1 | $ nano /etc/mkinitcpio.conf |
nvidia
升级时自动更新initramfs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18$ mkdir /etc/pacman.d/hooks
$ nano /etc/pacman.d/hooks/nvidia.hook
======================================================================
[Trigger]
Operation=Install
Operation=Upgrade
Operation=Remove
Type=Package
Target=nvidia
Target=linux
# Change the linux part above and in the Exec line if a different kernel is used
[Action]
Description=Update Nvidia module in initcpio
Depends=mkinitcpio
When=PostTransaction
NeedsTargets
Exec=/bin/sh -c 'while read -r trg; do case $trg in linux) exit 0; esac; done; /usr/bin/mkinitcpio -P'
浏览器设置
内存够大,把浏览器的临时文件放到内存中。在chromium
的启动命令后加上%U --disk-cache-dir=/tmp/cache
chrome
使用的图形化是基于gtk
的,文件选择的弹框安装kdialog
steam
在Proton的加持下,用Linux
玩游戏也不是不行。具体有哪些游戏支持在Linux
下运行可以在ProtonDB上查询。
安装steam
需要启用32位源,打开/etc/pacman.conf
,启用multilib
1
yay -S steam
如果有问题,那么需要安装其他包,具体看Wiki
手柄连接
常用软件
图片查看
qView
编辑器
vscode
,使用官方的visual-studio-code-bin
包,或者去除微软信息的vscodium
包
IM
主要用的是telegram
,使用telegram-desktop-userfonts
包来使用系统字体。
手机同步
同步通知用的,kdeconnect
视频播放器
bomi
目前还没有找到合适的MPV
前端
bomi
已经处于不再维护的状态,还是换了MPV
。OSC
用的是uosc
MPV
的配置项和插件很多,估计要另外一篇。
文件管理器
dolphin
输入法
建议使用fcitx
,还是使用旧的4版本的fcitx
,fcitx5
还是有点问题。另外还有安装fcitx-qt5
来实现qt
支持,安装fcitx-cloudpinyin
来实现云拼音支持,安装kcm-fcitx
来图形化配置工具
在用的是fcitx5
,基本没问题,还有萌百的词库。1
2
3
4
5
6
7
8fcitx5
fcitx5-chinese-addons
fcitx5-configtool
fcitx5-gtk-git
fcitx5-material-color1
fcitx5-pinyin-moegirl
fcitx5-pinyin-zhwiki
fcitx5-qt
唯一的问题就是和浏览器vivaldi
的搭配,这里使用git
版本,暂时还没有出现问题。
截图工具
Spectacle
压缩工具
ark
额外的格式支持1
2
3
4
5lrzip (optional) - LRZ format support
lzop (optional) - LZO format support
p7zip (optional) - 7Z format support
unarchiver (optional) - RAR format support
unrar (optional) - RAR decompression support
下载工具
aria2
远程工具
freerdp
系统美化和优化
字体
参考Wiki
主题
窗口推荐使用Klassy
有很多选项
安装主题breeze10-kde
在应用程序风格
-窗口装饰
中选择Breeze10
。Opacity
设置为 0% ,按钮大小设置为很大
工作空间行为
-桌面特效
模糊
设置合适的值
锁屏时间格式
参考reddit
上的这个帖子
对于登录屏幕,修改/usr/share/sddm/themes/breeze/components/Clock.qml
;对于锁屏,修改/usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/components/Clock.qml
修改内容:將1
text: Qt.formatTime(timeSource.data["Local"]["DateTime"])
替换为1
text: Qt.formatTime(timeSource.data["Local"]["DateTime"],"hh:mm:ss")
## 输入法皮肤
安装fcitx-skin-material
关闭Baloo索引
1 | balooctl disable |
DOCK
latte-dock
分隔使用plasma5-applets-latte-spacer