ArchLinux下Hyprland配置指北
啊啊啊这是一个昵称
编辑于 2023年03月29日 07:36
收录于文集
共4篇

最近突然发现 Fxitc5 可以在 Wayland 下输入中文了,这样下来就有很多软件可以不用 Xwayland ,进一步过渡到 Wayland ,由于目前配置 Wayland 还是比较麻烦的,所以写这篇文章记录一下。

配置镜像并安装AUR工具

官方镜像在国内速度和不理想,所以必须先进行换源,目前国内源常用的是 清华镜像站阿里镜像站华为镜像站 等。这些镜像站背景都比较大,是比较稳定的选择。

使用文本编辑器( nano、vim、nvim 等)编辑 /etc/pacman.d/mirrorlist 文件,添加以下内容到第一个 行上一行:

代码块
Shell
自动换行
复制代码
 # 华为镜像站
 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 尾部:

代码块
Shell
自动换行
复制代码
 [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 文件,将对应位置前 # 删除即可:

代码块
Shell
自动换行
复制代码
 ...
 #UseSyslog
 Color
 #NoProgressBar
 CheckSpace
 #VerbosePkgLists
 ParallelDownloads = 4
 ...
复制成功

Archlinux 好用的一个原因就是拥有 AUR 仓库,里面收录了很多的软件包,涵盖日常使用的方方面面!AUR仓库中的软件基本都使用 PKGEBUILD 文件进行配置安装,如果每一个包都手动下载再安装很麻烦,需要选择一个好用的 AUR 工具。最常用的便是 yay 了,不过最近看到了一个用 Rust 写的 AUR 工具 paru ,同 yay 使用差不多,不过可以在安装前查看 PKGEBUILD 文件,可以在一定程度上防止恶意软件吧。

yay 可以直接通过之前配置的 archlinuxcn 源进行安装:sudo pacman -S yayparu 安装也很简单:

代码块
Shell
自动换行
复制代码
 sudo pacman -S --needed base-devel
 git clone https://aur.archlinux.org/paru.git
 cd paru
 makepkg -si
复制成功

安装Wayland

首先使用以下命令安装Wayland所需环境,如果需要兼容 xorg 软件记得加上 xorg-xwayland 软件包:

代码块
Shell
自动换行
复制代码
 sudo pacman -S xorg-xwayland qt5-wayland qt6-wayland glfw-wayland
复制成功

要查看当前有哪些客户端是使用 xorg 的,可以安装 xorg-xlsclients 然后查看:

代码块
Shell
自动换行
复制代码
sudo pacman -S xorg-xlsclients
 # 查看
 xlsclients
复制成功

安装 Hyprland

Hyprland 是 Wayland 环境下的一个很棒的合成器,支持窗口透明、模糊、圆角、插件和动画效果等,不过目前还没有发布正式稳定版,所以很多发行版都没有上架,目前支持的发行版在官方安装教程里面列出了:Hyprland Installation 。虽然没有发布稳定版,但是日常使用已经没有什么问题了。

如果安装了 AUR 工具,那么可以直接进行安装,不用自己配置:paru -S hyprland-bin 。这里演示一下源码安装:

  1. 安装依赖

代码块
Shell
自动换行
复制代码
 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
复制成功
  1. 下载源码

代码块
Shell
自动换行
复制代码
 git clone --recursive https://github.com/hyprwm/Hyprland
复制成功
  1. 编译安装

代码块
Shell
自动换行
复制代码
 cd Hyprland
 meson _build
 ninja -C _build
 ninja -C _build install
复制成功

复制配置文件

安装好 Hyprland 后记得复制配置文件到用户文件夹:

代码块
Shell
自动换行
复制代码
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 等请参考其配置文件名称:

代码块
Shell
自动换行
复制代码
# 启动 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提供了启动这些软件的方法):

代码块
Shell
自动换行
复制代码
# 安装 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 上对工作区进行修复的版本:

代码块
Shell
自动换行
复制代码
# 安装官方版本
 sudo pacman -S waybar
 # 安装 Hyprland 工作区修复版本
 paru -S waybar-hyprland
复制成功

waybar 配置文件在 ~/.config/waybar 目录下的 config.jsonstyle.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 配置文件中绑定快捷键即可:

代码块
Shell
自动换行
复制代码
 $menu=rofi -show drun
 bind = SUPER, R, exec, $menu
复制成功

通知守护程序

平时使用,接收通知是必须的,wayland 下可以使用 dunst、mako 等守护程序:

代码块
Shell
自动换行
复制代码
# 安装 mako
 sudo pacman -S mako
 # hyprland 配置
 #--------------------
 exec-once=mako
 #--------------------
复制成功

如果需要使用命令行发送通知,可以安装 toastify ,之后使用 可以发送通知。

复制与粘贴

剪切板管理工具也经常用到,wayland 下可以使用 clipman(只能管理文字) 或 cliphist(文字加图片)

代码块
Shell
自动换行
复制代码
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 可以选择一块区域,两者配合可以进行区域截图,在配置文件内使用:

代码块
Shell
自动换行
复制代码
 #---------------快捷键
 $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 是个不错的选择:

代码块
Shell
自动换行
复制代码
sudo pacman -S polkit-kde-agent
 # hyprland 配置文件内
 #-----------------------
 exec-once=/usr/lib/polkit-kde-authentication-agent-1
 # 使用体验,对认证程序采用浮动窗口
 windowrulev2=float, class:^(.*polkit-kde.*)$
 #-----------------------
复制成功

移动磁盘挂载

Linux 下可移动磁盘不会自动挂载,特别是在窗口管理器环境下。使用 udiskie 可以自动进行挂载,非常方便:

代码块
Shell
自动换行
复制代码
 sudo pacman -S udiskie
 # 配置文件内启用
 exec-once=udiskie &
复制成功

字体推荐

字体我这里推荐 MapleNerd ,一个中文编程字体,一个图标字体。下载字体放到 ~/.local/share/fonts/ 或者 /usr/share/fonts/ 下,然后进入目录使用 mkfontdirmkfontscale 生产字体配置然后使用 sudo fc-cache -f -v 刷新字体缓存。

输入法

毫无疑问,无脑使用 Fcitx5 就完了,安装基本输入法和中文输入法:

 sudo pacman -S fcitx5-im fcitx5-pinyin-zhwiki

编辑 /etc/environment 文件配置环境变量:

代码块
Shell
自动换行
复制代码
 GTK_IM_MODULE=fcitx5
 QT_IM_MODULE=fcitx5
 SDL_IM_MODULE=fcitx5
 XMODIFIERS=@im=fcitx5
复制成功

注意: 文件已经不再使用!!! 注意: 文件已经不再使用!!! 注意: 文件已经不再使用!!!

在 hyprland 中启动:

代码块
Shell
自动换行
复制代码
exec-once=fcitx5 --replace -d
复制成功

其他设置

Electron 软件如果需要使用 wayland 启动,需要在启动参数中加入:--enable-features=UseOzonePlatform --ozone-platform=wayland ,如果希望所有Electron软件(仅限使用系统electron的软件,不包括使用自己版本的软件)都这样启动,可以编辑 ~/.config/electron-flags.conf 文件,加入:

代码块
Shell
自动换行
复制代码
 --enable-features=UseOzonePlatform
 --ozone-platform=wayland
复制成功

XWayland 软件字体大小可能与 wayland 不同,可以编辑 ~/.Xresources 文件:

代码块
Shell
自动换行
复制代码

 Xft.dpi: 96
 Xft.autohint: 0
 Xft.lcdfilter: lcddefault
 Xft.hintstyle: hintfull
 Xft.hinting: 1
 Xft.rgba: rgb
复制成功

然后使用 xrdb ~/.Xresources 加载配置,建议加在 Hyprland 配置文件内,每次启动都执行一次。

最后

Wayland 发展越来越好,也希望早点取代 Xorg 吧,毕竟这个软件太老了!