Arch Linux+KDE安装流程和踩坑记录

由于对Ubuntu的Snap Store存在不满,并且自己也想整一个个性化,最新内核,并且能做到所有安装的功能都用在刀刃上的Linux,于是这段时间对Arch Linux进行了一些研究。当然,学到了很多。

由于目前我的笔记本不适合安装Linux系统,故这次所有的操作都在虚拟机下完成。

这篇文章也算是根据自己的踩坑记录进行编写。

UEFI+GPT还是Legacy BIOS+MBR?

这里建议UEFI+GPT,因为这是目前现代硬件更加推荐的配置。

在管理硬盘启动项这方面,Legacy BIOS+MBR的启动项管理方式个人觉得非常抽象,但是UEFI+GPT管理启动项理解起来会相对简单。

MBR分区表限制4个主分区(但是扩展分区中可以有无数分区),GPT则限制128个分区(无主分区和扩展分区的区别)。针对大容量硬盘的支持,则GPT更胜一筹。

另外,现在出厂预装Windows的笔记本,均会使用UEFI+GPT,此时双系统方案也就建议使用UEFI+GPT了。

总结: 如果是现代硬件和虚拟机程序,如果支持UEFI+GPT则无脑用UEFI+GPT。本文也只讨论UEFI+GPT这种情况。

下载镜像

访问这里,即可获取本月的Arch Linux启动盘ISO文件:https://archlinux.org/download/

该ISO文件每月第一天会更新一次。为了保证启动盘启动的Arch Linux不会出一些奇怪的问题(比如keyring问题),在安装好Arch Linux系统之后也是建议定期更新启动盘ISO文件。

同时,对于一些疑难杂症,ArchWiki也是一个好东西。当然,ArchWiki中也有完善的安装指引文章,对于Arch Linux新手,如果能看懂则会有很大帮助。

启动系统,联网

启动系统

对于虚拟机,将ISO载入到虚拟机即可。

对于实体机,则需要将其写入到U盘中。你也可以使用Ventoy,这样处理和更新Arch Linux ISO会更加方便。

进入GRUB界面时,默认选择第一项。

当你进入这个界面时,就代表Arch Linux ISO已经启动完成,可以开始操作了。

联网

如果你的电脑或笔记本已经接入了有线网络,则可以直接开始下一步操作。

对于WiFi用户,需要通过iwctl命令手动联网。

请注意,如果使用实体机安装,尽量不要使用需要浏览器认证才能使用的网络,比如部分校园网。因为此时很难使用浏览器进行验证操作。

如果你想远程SSH来配置系统

如果你有两台电脑,或者虚拟机安装Arch Linux,可以考虑通过SSH的方式来进行接下来的安装。

Arch Linux ISO启动的系统支持使用远程SSH进行系统配置。如果确实要这么做,请确保Arch Linux ISO启动的系统已经正确联网,同时(如果你是实体机安装)建议两台电脑位于同一网络下,且两台电脑可通过这个网络互相连接(有些校园网共用WiFi可能存在设备隔离,即使两台设备在同一WiFi下,也无法互相连接)。

# 设置root用户的密码,不设置将无法使用SSH连接
passwd
# 获取当前系统的IP地址
ip addr

ip addr命令的输出结果中找到当前系统的IP地址,然后使用另外一台电脑的SSH连接即可(使用root账户)。

分区,格式化,挂载

这里推荐使用cfdisk进行分区操作。

# 请将/dev/nvme0n1更换为你自己的硬盘,比如/dev/sda。
# 由于此处我用的是VMware虚拟机模拟出了NVMe,此处填写NVMe硬盘位置。
cfdisk /dev/nvme0n1

如果是第一次操作硬盘,会出现这个界面。由于我们正在讨论UEFI+GPT方案,所以此步选择gpt。

Legacy BIOS+MBR方案用户需要选择dos选项。

此时将正式进入cfdisk的分区界面。这种可视化UI界面应该很好上手。

接下来,是一些常见的分区方案:

在新建EFI分区时,需要选择下方的Type选项,修改分区类型为EFI System

这是个人在虚拟机中的选择的分区方案。

选择下方的Write选项,保存分区表,即可退出cfdisk。

