最近突然发现 Fxitc5 可以在 Wayland 下输入中文了,这样下来就有很多软件可以不用 Xwayland ,进一步过渡到 Wayland ,由于目前配置 Wayland 还是比较麻烦的,所以写这篇文章记录一下。
官方镜像在国内速度和不理想,所以必须先进行换源,目前国内源常用的是 清华镜像站 、阿里镜像站 、华为镜像站 等。这些镜像站背景都比较大,是比较稳定的选择。
使用文本编辑器( nano、vim、nvim 等)编辑 /etc/pacman.d/mirrorlist 文件,添加以下内容到第一个 行上一行:
# 华为镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch
# 阿里镜像站
Server = https://mirrors.aliyun.com/archlinux/$repo/os/$arch
# 清华镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch 在国内还有一个 archlinuxcn 源是经常用的,可以添加到 /etc/pacman.conf 尾部:
[archlinuxcn]
# 阿里archlinuxcn源
Server = https://mirrors.aliyun.com/archlinuxcn/$arch
# 清华archlinuxcn源
# Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch 配置好之后记得使用 sudo pacman -Suyy 更新系统,如果配置了 archlinuxcn 源还需要使用 sudo pacman -S archlinuxcn-keyring 导入信任密钥,不然安装 archlinuxcn 源的软件会校验不成功。
强烈建议开启 pacman 的颜色和多线程下载功能,编辑 /etc/pacman.conf 文件,将对应位置前 # 删除即可:
...
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 4
... Archlinux 好用的一个原因就是拥有 AUR 仓库,里面收录了很多的软件包,涵盖日常使用的方方面面!AUR仓库中的软件基本都使用 PKGEBUILD 文件进行配置安装,如果每一个包都手动下载再安装很麻烦,需要选择一个好用的 AUR 工具。最常用的便是 yay 了,不过最近看到了一个用 Rust 写的 AUR 工具 paru ,同 yay 使用差不多,不过可以在安装前查看 PKGEBUILD 文件,可以在一定程度上防止恶意软件吧。
yay 可以直接通过之前配置的 archlinuxcn 源进行安装:sudo pacman -S yay 。paru 安装也很简单:
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si 首先使用以下命令安装Wayland所需环境,如果需要兼容 xorg 软件记得加上 xorg-xwayland 软件包:
sudo pacman -S xorg-xwayland qt5-wayland qt6-wayland glfw-wayland 要查看当前有哪些客户端是使用 xorg 的,可以安装 xorg-xlsclients 然后查看:
sudo pacman -S xorg-xlsclients
# 查看
xlsclients Hyprland 是 Wayland 环境下的一个很棒的合成器,支持窗口透明、模糊、圆角、插件和动画效果等,不过目前还没有发布正式稳定版,所以很多发行版都没有上架,目前支持的发行版在官方安装教程里面列出了:Hyprland Installation 。虽然没有发布稳定版,但是日常使用已经没有什么问题了。
如果安装了 AUR 工具,那么可以直接进行安装,不用自己配置:paru -S hyprland-bin 。这里演示一下源码安装:
安装依赖
paru -S gdb ninja gcc cmake meson libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite xorg-xinput libxrender pixman wayland-protocols cairo pango seatd libxkbcommon xcb-util-wm xorg-xwayland libinput 下载源码
git clone --recursive https://github.com/hyprwm/Hyprland 编译安装
cd Hyprland
meson _build
ninja -C _build
ninja -C _build install
安装好 Hyprland 后记得复制配置文件到用户文件夹:
mkdir -pv ~/.config/hypr
# 如果是 AUR 安装
sudo cp /usr/share/hyprland/hyprland.conf ~/.config/hypr/
# 如果是源码安装
sudo cp /usr/local/share/hyprland/hyprland.conf ~/.config/hypr
# 配置文件内都有详细注释,虽然全是英文~ 此处配置适用于不使用登录服务器的,如果使用登录服务器请参考 登录服务器启动Hyprland 。
由于使用 Wayland ,所以就不能像 Xorg 下使用 startx 快速启动桌面环境了,我一般手动登录后,输入 start_hyprland 进行桌面环境,首先编辑 ~/.bash_profile 文件,如果使用 fish 、zsh 等请参考其配置文件名称:
# 启动 wayland 桌面前设置一些环境变量
function set_wayland_env
{
cd ${HOME}
# 设置语言环境为中文
export LANG=zh_CN.UTF-8
# 解决QT程序缩放问题
export QT_AUTO_SCREEN_SCALE_FACTOR=1
# QT使用wayland和gtk
export QT_QPA_PLATFORM="wayland;xcb"
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
# 使用qt5ct软件配置QT程序外观
export QT_QPA_PLATFORMTHEME=qt5ct
# 一些游戏使用wayland
export SDL_VIDEODRIVER=wayland
# 解决java程序启动黑屏错误
export _JAVA_AWT_WM_NONEREPARENTING=1
# GTK后端为 wayland和x11,优先wayland
export GDK_BACKEND="wayland,x11"
}
# 命令行输入这个命令启动hyprland,可以自定义
function start_hyprland
{
set_wayland_env
export XDG_SESSION_TYPE=wayland
export XDG_SESSION_DESKTOP=Hyprland
export XDG_CURRENT_DESKTOP=Hyprland
# 启动 Hyprland程序
exec Hyprland
}
现在直接进入 Hyprland 环境你会发现什么东西都没有,不用着急,下面的内容就是补全这些内容,让你使用起来更方便。
进入桌面最先看到的应该是壁纸才对,Sway 是个很好的窗口管理器,不仅是它好用,还有它提供的一套好用的类似 i3 的软件包,比如配置壁纸就可以使用 swaybg 。
使用命令行安装 swaybg 然后在 Hyprland 配置文件中启动(窗口管理器不像桌面环境,很多软件都需要我们手动启动,好在 Hyprland提供了启动这些软件的方法):
# 安装 swaybg
sudo pacman -S swaybg
# 编辑 ~/.config/hypr/hyprland.conf 文件
#---------------------------------------
$wallpaper_path=<你放壁纸的完整路径>
exec-once=swaybg -i $wallpaper_path -m fill
#---------------------------------------
exec-once 表示我们只需要在 Hyprland 启动的时候执行,在每次保存配置文件后,Hyprland 会自动读取配置,如果要每次配置完都执行,可以使用 exec 。如果要配置随机壁纸,请将壁纸放在一个文件夹下,然后替换上面的配置为:
$wallpaper_dir=<你存放壁纸的目录>
exec-once=swaybg -i $(find $wallpaper_dir -type f | shuf -n 1) -m fill
这个顶栏很好理解,用来显示系统的一些信息,比如工作区、网络、声音、亮度、电量、系统托盘等。wayland 下可以使用 waybar ,支持很多模块显示,不过官方版本对 Hyprland 的工作区有点问题,建议安装 AUR 上对工作区进行修复的版本:
# 安装官方版本
sudo pacman -S waybar
# 安装 Hyprland 工作区修复版本
paru -S waybar-hyprland waybar 配置文件在 ~/.config/waybar 目录下的 config.json 和 style.css 文件,如果自己不会配置可以在 Github 上搜索 waybar theme 使用别人配置好的,篇幅原因这里不进行介绍。
配置文件弄好后还需要在 Hypeland 配置文件中启动:exec-once=waybar 。
桌面环境下,我们可以点击桌面图标和软件菜单启动程序,wayland 窗口管理器下一般使用 bmenu 或者 rofi,rofi 更加美观,推荐使用,不过需要使用经过修复的 rofi ,否则无法正常工作,使用 AUR 安装:paru -S rofi-lbonn-wayland-only-git 。其配置文件位于 ~/.config/rofi/ 目录下,美化不进行介绍,可以参考 waybar 方法在 Github 上查找。
在 hyprland 配置文件中绑定快捷键即可:
$menu=rofi -show drun
bind = SUPER, R, exec, $menu
平时使用,接收通知是必须的,wayland 下可以使用 dunst、mako 等守护程序:
# 安装 mako
sudo pacman -S mako
# hyprland 配置
#--------------------
exec-once=mako
#-------------------- 如果需要使用命令行发送通知,可以安装 toastify ,之后使用 可以发送通知。
剪切板管理工具也经常用到,wayland 下可以使用 clipman(只能管理文字) 或 cliphist(文字加图片) :
paru -S cliphist wl-clipboard
# 基本使用方法
# 拷贝
echo "Hello World" | wl-copy
# 粘贴
wl-paste
在配置文件里启用:
# 这个会自动监控剪切板,然后将复制的内容保存到本地数据库中。
exec-once=wl-paste --type text --watch cliphist store
exec-once=wl-paste --type image --watch cliphist store
# 在一个软件内复制,这软件关闭后无法进行粘贴,需要配置快捷键显示剪切板历史
bind=SUPER_SHIFT, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
# 内容太多记得手动删除哟,cliphist每提供一键删除,必须差评!
for i in $(cliphist list | awk -F. '{ print $2 }'); do cliphist delete-query "$i"; done
如果需要进行屏幕录制或者直播,pipewire 是必须的:
sudo pacman -S pipewire wireplumber slurp grim
grim 可以截取屏幕,slurp 可以选择一块区域,两者配合可以进行区域截图,在配置文件内使用:
#---------------快捷键
$mainMod=SUPER
$shiftMod=SUPER_SHIFT
$altMod=SUPER_ALT
$alt=ALT
$shift=SHIFT
#---------------------绑定快捷键操作
$screen_file=${HOME}/Pictures/ScreenShot/screen_shot_$(date + "%Y-%m-%d_%H-%M-%S").png
bind=$shiftMod, S, exec, grim -g "$(slurp)" - | wl-copy
bind=, Print, exec, grim $screen_file
bind=$shift, Print,exec, grim -g "$(slurp)" $screen_file
bind=$alt, Print, exec, grim - | wl-copy 录屏可以使用 obs-studio ,不多介绍。
很多时候我们打开软件都不需要 root 权限,不过有些特殊的软件需要使用 root 权限,不过在桌面启动时无法认证并获得权限,这就需要一个图形化的认证程序,KDE 旗下的 polkit-kde-agent 是个不错的选择:
sudo pacman -S polkit-kde-agent
# hyprland 配置文件内
#-----------------------
exec-once=/usr/lib/polkit-kde-authentication-agent-1
# 使用体验,对认证程序采用浮动窗口
windowrulev2=float, class:^(.*polkit-kde.*)$
#-----------------------
Linux 下可移动磁盘不会自动挂载,特别是在窗口管理器环境下。使用 udiskie 可以自动进行挂载,非常方便:
sudo pacman -S udiskie
# 配置文件内启用
exec-once=udiskie & 字体我这里推荐 Maple 和 Nerd ,一个中文编程字体,一个图标字体。下载字体放到 ~/.local/share/fonts/ 或者 /usr/share/fonts/ 下,然后进入目录使用 mkfontdir 和 mkfontscale 生产字体配置然后使用 sudo fc-cache -f -v 刷新字体缓存。
毫无疑问,无脑使用 Fcitx5 就完了,安装基本输入法和中文输入法:
sudo pacman -S fcitx5-im fcitx5-pinyin-zhwiki
编辑 /etc/environment 文件配置环境变量:
GTK_IM_MODULE=fcitx5
QT_IM_MODULE=fcitx5
SDL_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5 注意: 文件已经不再使用!!! 注意: 文件已经不再使用!!! 注意: 文件已经不再使用!!!
在 hyprland 中启动:
exec-once=fcitx5 --replace -d 其他设置
Electron 软件如果需要使用 wayland 启动,需要在启动参数中加入:--enable-features=UseOzonePlatform --ozone-platform=wayland ,如果希望所有Electron软件(仅限使用系统electron的软件,不包括使用自己版本的软件)都这样启动,可以编辑 ~/.config/electron-flags.conf 文件,加入:
--enable-features=UseOzonePlatform
--ozone-platform=wayland XWayland 软件字体大小可能与 wayland 不同,可以编辑 ~/.Xresources 文件:
Xft.dpi: 96
Xft.autohint: 0
Xft.lcdfilter: lcddefault
Xft.hintstyle: hintfull
Xft.hinting: 1
Xft.rgba: rgb 然后使用 xrdb ~/.Xresources 加载配置,建议加在 Hyprland 配置文件内,每次启动都执行一次。
Wayland 发展越来越好,也希望早点取代 Xorg 吧,毕竟这个软件太老了!



