Arch Linux 和 KDE 桌面详细安装及个性化过程

Arch

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

写在前面

更新完毕

在考研的时候我就在思考,我到底为什么写博客。如果仅仅是展示自己的知识的话,那么我想懂得人并不会有多细看我的博客,而不懂的人也很有可能看不懂。

在又一次折腾完我的 Arch 之后,我明白了,我写博客的意义,就是在自己忘掉已经学过的东西之前,将他们梳理出来,做一个备忘。

这是一篇详详细细记录安装 Arch,KDE 并完整个性化的博客。我会一直更新直到描述完全为止。

准备工作

首先你需要做好启动盘,ISO 通过 官方 的磁力或者种子或者直链下载很快,推荐使用 Ventoy 制作,将 ISO 放入安装好的 U盘 即可

然后进入 BIOS 修改你的启动顺序,把 USB 启动放到第一位。可能还需要关闭 security boot。

我的机器是 UEFI 启动,非 UEFI 的请自行判断

安装过程

以下步骤绝大部分参考了 来自知乎的教程 ,并在安装过程中根据实际情况进行了修改

关闭烦人的 beep

每次我 tab 不好都会来一声。关掉!一定要关掉!

1
rmmod pcspkr

连接网络

首先需要给网卡上电

1
rfkill unblock all

然后使用 iwd 连接网络

1
iwctl	# 进入 iwd 的命令行

以下命令是在 iwctl 中使用的

1
2
3
4
5
6
device list		# 查看你的网卡有哪些,我的是 wlan0

# 以下命令请将 wlan0 替换为你的网卡名称
station wlan0 scan # 扫描无线网络
station wlan0 get-networks # 获取扫描结果
station wlan0 connect 网络名称 # 连接到网络

更新系统时间

1
2
timedatectl set-ntp true
timedatectl status

我这里显示的是世界时。显示时间不对没关系,不影响安装。

磁盘分区

首先要搞清楚在哪一块磁盘上安装

1
lsblk

然后使用 fdisk 进行分区

1
fdisk nvme0n1	# nvme0n1 是我的磁盘名称,请替换为上面 lsblk 显示的结果

tips: fdisk 使用字节计算大小,将 G 换算为 字节时要乘 1024*2048

详细分区及格式化步骤略过,仅提一句 swap 分区的格式化

1
2
3
mkswap /path/to/swap	# 格式化
swapon /path/to/swap # 启用
free -h # 查看是否启用成功

挂载分区

1
2
3
4
5
6
7
mount /path/to/root /mnt	# 挂载 root 分区
# 挂载 home
mkdir /mnt/home
mount /path/to/home /mnt/home
# 挂载 EFI
mkdir /mnt/efi
mount /path/to/efi /mnt/efi

安装必需软件包

顺便把一会要用的都给装了

1
pacstrap /mnt base linux linux-firmware vim iwd 

生成 fstab

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

进入安装的系统

1
arch-chroot /mnt

设置时区

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

将硬件时钟调整为与目前的时钟一致

1
hwclock --systohc

本地化设置

注意不是个性化

  1. 编辑 /etc/locale.gen 并将 en_US.UTF-8 和 zh_CN.UTF-8 取消注释
  2. 执行 locale-gen 命令生成 locale
  3. 创建 /etc/locale.conf 并添加变量 LANG
1
LANG=en_US.UTF-8

最好不要设置为中文的 locale,会导致终端乱码

网络设置

  1. 创建 /etc/hostname 并为你的电脑命名
  2. 配置 /etc/hosts ,内容如下
1
2
127.0.0.1	localhost
::1 localhost

设置 root 密码

执行 passwd 即可

1
passwd

安装 GRUB 引导

1
pacman -S grub efibootmgr

grub 可以安装主题将难看的黑白界面换掉,个性化会提到

将 grub 安装到系统

1
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ArchLinux

生成配置文件

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

准备重启

首先配置 iwd

1
2
3
# 编辑文件 /etc/iwd/main.conf,并加入下面两行内容
[General]
EnableNetworkConfiguration=true

然后启用与网络相关的服务

1
2
3
4
5
6
7
8
# 启用 systemd-resolved 服务
systemctl enable systemd-resolved.service
# iwd 开机自启动
systemctl enable iwd.service

exit # 退出 chroot 环境
umount -R /mnt # 卸载分区
reboot # 重启

连接网络

步骤同开头的步骤,这里略过

图形界面的安装

安装显示服务器 xorg

1
pacman -S org

安装显卡驱动

1
2
3
pacman -Ss xf86-video	# 查看都有哪些驱动
# 我只有一个 AMD 的显卡,所以安装 xf86-video-amdgpu
pacman -S xf86-video-amdgpu

安装桌面环境,我选择 KDE 的 plasma,美化效果一级棒