接下来,我们需要格式化并将挂载分区。

# 需要格式化的硬盘千万不要输错!下面的硬盘只是示例。
mkfs.fat -F 32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkfs.ext4 /dev/nvme0n1p3

# 接下来挂载分区,通常推荐临时将硬盘挂载到/mnt目录下。
# 一定要按照顺序挂载,通常的挂载顺序为顶级目录,然后再挂载次级目录。
# 比如一个合理的挂载顺序是/mnt -> /mnt/boot -> /mnt/boot/efi
# 不按照顺序挂载的结果就是挂载顺序错误的部分目录无法访问,后续生成的fstab数据也会有问题。
# 如果出现这种情况,一定要umount卸载挂载点,再重新进行挂载。
mount --mkdir /dev/nvme0n1p3 /mnt
mount --mkdir /dev/nvme0n1p2 /mnt/boot
mount --mkdir /dev/nvme0n1p1 /mnt/boot/efi

安装系统和初期配置

配置镜像

更新mirrorlist以获取最佳下载速度。

如果你不在中国大陆,记得修改下面命令的国家代码来获取你所在国家的mirrorlist。

# 通过获取ArchLinux官方mirrorlist来更新镜像列表
# 若使用本方法,记得编辑/etc/pacman.d/mirrorlist启用相应的镜像站
curl -o /etc/pacman.d/mirrorlist "https://archlinux.org/mirrorlist/?country=CN&protocol=https"
# 或者,通过reflector直接获取最新的mirrorlist
reflector -c China -l 10 --sort rate --save /etc/pacman.d/mirrorlist

接下来可以修改/etc/pacman.conf来优化下载速度。

具体操作为,取消ParallelDownloads这个设置的注释。如果你想,还可以修改这个设置后面的数值(注意必须合理),来增加同时下载的软件包数量。

同时你还可以取消Color选项的设置,让pacman启用彩色输出。

安装Arch Linux

上述操作做完后,我们就可以正式开始安装Arch Linux了。

# 每次用ArchLinux ISO执行新系统安装前,建议更新当前系统的Keyring
# 每次用ISO启动,只需要执行一次
# 之前就出现过Keyring未更新导致OpenSSL包死活装不上的事情
pacman -Sy archlinux-keyring
# 通过pacstrap在/mnt目录下初始化keyring并安装软件包
# 注意,执行这段命令的同时,会将你当前启动的ArchLinux的/etc/pacman.d/mirrorlist
# 也复制到/mnt目录下
pacstrap -K /mnt base [packages]

packages参数换成你需要的包。

这一步可能是你第一次接触Arch Linux,遇到的第一个难点:我应该安装什么?怎么选择需要安装的软件包才是正确的?

这里列举一下这一步常见情况,以及需要安装的包。

提醒:如果后面发现少装了什么包,可以在后面arch-chroot后使用pacman补充安装。

# 这段安装代码只是示例,请根据自己的实际需要修改。
# 此处安装linux-firmware和intel-ucode,因为我们假定使用Intel CPU实体机安装。
# 但是编写本文时的实际环境为VMware Workstation虚拟机,因此同时安装open-vm-tools。
pacstrap -K /mnt base linux base-devel linux-firmware intel-ucode pulseaudio pulseaudio-alsa alsa-utils man-db man-pages \
 texinfo networkmanager vi vim git zsh open-vm-tools bluez bluez-utils reflector pulseaudio-bluetooth

安装系统的过程可能取决于你电脑的速度和网速。

初期配置

当上面的命令执行完成后,一个全新的Arch Linux系统便装好了(但是还没配置,还不能直接拿来用)。接下来开始配置这个新安装的Arch Linux。

# 首先使用genfstab命令生成fstab数据,并追加到新安装的ArchLinux的/etc/fstab文件中
genfstab /mnt >> /mnt/etc/fstab
# 将根目录切换到/mnt以便进行后续配置
arch-chroot /mnt
# 此时已经切换到新安装的ArchLinux目录下

# 修改计算机名称
echo [你想要的计算机名称] >> /etc/hostname

