Arch Linux 和 Wayland KDE Plasma 6 桌面问题解决经验分享
Arch Linux,一个轻量级和灵活的 Linux® 发行版,试图保持它简单。(Arch Linux, a lightweight and flexible Linux® distribution that tries to Keep It Simple. K.I.S.S)。它的包管理器是 pacman
。
关于 Arch 和其他 Linux 发行版的区别,官方有详细的介绍和对比,可以点此查看.
本文会介绍 Arch 的安装(桌面环境,KDE Plasma,默认使用 Wayland)、本地化、基本使用以及一些国内常见问题的处理方法。
安装
通过官网下载最新的 ISO 镜像,然后将其刻录到 U 盘中。调整主板的启动项优先级,将 U 盘调成首位,保存。重启机器不出意外会进入 Arch 的 Live 命令行环境。(不仅是 安装 Arch,其他任意 Linux 发行版基本都是这个流程)。
如果你是新手,强烈建议你先在本机原系统上安装虚拟机,通过虚拟机尝试安装 Arch 体验。
因为 Arch Live 环境只提供基础的命令行,没有图像界面引导安装,所以大家之前普遍认为 Arch 安装很复杂。其实现在安装有很多简单的方式,我这里主要列两种:图形化安装和 archinstall
脚本安装。
图形化安装
如果你想体验 Arch 又完全不想敲命令行,这种方式非常适合你。
我基于官方的 Arch Linux 制作了一个 Arch 发行版 MeArch
,它提供了图形化的安装界面,只需要鼠标点点就可将 Arch 安装到你的电脑上。
MeArch
旨在降低安装难度,相对于官方镜像,只额外附加基础的图形安装软件和配置,尽可能保留最原汁原味的 Arch Linux
。
MeArch GitHub: https://github.com/dengsgo/me-arch-os
如果使用图形化安装,则可以跳过下面介绍的 archinstall 脚本安装
这一小节。
archinstall 脚本安装
Arch 内置的 archinstall
脚本已经非常好用了,虽然还是命令行脚本,但基本可以做到只做选择题就可以一路走下去,不用记繁琐的各类命令。
具体点来讲,对于国内的用户,你只需要运行两条命令就能安装。
首先进入 Live 命令行,大概是这样子:
第一条命令,换国内的源。因为整个安装流程都是 online 的,属于在线安装。不换源后面的流程大概率因为下载不了而失败,即使能正常下载,那个下载速率估计要等到天荒地老。
reflector --country China --protocol http --latest 3 --save /etc/pacman.d/mirrorlist
这条命令会找国内最近同步过源的镜像连接并配置它们为默认源。
第二条命令就是 archinstall
,启动官方提供的安装脚本。
archinstall
会看到一个交互界面。在界面按 Enter 确认,方向键选择即可。
这些选项官方都有详细的介绍,不明白的可以查看这里.
Arch 官方还提供了另外一种基于配置文件的快捷安装的方式。我们只需要事先创建一个 json 配置,按照文档里约定的协议填好相关内容,保存。(本地或者网络都可以)。运行下面的命令加载使用它。
我这里准备好了一份配置,大家可以直接使用下面的方式加载:
# 注意:这份配置只做了基本的配置,敏感项(用户、密码之类的)和磁盘分区还是要自己手动处理下!!!
archinstall --config https://www.yoytang.com/images/arch/arch-install-auto-config.json
配置如果加载成功,在交互界面就会立即看到选项被更改了。
附 arch-install-auto-config.json
配置内容。可以以此为基础修改。
{
"__separator__": null,
"additional-repositories": [],
"archinstall-language": "English",
"audio_config": {
"audio": "pulseaudio"
},
"bootloader": "Grub",
"config_version": "2.8.0",
"debug": false,
"disk_encryption": null,
"hostname": "archlinux",
"kernels": [
"linux"
],
"locale_config": {
"kb_layout": "us",
"sys_enc": "UTF-8",
"sys_lang": "zh_CN.UTF-8"
},
"mirror_config": {
"custom_mirrors": [],
"mirror_regions": {
"China": [
"https://mirrors.xjtu.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.qvq.net.cn/archlinux/$repo/os/$arch",
"https://mirrors.qlu.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.nju.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.jxust.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.jlu.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch",
"https://mirrors.aliyun.com/archlinux/$repo/os/$arch",
"https://mirror.nyist.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.wsyu.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.shanghaitech.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.qvq.net.cn/archlinux/$repo/os/$arch",
"http://mirrors.nju.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.jxust.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.jlu.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.cqu.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch",
"http://mirrors.aliyun.com/archlinux/$repo/os/$arch",
"http://mirrors.163.com/archlinux/$repo/os/$arch",
"http://mirror.nyist.edu.cn/archlinux/$repo/os/$arch",
"http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch"
]
}
},
"network_config": {
"type": "nm"
},
"no_pkg_lookups": false,
"ntp": true,
"offline": false,
"packages": [],
"parallel downloads": 0,
"profile_config": {
"gfx_driver": "VMware / VirtualBox (open-source)",
"greeter": "sddm",
"profile": {
"custom_settings": {
"Kde": {}
},
"details": [
"Kde"
],
"main": "Desktop"
}
},
"save_config": null,
"script": "guided",
"silent": false,
"skip_ntp": false,
"skip_version_check": false,
"swap": true,
"timezone": "Asia/Shanghai",
"uki": false,
"version": "2.8.0"
}
好了,到这里只需要按下 Enter 确定,安装程序就会自动执行,中间不需要任何干预。
安装完成后,会提示你是否进入 chroot ,确认,然后输入 reboot
重启。(注意此时要拔掉 U 盘,避免又重启到 U 盘里的 Arch Live 系统环境)。
进入桌面了,但是没有找到终端软件,无法输入命令?
按 ctrl + alt + F2
进入 tty ,安装终端软件 konsole
.
sudo pacman -S konsole
然后 reboot
重启。就可以在 Plasma 中找到这个软件,使用终端。
安装中文和各类字体
打开终端软件:
sudo pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra
安装中文输入法并解决 X11、GTK 输入问题
该命令会安装 fcitx
输入法和中文支持,包括拼音、双排这些,还会额外提供 GUI 的配置工具,它会自动集成在系统 设置
里。
sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-gtk fcitx5-qt fcitx5-lua fcitx5-configtool
因为我们桌面是运行在 Wayland
的协议下,需要考虑基于 X11 的软件输入问题,所以要做一下配置,保证在这些软件上不会出现无法输入、候选框位置错误(尤其是高分辨率屏幕开启缩放)等情况。
sudo echo 'XMODIFIERS=@im=fcitx' >> /etc/environment
echo 'gtk-im-module="fcitx"' >> ~/.gtkrc-2.0
echo 'gtk-im-module=fcitx' >> ~/.config/gtk-3.0/settings.ini
echo 'gtk-im-module=fcitx' >> ~/.config/gtk-4.0/settings.ini
Discover 软件打开会提示错误?
那是因为没有提供 lib 后端支持, 安装一个后端。
sudo pacman -S packagekit-qt6
重新打开软件即可正常使用。系统有更新也会收到提醒。
vmware 无法调整分辨率?无法与宿主机共享复制粘贴?
# 安装虚拟机工具
sudo pacman -S open-vm-tools gtkmm3
# 启用 vmtool
sudo systemctl start vmtoolsd
sudo systemctl enable vmtoolsd
# 启用文件复制
sudo systemctl start vmware-vmblock-fuse.service
sudo systemctl enable vmware-vmblock-fuse.service
HIDPI 开启缩放后,SDDM 登录界面太小?
在 /etc/sddm.conf.d/kde.setting.conf 中添加下面文本。
[General]
GreeterEnvironment=QT_SCREEN_SCALE_FACTORS=2,QT_FONT_DPI=192
其他 sddm 问题可以参考:sddm wiki
开机显示命令行,能不能像 Windows 一样有开机界面?
先安装 plymouth
.
sudo pacman -S plymouth plymouth-kcm breeze-plymouth
编辑 /etc/mkinitcpio.conf
,找到 HOOKS=(….) 这一行,在 udev
之后添加 plymouth
. 编辑保存后就像这样:
HOOKS=(... udev plymouth ...)
如果是 HIDPI 开启了缩放。还需要编辑 /etc/plymouth/plymouthd.conf
, 添加一行:
DeviceScale=2
然后查看当前有哪些开始主题可以选择:
sudo plymouth-set-default-theme -l
选择一个喜欢的主题名(比如 script
),记住名字,执行应用:
sudo plymouth-set-default-theme -R script
重启一下看看效果吧。
archlinuxcn 源怎么添加?
其他
如果有其他问题,可以在评论区和我交流。
Program End Flag ……
有帮助, 给作者捐赠一杯 Mojito 🍹 吧