arch 仓库里有两个组

  1. plasma-meta,这个包会将所有 plasma 桌面用到的东西都给你装上,不过我不太喜欢,因为有一些包我用不到,就白白浪费空间 (我的 root 分区只给了 20G)。
  2. plasma-desktop,这个是最小化安装,也就是能跑起来图形界面,但是各种其他组件需要自己安装

我安装的是 plasma-desktop,以及下列其他一些组件

  1. plasma-pa:KDE 的音频管理组件
  2. plasma-nm:KDE 的网络管理器,使用 wpa_supplicant 做后端,也就是说安装完成以后之前装的 iwd 可以删掉了
  3. powerdevil 和 acpid:电源管理,没有它我不能调节笔记本的屏幕亮度
  4. bluez:蓝牙管理
  5. kscreen:屏幕管理,调节分辨率和缩放的。
  6. khotkeys:快捷键
  7. konsole:KDE 的终端模拟器。
1
pacman -S plasma-desktop plasma-pa plasma-nm powerdevil acpid bluez kscreen khotkeys konsole

安装显示管理器,sddm比较好看,还可以换主题

1
2
3
pacman -S sddm
# 设置开机启动
systemctl enable sddm.service

添加普通用户

以下请将 syize 换成你的用户名

root 用户是不能通过 sddm 登陆进入桌面的

由于我使用 zsh 而不是 bash,需要先安装 zsh

1
pacman -S zsh

zsh 可以通过 oh-my-zsh 进行美化

创建用户组

1
groupadd syize

创建用户

1
useradd -m -g syize -s /usr/bin/zsh syize

设置普通用户设置密码

1
passwd syize

赋予 sudo 权限

1
pacman -S sudo	# 安装 sudo 包

编辑 /etc/sudoers 并加入下面的内容

1
2
# 需要在 root ALL=(ALL) ALL 下面一行插入
syize ALL=(ALL) ALL

vim 的话需要用 :w! 强制保存

安装输入法 fcitx5

1
pacman -S fcitx5 fcitx5-chinese-addons fcitx5-gtk fcitx5-qt fcitx5-configtool fcitx5-pinyin-zhwiki fcitx5-table-extra

配置环境变量

这些东西可以先跳过,在你启动到图形界面以后复制粘贴

1
2
su syize
vim ~/.pam_environment

加入下面的内容

1
2
3
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT[email protected]=fcitx

然后 exit 退出

安装字体

1
2
pacman -S ttf-dejavu	# 英文字体
pacman -S wqy-microhei # 中文字体

重启

到目前为止就装的差不多了,重启即可进入桌面了

由于不再使用 iwd,可以将其删除,并将 NetworkManager 设置开机启动

1
2
sudo pacman -Rs iwd
sudo systemctl enable NetworkManager

个性化

浏览器

没有浏览器,你们怎么看我的教程

仓库里没有我喜爱的 chrome,可以先安装 firefox 凑活用一下

1
sudo pacman -S firefox firefox-i18n-zh-cn

中文输入法

没有输入法,你们怎么给我评论

由于之前安装过了 fcitx5,直接在 系统设置->区域设置 里面就能找到输入法设置,键盘配置如图

如果你前面没有配置环境变量,需要配置一下

1
vim ~/.pam_environment

加入下面的内容

1
2
3
GTK_IM_MODULE DEFAULT=fcitx
QT_IM_MODULE DEFAULT=fcitx
XMODIFIERS DEFAULT[email protected]=fcitx

emoji

为了能打出流汗黄豆,我们需要安装 emoji 字体

1
sudo pacman -S noto-fonts-emoji	# emoji

还需要配置一下 emoji 让其正常显示。编辑 /etc/fonts/conf.d/75-noto-color-emoji.conf,加入下面的内容

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>

<!-- Add generic family. -->
<match target="pattern">
<test qual="any" name="family"><string>emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<!-- This adds Noto Color Emoji as a final fallback font for the default font families. -->
<match target="pattern">
<test name="family"><string>sans</string></test>
<edit name="family" mode="append"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test name="family"><string>serif</string></test>
<edit name="family" mode="append"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test name="family"><string>sans-serif</string></test>
<edit name="family" mode="append"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test name="family"><string>monospace</string></test>
<edit name="family" mode="append"><string>Noto Color Emoji</string></edit>
</match>

<!-- Block Symbola from the list of fallback fonts. -->
<selectfont>
<rejectfont>
<pattern>
<patelt name="family">
<string>Symbola</string>
</patelt>
</pattern>
</rejectfont>
</selectfont>

<!-- Use Noto Color Emoji when other popular fonts are being specifically requested. -->
<match target="pattern">
<test qual="any" name="family"><string>Apple Color Emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Segoe UI Emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Segoe UI Symbol</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Android Emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Twitter Color Emoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Twemoji</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Twemoji Mozilla</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>TwemojiMozilla</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>EmojiTwo</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Emoji Two</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>EmojiSymbols</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

<match target="pattern">
<test qual="any" name="family"><string>Symbola</string></test>
<edit name="family" mode="assign" binding="same"><string>Noto Color Emoji</string></edit>
</match>