# 修改时区,请根据自己的需要修改时区
# 修改好后可以输入date来确认时区修改
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 生成本地化文件
vim /etc/locale.gen
# 取消该文件的注释en_US.UTF8 (必须)
# 以及你想要的语言,比如zh_CN.UTF8
# 如果稍后需要将界面调成中文,必须启用zh_CN.UTF8
# 一定要保证会生成en_US.UTF8的翻译,否则初步配置系统期间可能出现字体显示错误问题。
# 保存后执行下面的命令
locale-gen

# 启动必要的服务
systemctl enable NetworkManager  # 不启用则无法联网
systemctl enable bluetooth # 如果你安装了蓝牙支持
# 如果你安装了open-vm-tools,启用下面两个服务
systemctl enable vmtoolsd
systemctl enable vmware-vmblock-fuse

# 新安装的ArchLinux的/etc/pacman.conf为默认设置
# 如果需要,你可以按照之前的方法修改/etc/pacman.conf来优化pacman的下载和显示
# 此处编辑过程略
vim /etc/pacman.conf

# 接下来编辑/etc/sudoers文件,否则之后sudo无法使用
# /etc/sudoers默认为只读权限,需要用chmod修改权限后编辑
chmod +w /etc/sudoers
vim /etc/sudoers
# 取消这行的注释:# %wheel ALL=(ALL:ALL) ALL
# 然后保存
chmod -w /etc/sudoers

接下来,需要创建一个自己的账户,安装结束之后,对于桌面平台,我们的大部分时间都会使用自己的账户登录系统,而不是root。

# 把myuser换成你喜欢的用户名
useradd -m -G wheel myuser
# 修改密码,否则等下无法登录
passwd myuser
# 可选: 为root用户设置密码
passwd

如果需要,可以同时生成一个硬盘swapfile(交换文件)。

# 最后生成的文件大小为bs*count,请合理修改bs和count参数,这里是4GB
dd if=/dev/zero of=/var/swapfile bs=1024M count=4
chmod 0600 /var/swapfile
mkswap /var/swapfile
# 写入到fstab中,实现开机挂载
echo '/var/swapfile swap swap defaults 0 0' >> /etc/fstab
# 下面的命令在当前的系统中启用swapfile,如果内存足够,可以不执行
swapon /var/swapfile

GRUB安装

首先需要安装GRUB相关的包。

如果你不需要支持双系统,则不需要安装os-prober

# 安装GRUB相关的包
# 如果不需要双系统,可以不安装os-prober
pacman -S grub efibootmgr os-prober

接下来,将GRUB相关的EFI启动项安装到你的电脑中,并生成GRUB配置文件。

# bootloader-id可以取一个你喜欢的,也可以不加这个参数,使用默认启动项名称
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ArchLinux
# 生成配置
grub-mkconfig -o /boot/grub/grub.cfg

此时,新安装的Arch Linux已经可以正常引导。在进入系统前,需要进行最后一步,安装桌面环境。

KDE安装和配置

现在来看看安装KDE需要安装哪些包。

你可能还想要一些中文字体。这里推荐使用Noto Fonts:noto-fonts(基础字体集),noto-fonts-cjk(中日韩字体集,主要是需要这个包),noto-fonts-emoji(表情字体)

# KDE软件全部安装的示例命令,同时安装中文字体
pacman -S plasma kde-applications xorg cups noto-fonts noto-fonts-cjk noto-fonts-emoji gtkmm3
# 细化安装KDE附加软件的示例命令,同时安装中文字体
pacman -S plasma kde-accessibility-meta kde-graphics-meta kde-multimedia-meta kde-network-meta kde-sdk-meta \
 kde-system-meta kde-utilities-meta xorg cups noto-fonts noto-fonts-cjk noto-fonts-emoji gtkmm3

完成上述包的安装后,启用sddm显示管理器即可。

systemctl enable sddm
# 如果上面安装了cups服务,记得启用
systemctl enable cups

如果怕等下没浏览器用,可以在进行下一步之前,再安装个Firefox。

pacman -S firefox

安装后配置

首次启动

此时,新安装的Arch Linux已经进入了基本可用并且可以引导启动的状态。退出chroot模式,重启系统。

# 退出chroot
exit
# 此时已经退出arch-chroot,重启系统。
reboot

