跳到主要内容

ArchLinux KDE Plasma安装及常见问题

· 阅读需 11 分钟
Skyone
科技爱好者

去年11月我写了一篇ArchLinux安装GNOME桌面,也正是那时候我将电脑的主要系统从Windows转到了ArchLinux。诚然, gnome 很好,如果你需要一个不需要折腾就能用的桌面环境,那么 gnome 是一个不错的选择。

我一开始也是这么想的,直到……今年 KDE Plasma 6 发布了。我不得不说,KDE Plasma 6 的演示视频真的很吸引人,所以我决定尝试一下,于是我又折腾了一遍系统,这次安装的是 KDE Plasma 桌面。新的大版本发布,肯定有大量的问题,尤其是搭配 NVIDIA 和 Wayland 这两个离谱的玩意。Wayland 由于 x11 历史包袱太重,经常出现兼容问题(尤其是 Chromium),而 NVIDIA 一直以来都是 Linux 用户的痛点,Linus 骂的一点都不冤。

现在新系统用了也有一段时间了,是该动笔记录一下,免得下次装又到处找资料。这次文章分两部分:安装 KDE Plasma 桌面和常见问题解决。欢迎大家在评论区补充。

安装 KDE Plasma 桌面

Arch Linux 的安装已经老生常谈了,见安装 ArchLinux & Windows 双系统。这里只记录安装 KDE Plasma 桌面的步骤。

首先,经过一系列的安装步骤,你应该已经进入了 ArchLinux 命令行,并有了一个属于 wheel 组的非 root 用户。接下来,我们就可以安装 KDE Plasma 桌面了。

sudo pacman -S plasma-meta sddm networkmanager bluez-utils

官方提供了多个包,plasma-meta 是一个元包,包含了 KDE Plasma 桌面的所有组件基本组件。此外,你也可以选择 plasma 包组,它包含的软件和 plasma-meta 是一样的,关于元包和包组的区别,可以参考ArchWiki | Meta package and package group。还有两个可选的包:kde-applicationskde-applications-meta,它们包含了一些额外的应用程序,比如 Dolphin 文件管理器、Konsole 终端等。但是这里我选择后续自己安装需要的应用程序。

sddm 是 KDE Plasma 的默认登录管理器,networkmanager 是网络管理器,bluez-utils 是蓝牙管理工具。

不要急着启动桌面,这时候我们还没安装终端模拟器,进去就出不来了(笑)。接下来我们安装终端模拟器、文件管理器。

sudo pacman -S konsole dolphin

konsole 是 KDE Plasma 的终端模拟器,dolphin 是 KDE Plasma 的文件管理器。

接下来我们启用 sddm 服务,这样就会直接进入 KDE Plasma 桌面了。

sudo systemctl enable --now sddm

在桌面环境下打开 konsole 终端,启动 networkmanagerbluetooth 服务。

sudo systemctl enable --now NetworkManager bluetooth

常见配置

中文字体

我推荐 noto-fonts-cjk,它是 Google 的开源字体,支持中日韩文。此外,noto-fonts-emoji 是支持 emoji 表情的字体,noto-fonts-extra 是支持更多语言的字体。

sudo pacman -S noto-fonts-cjk noto-fonts-emoji noto-fonts-extra

然后进入系统设置,把语言设置为中文,注销重新登录。

一些常用程序推荐

  • 浏览器:Firefox firefoxfirefox-i18n-zh-cn 或 Chromium chromium,我选择两个都要~
  • 图片查看器:Gwenview gwenview
  • 多媒体播放器:VLC vlc
  • 文本编辑器:Kate kate
  • 截屏工具:Spectacle spectacle
  • 压缩包管理器:Ark ark
  • DNS 工具:bind bind,提供 dig, nslookup 等命令
  • 以及其他的命令行工具就不解释了,只是提一下,iwdjqhtopdufbatpkgfileunzip

输入法

最重要的当然是输入法了,我使用 fcitx5

sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-qt fcitx5-gtk fcitx5-configtool

网上一堆教程全是基于 x11 的,到了 wayland 就不好使了。我自己试了很久,过程如下:

在设置的 “键盘” - “虚拟键盘” 里面选择 fcitx5 即可让输入法自动启动,编辑 /etc/environment 文件,添加:

XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx

注意不要包含 GTK_IM_MODULEQT_IM_MODULE,这是 x11 的设置,wayland 不需要,如果有的话,注释掉。

设置里 “语言和时间” - “输入法” 添加简体中文即可,甚至不需要注销即可使用。

在最新的 chromium 里,一开始出现的无法输入中文的问题已经解决了,不需要特殊处理。

万恶的 NVIDIA 驱动