</fontconfig>

zsh 个性化

默认的 zsh 很丑,需要 oh-my-zsh 来 给它整容

网络上的教程是需要自己 curl 脚本安装,幸运的是我们有 archlinuxcn 仓库

首先确认一下自己的 localtime 是否正常。某张姓人士被我带的又趟了一遍坑后得到的教训

1
sudo timedatectl status

如果不对,去系统设置里面更改一下时区,等系统时间正常后进行下面的操作。

编辑 /etc/pacman.conf 并加入下面三行来添加仓库

1
2
3
# Arch Linux CN
[archlinuxcn]
Server = https://repo.archlinuxcn.org/$arch

还需到导入 GPG 的 key 才行

1
sudo pacman -S archlinuxcn-keyring

更新,并安装 oh-my-zsh-git 和 git

1
sudo pacman -Sy && sudo pacman -S oh-my-zsh-git git

使用 oh-my-zsh 的 zshrc 替换原来的 .zshrc

1
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc

如果你有重要的设置请注意保存

oh-my-zsh 默认的主题其实比较好看了,但是我更喜欢 amuse

编辑 ~/.zshrc,将 theme 改为 amuse

1
ZSH_THEME="amuse"

执行下面的命令看一看效果吧

1
source ~/.zshrc

zsh 插件

语法高亮

可以提示你敲的命令是否正确。根据官方安装方式

可能需要科学上网

1
sudo git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

编辑 ~/.zshrc 在 plugin 里面添加进去

1
2
3
plugins=(
# other plugins
zsh-syntax-highlighting)

补全建议

以淡色字体显示,根据最近敲击的命令对命令进行建议,减少重复敲键盘次数

1
sudo git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

添加进 .zshrc

1
2
3
plugins=(
# other plugins
zsh-autosuggestions)

最后效果图

KDE 部件

按照上面的流程下来的话就已经有比较多的小部件了,但是没有我想要的便利贴。安装下面的包获得便利贴和更多的部件

1
sudo pacman -S kwidgetsaddons

还有一些监控系统系统信息的比如网络速度,内存使用情况等。

便利贴没有半透明的效果,稍微有点格格不入

spectacle 是 kde 的截图工具

1
sudo pacman -S spectacle

Variety

Variety 可以自动切换壁纸,选择一些你喜欢的照片,然后让它定时更换。作为老虚荣玩家 (泪目),当然是虚荣美美的英雄皮肤高清原图了

1
sudo pacman -S variety

更换鼠标

bibata-cursor-theme 包含多个可以更换的鼠标皮肤

1
sudo pacman -S bibata-cursor-theme

sddm 主题更换

默认的蓝色登录界面太丑了,KDE Store 的 Sugar Dark for SDDM 看起来非常的优雅,并且我将后面的壁纸换成了 梅兰妮 万圣节🎃皮肤,颜色非常搭。

想要从系统设置里直接更改 sddm 的登录界面,你需要安装 kcm 包

1
sudo pacman -S sddm-kcm

不过对于我来说让系统设置下太慢了,我还是手动下载安装的好

  1. 去 KDE Store 下载主题包
  2. 解压到 /usr/share/sddm/themes
1
sudo -zxvf sugar-dark.tar.gz -C  /usr/share/sddm/themes

如果你不想用默认的壁纸,准备一个 2400*1600 的 jpg 图片,替换掉 /usr/share/sddm/themes/suger-dark 下的Background.jpg

之后就可以在系统设置里面更改了。注销重新登录就可以看到效果了

grub 主题更换

我一直用的是 dracula 的主题 。他们的网站上还有很多用于其他应用的主题,强烈推荐。不过似乎 Libreoffice 的主题不能用,好像也没人修

  1. 下载文件压缩包并解压:地址
  2. 将文件夹放入 /usr/share/grub/themes/
  3. 修改 /etc/default/grub 中的主题,改为如下 (应该是在 47 行左右)
1
GRUB_THEME="/usr/share/grub/themes/dracula/theme.txt"
  1. 重新生成 grub 配置文件
1
sudo grub-mkconfig -o /boot/grub/grub.cfg

如果你觉得字体过小,则需要重新设置一下 grub 的分辨率。例如我的电脑 grub 推荐 2560x1600,但是我改小到 1280x960 字体才正常大小

  1. 查看支持的分辨率选项。在 grub 界面按 c 键进入命令模式,输入 videoinfo 查看可用分辨率。
  2. 挑一个小的,编辑 /etc/default/grub,并更改如下
1
2
# 分辨率改为你自己的,注意中间的 "x" 是小写字母 x
GRUB_GFXMODE="1280x960"
  1. 重新生成配置文件
1
sudo grub-mkconfig -o /boot/grub/grub.cfg
  1. 重启查看效果

Author: Syize

Permalink: https://blog.syize.cn/2021/12/28/install-arch-and-kde/

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Syizeのblog

Comments