当先后出现下面的界面时就代表前面的配置成功。

sddm登录界面。

登录后,即可进入KDE Plasma桌面环境。

调整语言设置

如果你喜欢用英文环境,这步可以不看。

为防止TTY乱码,修改/etc/locale.conf文件,先将全局语言设置为en_US。

LANG="en_US.UTF-8"

接下来针对当前用户设置语言和格式。打开(或新建)~/.xprofile并输入下面的内容。如果你想,可以把这些内容同时写入到~/.xinitrc.

export LANG=zh_CN.UTF-8
export LANGUAGE=zh_CN:en_US
export LC_ADDRESS="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export LC_IDENTIFICATION="zh_CN.UTF-8"
export LC_MEASUREMENT="zh_CN.UTF-8"
export LC_MESSAGES="zh_CN.UTF-8"
export LC_MONETARY="zh_CN.UTF-8"
export LC_NAME="zh_CN.UTF-8"
export LC_NUMERIC="zh_CN.UTF-8"
export LC_PAPER="zh_CN.UTF-8"
export LC_TELEPHONE="zh_CN.UTF-8"
export LC_TIME="zh_CN.UTF-8"
export LC_COLLATE="zh_CN.UTF-8"

打开设置,选择Regional Settings>Regions & Languages>Language,将简体中文加到语言选项中,并将其优先级调整到最高。

记得点Apply。

接着我们设置一下sddm登录界面的语言。

输入下面命令,进入systemd服务编辑界面。不推荐直接修改sddm的相关服务文件,否则sddm更新时相关更改会被覆盖。

sudo systemctl edit sddm

追加下面的内容,然后保存文件。注意编辑的位置,不要编辑到### Lines below this comment will be discarded这行下面去。

[Service]
Environment=LANG=zh_CN.UTF8

如果日后需要还原相关设置,可以输入sudo systemctl revert sddm

修改结束后,重启系统,此时系统就会变为全中文环境。

中文字体,以及表情字体优化

如果你想直接使用英文环境,那么你可能会发现,中文字体显示的很奇怪(根据ArchWiki,实际上这是Noto Fonts的日文字体)。

此时需要调整fontconfig的相关文件,使Noto Fonts的中文字体优先显示。

另外,我们同时优化一下Noto Fonts Emoji的显示,不做优化的情况下,Konsole中的相关emoji可能会显示不正常(我说的就是你minikube)。

# 需要使用root权限进行创建/编辑,因此,创建/编辑下面两个文件时需要使用sudo
# 文件的具体内容请看下面。
sudo vim /etc/fonts/conf.d/64-language-selector-prefer.conf
sudo vim /etc/fonts/conf.d/64-noto-emoji-conf.conf
# 编辑完成后刷新字体缓存
fc-cache -fv

做完上述步骤建议注销并重新登录一次。

/etc/fonts/conf.d/64-language-selector-prefer.conf的内容:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Noto Sans CJK SC</family>
      <family>Noto Sans CJK TC</family>
      <family>Noto Sans CJK JP</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Noto Sans Mono CJK SC</family>
      <family>Noto Sans Mono CJK TC</family>
      <family>Noto Sans Mono CJK JP</family>
    </prefer>
  </alias>
</fontconfig>

/etc/fonts/conf.d/64-noto-emoji-conf.conf文件内容:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Sans</family>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>serif</family>
    <prefer>
      <family>Serif</family>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Monospace</family>
      <family>Noto Color Emoji</family>
    </prefer>
  </alias>

  <match target="font">
    <test name="family" compare="contains">
      <string>Noto Color Emoji</string>
    </test>
    <edit name="hinting" mode="assign">
      <bool>true</bool>
    </edit>
    <edit name="hintstyle" mode="assign">
      <const>hintslight</const>
    </edit>
    <edit name="embeddedbitmap" mode="assign">
      <bool>true</bool>
    </edit>
  </match>
</fontconfig>

配置输入法

在KDE中推荐使用fcitx5输入法。

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

将下面的内容追加到/etc/security/pam_env.conf中:

INPUT_METHOD DEFAULT=fcitx5
GTK_IM_MODULE DEFAULT=fcitx5
QT_IM_MODULE DEFAULT=fcitx5
XMODIFIERS DEFAULT=\@im=fcitx5
SDL_IM_MODULE DEFAULT=fcitx

