代码成诗-dengsgo的个人博客

Arch Linux 和 Wayland KDE Plasma 6 桌面问题解决经验分享

deng-dev  发布在  更新于 ArchLinuxOSWayland使用桌面环境KDE

Arch Linux

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 安装很复杂。其实现在 Arch 内置的 archinstall 脚本已经非常好用了,虽然还是命令行脚本,但基本可以做到只做选择题就可以一路走下去,不用记繁琐的各类命令。

具体点来讲,对于国内的用户,你只需要运行两条命令就能安装。

首先进入 Live 命令行,大概是这样子:

Arch Live 环境

第一条命令,换国内的源。因为整个安装流程都是 online 的,属于在线安装。不换源后面的流程大概率因为下载不了而失败,即使能正常下载,那个下载速率估计要等到天荒地老。

reflector --country China --protocol http --latest 3 --save /etc/pacman.d/mirrorlist

这条命令会找国内最近同步过源的镜像连接并配置它们为默认源。

第二条命令就是 archinstall,启动官方提供的安装脚本。

archinstall

archinstall 交互界面

会看到一个交互界面。在界面按 Enter 确认,方向键选择即可。

这些选项官方都有详细的介绍,不明白的可以查看这里.

Arch 官方还提供了另外一种基于配置文件的快捷安装的方式。我们只需要事先创建一个 json 配置,按照文档里约定的协议填好相关内容,保存。(本地或者网络都可以)。运行下面的命令加载使用它。

我这里准备好了一份配置,大家可以直接使用下面的方式加载:

# 注意:这份配置只做了基本的配置,敏感项(用户、密码之类的)和磁盘分区还是要自己手动处理下!!!
archinstall --config https://www.yoytang.com/images/arch/arch-install-auto-config.json

配置如果加载成功,在交互界面就会立即看到选项被更改了。

archinstall 整体配置

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 源怎么添加?

参考这里 TUNA Arch Linux CN 软件仓库

其他

如果有其他问题,可以在评论区和我交流。

Program End Flag ……

 

有帮助, 给作者捐赠一杯 Mojito 🍹 吧

deng-dev
保持敏锐的技术嗅觉,去探知无尽的想象力