Featured image of post 记Hyprland配置过程

记Hyprland配置过程

Hyprland 出世已有一年多,在去年的大背景之下,几乎可以说是 Wayland 元年。Wayland 支持在 2023 年逐步完善,众多博客推文都宣传着 Wayland 的华丽,超乎 Xorg,所谓现代化的 Linux Display Sever。在几个月前刚完成 bspwm 配置后的我,终于还是耐不住性子又一次敲下了:

1
 sudo pacman -S hyprland waybar wofi


谁曾想,这一步就是数天昼夜不分的敲配置文件,看文档,翻帖子。
Hyprland 简中的博客极其稀少,因而,这篇博客也可算是丰富简中社区的 Hyprland 博客,为开源社区献出一点点微薄的贡献。

曾几何时,男人都是真汉子,自己动手写设备驱动,你是否渴望回到那个时候?
—— Linux 0.02 版本发布宣言

准备

这段可以直接忽略
当然需要一个安装了 Linux 发行版的计算机啦,这篇博客使用的是 ArchLinux

开始

Hyprland 在 ArchLinux 官方源就有(想当初一年前还得去 AUR 下qaq),除此之外,我们还需要状态栏、软件启动器、终端、文件管理器、浏览器……
而现在,从最基础开始

1
 sudo pacman -S hyprland waybar wofi

之后,可以选择去 clone 下来我写的 dotfile,上面已有完善的配置文件。

余下,我希望以分结构进行阐述 Wayland 世界。

混成器

其实就是 Xorg 下的窗口管理器啦。Wayland 的窗口管理器还接管了很多功能,比如一些华丽的特效都是 Wayland 混成器承包的。
Hyprland 就是这样一个不以牺牲外观为代价的动态 Wayland 平铺混成器。
在安装好 Hyprland 后,在 tty 键入

1
Hyprland

即可进入 Hyprland。此时,其的配置文件位于~/.config/hypr/hyprland.conf配置文件简单易懂,同时还有一个日益完善的 wiki 可供参阅,我就是从 Hyprland Wiki 中,一步步完成配置的。
默认是Super+Q打开 kitty,Super+C杀死程序,Super+m退出Hyprland,不过当然,我依照之前在 dwm 和 bspwm 下的习惯,修改了大部分的按键。


首先需要注释掉这一行来关闭警告
1
autogenerated = 1

显示器

hyprland.conf 下有如下行:

1
monitor=eDP-1,preferred,auto,1.25

这一行是用来配置显示器的,相关的 Hyprland Wiki已经很详尽。
第一个逗号前面是来选择相应显示器,显示器可以用

1
2
 hyprctl monitors all

查看。
第二个逗号前面是分辨率,
第三个逗号前面是显示器方向,
第四个逗号前面是缩放。

快捷键

快捷键的配置 Wiki 可以从这里进入,而我只提供几个例子供参考:

1
bind = $mainMod, W, exec, rofi -show window

这里是用 Super+W运行rofi -show window这个命令

1
bind = , XF86AudioMute, exec, pulseaudio-ctl mute    

这是按下静音键运行pulseaudio-ctl mute 除此之外还有很多方式,还请阅 Wiki

自启动

hyprland 自启动实际上非常简单,只需要用:

1
exec-once = cmd

这里 cmd 添上想要的命令即可了

环境变量

Hyprland 配置环境变量稍有不同,假设你在 Xorg 配置环境变量你可以在 .xinitrc 添加上:

1
export GTK_IM_MODULE=fcitx

而在 Hyprland 你应该在 hyprland.conf下添加:

1
env = GTK_IM_MODULE,fcitx

事实上,仅仅是语法上稍有变化。

粘贴板

这里采用的是 wl-clipboard 来管理粘贴相关的东西,在 hyprland.conf中可以添加如下利用rofi查看粘贴版:

1
bind = $mainMod, C, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy #粘贴版

以上便是基础的混成器(hyprland)的配置了,在这之后,你便基本可以驾驭你的 Hyprland

状态栏

状态栏毕竟是一直需要面对的东西,其关乎整个桌面的颜值,而其的配置是高度定制化的,我选择的是waybar并为止付出了一天多的时间进行摸索,之后,我应该会用几个博客的内容阐述很多有关waybar的配置过程。本文提供一些方法去进行配置:
首先,当然是 Waybar Wiki,Waybar 的 Wiki 同样是很清晰详细的指出各个模块的配置。只需要用一点时间,就能配置出一个很不错的 bar
一个好的 bar 主要是颜色、布局和模块的选择,我颜色选择的是nord配色,而以极简为主要的目标。
你也可以使用我现在使用的 Waybar 配置:https://github.com/storm-1614/dotfiles/tree/main/config/waybar

软件启动器

软件启动器我使用的是 wofi,一个类似于 Xorg 下的 rofi,很好用。如果还想使用 rofi的,可以在 AUR 下载 rofi-lbonn-wayland-git 这个 rofi 的 wayland 构建,也是可以愉快使用的。
Hyprland 配置文件默认就有 wofi 启动快捷键相关,不过我给它改成了 Super + D 符合我的使用习惯。

主题相关

主题分为 GTK 与 QT,我对此探索不多。

GTK

我使用的 GTK 主题是 Nordic,在 Archlinuxcn 里有:nordic-theme
GTK可以添加环境变量:

1
env = GTK_THEME,Nordic

这里的 Nordic 改成你的主题。
同时,也有一个类似于 Xorg 的 lxappearance 的程序可以管理主题,其为nwg-look

QT

qt 我采用的是 Kvantum ,同时用 qt5ct 配置主题
qt5ct 环境变量在默认 Hyprland 中已经存在了,你可以再做修改

1
env = QT_QPA_PLATFORMTHEME,qt5ct

qt主题是 kvantum-theme-nordic-git,这个需要在 AUR 下载。

图标

TODO

鼠标指针

TODO

通知

对于一个完整的桌面,通知当然是必不可少的。我直接使用之前使用的 dunst 管理通知。
配置文件:https://github.com/storm-1614/dotfiles/tree/main/config/dunst

XWayland

XWayland 可以让未适配 Wayland 的 X应用跑在 Wayland 上,但其一大缺点是不适配 Wayland 的 HiDPI,导致显示像素化,在 Hyprland Wiki 上提供了一个解决方案,即不让 XWayland 保持原本的缩放,以免出现像素化 在 hyprland.conf 加入以下参数即可:

1
2
3
xwayland {
	force_zero_scaling = true
}
萌ICP备20241614号