注销并重新登录,此时fcitx即可使用。

设置>语言和区域设置>输入法中添加中文输入法即可。

如果你想玩Rime输入法,也不是不行:

pacman -S fcitx5-rime rime-pinyin-zhwiki

Rime的配置非常复杂。如果有可能,我也可以开个坑来介绍Rime输入法。

启用HiDPI (可选)

进入设置>显卡与显示器>显示器配置,修改全局缩放率选项。

如果你觉得sddm的登录界面字体太小,可以同时优化一下sddm的HiDPI设置。

/etc/sddm.conf中追加下面的内容,记得将96换成自己的DPI缩放数值(为96乘以你的缩放比例,比如125%缩放则为120)。

[Wayland]
EnableHiDPI=true

[X11]
EnableHiDPI=true
ServerArguments=-nolisten tcp -dpi 96

修改完HiDPI设置之后可能需要重新启动系统。

优化sddm登录界面

你可能觉得现在的sddm登录界面过于简陋,想修改一下。

打开设置>开机与关机>登录屏幕 (SDDM),选择一款你喜欢的登录界面,并且记得应用设置。

同时你可能还发现sddm登录界面不会自动将数字小键盘打开。可以向/etc/sddm.conf中追加下面的内容,来让sddm登录界面默认打开小键盘。

以及,你可能想调整一下sddm的登录鼠标指针。

[General]
Numlock=on

# 如果你想修改sddm登录界面的鼠标指针,加入下面的设置
[Theme]
CursorTheme=breeze_cursors

重启系统即可。

AUR和yay/paru

AUR (Arch Linux User Repository),是Arch Linux官方源之外的,一个很重要的软件来源。AUR中的包由用户提供,在官方库找不到的软件包,大部分情况下你总能在AUR中找到相应的软件包,比如Visual Studio Code,Microsft Edge,Google Chrome等等。没有找到自己想要的软件包怎么办?你可以尝试自己编写相关的文件,上传到AUR,分享给其他用户。

所有的AUR软件包均以软件包构建脚本(PKGBUILD)的形式提供,需要你将相关的软件包构建文件和PKGBUILD下载到你的Arch Linux中,手动构建,并安装。听起来有点麻烦,此时你可能就需要AUR Helper来帮忙处理AUR中的软件包。

目前已经有很多现成的AUR Helper,此处介绍两个AUR Helper:yayparu

在安装AUR Helper之前,我们需要手动将AUR上的一个AUR Helper软件包下载到本地,并进行安装。

yay对应的AUR软件包:yay(编译构建软件包),yay-bin(通过预编译的二进制文件构建软件包,推荐使用这个)

paru对应的AUR软件包:paru(编译构建软件包),paru-bin(通过预编译的二进制文件构建软件包,推荐使用这个)

此处以paru举例,进行安装。

# 执行命令前请确保安装了base-devel和git软件包,否则接下来的操作可能失败
# 请将paru-bin自行替换为自己需要的AUR Helper软件包
git clone https://aur.archlinux.org/paru-bin.git  # 从AUR拉取相关的构建文件
cd paru-bin
makepkg -si  # 构建软件包,并在构建成功后立刻安装到系统中

在任意一个AUR Helper安装完成之后,你就能利用这个AUR Helper方便的安装AUR中的软件。

需要注意的是,yayparu尽量不要在root权限下运行。

# yay和paru的命令用法和pacman很相似。
# 下面列举的paru用法,与yay和pacman的相关用法基本一致。基本可以认为将paru直接替换成yay或pacman就行。
# 此处以visual-studio-code-bin,即Visual Studio Code举例。
# yay和paru均不推荐使用root权限运行!
# 查询软件包
paru -Ss visual-studio-code-bin
# 安装软件包
paru -S visual studio-code-bin
# 卸载软件包,并卸载依赖
paru -Rsn visual-studio-code-bin
# 全局更新,先执行系统更新,再执行AUR更新
paru -Syu
# 清理缓存文件
paru -Scc

启用压缩内存 (可选)