尽管 Arch Linux 提供里开箱即用的 NVIDIA 驱动包,但在 plasma + wayland 仍然有问题。首先安装 nvidia 驱动:

sudo pacman -S nvidia

这时一定不要重启,否则会进不去桌面。先创建 /etc/modeprobe.d/nvidia_drm.conf 文件,添加:

options nvidia-drm modeset=1

再编辑 /etc/mkinitcpio.conf 文件,修改 HOOKS 行,将 kms 去掉,然后重新生成 initramfs

sudo mkinitcpio -P

最后重启电脑,应该就可以进入 KDE Plasma 桌面了。

kvm 虚拟机

尽管日常生活大部分工作都可以在 Linux 下完成,但有时候还是需要 Windows 的,比如 Office 就无可替代。我使用 virt-manager + qemu + kvm 来运行 Windows 虚拟机。

sudo pacman -S qemu-full libvirt virt-manager dnsmaq

其中 qemu-full 包含了全部的 qemu 组件,比较省事,反正也没多大;libvirt 是虚拟化管理工具的后端;virt-manager 是图形化的虚拟机管理工具;dnsmaq 是 DNS 服务器,用于虚拟机的网络。

将自己加入 libvirt 组,这样就不用每次都 sudo 了:

sudo usermod -aG libvirt $USER

启动 libvirtd 服务:

sudo systemctl enable --now libvirtd

之后就可以打开 virt-manager 创建虚拟机了,顺便写写如何在 virt-manager 下安装 Windows 10 LTSC。

Windows 10 LTSC 虚拟机

首先下载 Windows 10 LTSC 镜像,然后打开 virt-manager,点击 “创建新虚拟机”,选择 “本地安装媒体”,选择下载的镜像文件。

选择引导为 UEFI,系统类型选择 Windows 10,内存和 CPU 根据自己的电脑配置选择,其中 CPU 的拓扑从上到下分别是 sockets(指的是 CPU 插槽)、cores(指的是 CPU 核心)、threads(指的是 CPU 线程),比如我的电脑是 6 核 12 线程,那么我选择 1、6、12。

硬盘选择 qcow,类型设置为 virtio,也就是半虚拟化的硬盘,性能非常出色。

网络我选择 nat

还需要准备一个 virtio 驱动,下载地址:Fedora VirtIO Drivers ISO,在虚拟机设置里添加一个光驱,选择这个 ISO 文件。

整个安装过程基本和实体机一样,但在选择安装位置的时候,需要先加载 virtio for win10 x64 驱动,然后才能看见硬盘。

安装完成后还要进入刚刚挂载的 virtio 驱动光盘,安装 virtio 网卡驱动,不然网络无法使用。以及显卡驱动 qxldod,不然分辨率很低。安装 spice 驱动,可以让虚拟机和宿主机共享剪贴板。安装 qeumu-guest-agent,可以让虚拟机和宿主机通信。

常见问题解决

无法进入桌面

上面的安装 KDE Plasma 桌面里提到了,安装完 NVIDIA 驱动后,一定要修改 /etc/modeprobe.d/nvidia_drm.conf 文件,添加:

options nvidia-drm modeset=1

如果还是没有效果,按键盘 Ctrl + Alt + F2 进入命令行,登录后执行:

cat /sys/module/nvidia_drm/parameters/modeset

如果返回 N,则说明没有生效,执行,那就换个方案,删除 /etc/modeprobe.d/nvidia_drm.conf 文件,然后编辑 /etc/default/grub 文件,修改 GRUB_CMDLINE_LINUX_DEFAULT 行,在引号里添加:

nvidia-drm.modeset=1

然后更新 grub 配置:

sudo grub-mkconfig -o /boot/grub/grub.cfg
# 这里的路径根据自己的系统配置而定,也可能是 /boot/efi/grub/grub.cfg

重启电脑,应该就可以进入 KDE Plasma 桌面了。

无法输入中文

如果实在无法输入中文,可以尝试按照 x11 的方式配置,尽管不推荐,但是仍然可以使用。具体来说,编辑 /etc/environment 文件,添加:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx

在设置里 “自动启动” 里添加 fcitx5,然后注销重新登录。

gpg 导致关机时间很慢

经过多次测试,确认是 KDE 的 gpg GUI kleopatra 无法正常退出导致的。这个目前没法解决,只能等待修复,在这之前要么关机前手动退出 kleopatra,要么卸载 kleopatra

卸载了 kleopatra git 的签名就无法验证了,需要额外安装 pinentry

sudo pacman -S pinentry

~/.gnupg/gpg-agent.conf 文件中添加:

pinentry-program /usr/bin/pinentry-qt