正常情况下,swapfile已经足够应付大部分情况。如果你想实现和Windows一样的压缩内存功能,可以继续看这一步。

安装zram-generator

sudo pacman -S zram-generator

打开/etc/systemd/zram-generator.conf,输入下面的内容,保存。

[zram0]

下次系统启动时,就会自动创建压缩内存,并向系统添加相关的swap选项。

如果你不想重启系统而立刻使用压缩内存,可使用以下命令。

sudo systemctl daemon-reload
sudo systemctl start /dev/zram0
# 上面指令输入完成之后,建议输入swapon确认压缩内存启用情况
swapon

一些可能用到的设置/优化

这一段根据博主的实体机Arch Linux使用习惯,实时更新。

KDE关闭Beep音

KDE默认会使用主板蜂鸣器(下面简称Beep音),在某些场合(日用感觉有相当一部分地方)会触发Beep音。

虚拟机还好说,如果是实体机,这个Beep音不走耳机,有的时候会非常尴尬。

设置>无障碍辅助>声音/视觉提示中,将声音提示关闭即可解决Beep音问题。

桌面右键/Ctrl+Alt+T打开终端

在Windows Terminal中,有右键打开终端的设定。

习惯于这个设定的你,可能也想在KDE中启用相关功能。

在桌面右击,选择配置桌面和壁纸。在弹出的设置中,选择鼠标操作

点击右键右边的设置按钮,将打开终端设置勾上,保存。

之后在文件管理器和桌面右击,就能看到打开终端的相关选项。

你可能还想使用Ctrl+Alt+T打开终端,因为在部分Linux发行版上确实如此。

打开设置>快捷键,选择添加应用程序,将Konsole添加进来。添加之后即可使用Ctrl+Alt+T打开Konsole。

VMware虚拟机与宿主机的剪贴板共享不生效

由于从KDE Plasma 5.25开始,默认通过一个用户级别systemd服务来启动和管理Plasma相关服务,而VMware Tools用户服务暂时不支持通过这种方式启动所导致。

目前的一种解决方法是禁用这个默认的用户级别systemd服务启动方式,但是不保证后续版本的KDE Plasma,该方法会失效。本文会持续跟进相关情况。

kwriteconfig5 --file startkderc --group General --key systemdBoot false

执行完命令后,注销并重新登录。

其他

本段持续更新中……

一些你可能需要的软件

以下是个人提供的一份可供Arch Linux安装的软件,可供参考。

浏览器:firefoxchromiummicrosoft-edge-stable-binAURgoogle-chromeAUR

办公:libreoffice-freshwps-officeAUR

聊天:discordlinuxqqAUR

代码编辑:visual-studio-code-binAUR

直播/录屏:obs-studio

JDK:jdk17-openjdkjdk11-openjdkjdk8-openjdk

Java代码构建系统:mavengradle

.NET Core开发:dotnet-sdkaspnet-targeting-packaspnet-runtime

邮件处理:thunderbird

远程桌面连接:remmina(如果需要RDP支持则需要安装freerdp)

容器管理:docker

笔记本电源管理:power-profiles-daemon(需要启用power-profiles-daemon服务)

总结

此时,你已经得到了一个经过一定优化配置,已经可以使用的Arch Linux+KDE桌面环境。恭喜你,完成了初步入门Arch Linux的必要步骤。

开始享受吧!也可以多学习一些相关知识,继续将你的Arch Linux+KDE桌面环境打造成你喜欢的样子。

一个安装流程参考

在编写这篇博文之前,博主也录制了一个相关的安装流程视频(这里可以点击)可供参考。

注意,该视频中的部分操作可能和本文的操作有所出入。且由于博主习惯,视频中全程默认使用英文界面。

评论

  1. GoodAN
    4周前
    2023-1-09 19:18:55

    ヾ(≧∇≦*)ゝ

    • 博主
      GoodAN
      4周前
      2023-1-09 19:36:27

      (ง •̀_•́)ง Waiting for you

  2. Jaanai
    4周前
    2023-1-09 21:34:19

    ( ,,´・ω・)ノ”(´っω・`。)

  3. 上杉夏相
    3周前
    2023-1-13 10:10:28

    ヾ(✿゚▽゚)ノ

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