LOADING

加载过慢请开启缓存 浏览器默认开启

Hyprland 安装及配置

Coldrain 在暑假期间心血来潮,突然想要给自己的 Archlinux 配一个 Hyprland 桌面,然而过程并非一帆风顺,遂作此篇。

1. Hyprland 的安装(手动)

参考 Hyprland 官网

  • 这一部分采用手动构建的方法,因为官方的 WARNING 让小生担心使用包管理器会出岔子 💦

  • 此外,为方便起见,下文安装部分均采用 aur 安装

安装依赖包,确保万无一失:

paru -S ninja gcc cmake meson libxcb xcb-proto xcb-util xcb-util-keysyms libxfixes libx11 libxcomposite libxrender libxcursor pixman wayland-protocols cairo pango libxkbcommon xcb-util-wm xorg-xwayland libinput libliftoff libdisplay-info cpio tomlplusplus hyprlang-git hyprcursor-git hyprwayland-scanner-git xcb-util-errors hyprutils-git glaze hyprgraphics-git aquamarine-git re2 hyprland-qtutils

接下来,采用 CMake 构建 Hyprland

# 随便找一个地方就可以了
git clone --recursive https://github.com/hyprwm/Hyprland
cd Hyprland
make all && sudo make install

接下来:

meson subprojects update --reset
meson setup build
ninja -C build
ninja -C build install --tags runtime,man

2. 安装必要软件

该部分参考文档:https://wiki.hypr.land/Useful-Utilities/Must-have/

2.1 kitty

kittyHyprland 的默认终端模拟器,直接 paru 安装:

paru -S kitty

此外,kitty 的终端界面配置挺有说法的,小生非常推荐,具体可以参考 kitty 官方文档

2.2 通知程序

如果你的系统上没有安装通知程序的话,这里刚好一并安装了(

paru -S dunst mako fnott swaync

2.3 pipewire(用于屏幕共享)

pipewire 虽然不是必需的,但是没有这个玩意就无法屏幕共享。

paru -S pipewire wireplumber

2.4 Qt Wayland 支持

paru -S qt5-wayland qt6-wayland

3. 安装第三方 Hyprland 主题

这里小生采用的是 end-4 主题,效果图如下:

end4-pic

话不多说,接下来直接开始安装,这里小生依然采用手动构建的方案(安装前请先开启代理):

# 随便找一个路径
git clone https://github.com/end-4/dots-hyprland
cd dots-hyprland
./install.sh

接下来就是官方的安装程序了,按照程序提示安装即可(时间较长且需要全程有操作,请留出足够的空闲时间安装)。

Coldrain 在执行 install.sh 的过程中,html2markdown 这个包始终安装失败。

如果你在安装的时候也遇到了这个问题,此时请退出安装程序,安装 html2markdown-bin 这个包:

paru -S html2markdown-bin

安装完成后,就可以启动 Hyprland 了:

  • 在登陆界面切换至 Hyprland 即可

4. 配置代理(采用 V2raya 和 Proxychains)

Hyprland 中小生使用 V2raya 来作为代理软件,Xray 作为内核,首先执行下面指令安装:

sudo pacman -S v2raya xray

sudo systemctl enable --now v2raya  # 启动并配置开机自启动

接下来要设置 V2raya 调用 Xray 内核(默认配置是调用 V2ray 内核,我们不使用 V2ray 也就没有安装),可参考官方文档,下面提供两种方法(只需要按一种设置即可,推荐第一种):

4.1 编辑修改 /etc/default/v2raya 配置文件

首先打开 /etc/default/v2raya 文件

sudo vim /etc/default/v2raya

然后找到 V2RAYA_V2RAY_BINV2RAYA_V2RAY_ASSETSDIR 两个环境变量,将其前面的 # 去掉,并将其值按如下修改

V2RAYA_V2RAY_BIN=/usr/bin/xray

V2RAYA_V2RAY_ASSETSDIR=/usr/share/xray

其中 /usr/bin/xray 指的是 xray 可执行文件,而 /usr/share/xray 指的是 xray 数据文件目录(包含了 geosite.datgeoip.dat 文件)

然后重启 v2raya 服务即可

sudo systemctl restart v2raya

4.2 编辑修改 systemd 管理的配置文件

新建一个文件夹 /etc/systemd/system/v2raya.service.d,然后进入文件夹新建一个文件 xray.conf,类似的,写入以下内容:

[Service]
Environment="V2RAYA_V2RAY_BIN=/usr/bin/xray"
Environment="V2RAYA_V2RAY_ASSETSDIR=/usr/share/xray"

然后执行下面指令重新加载 V2rayA 服务即可:

sudo systemctl daemon-reload && sudo systemctl restart v2raya

然后我们直接在终端执行 firefox 进入火狐浏览器,然后访问 http://127.0.0.1:2017 进入 V2raya 配置界面,导入自己的配置规则

点击右上角的设置,关闭 透明代理/系统代理 选项,然后将 规则端口的分流模式 选为 RoutingA,随后点击右边的 配置 选项,写入以下内容(用默认配置不改也行,也可以根据自己的需要更改):

default: proxy
# write your own rules below

domain(geosite:cn)->direct
ip(geoip:private)->direct
ip(geoip:cn)->direct

然后点击保存,注意此时这些规则并不会生肖,因为 V2rayasocks 协议和 http 协议设置了带分流规则的端口(该端口进来的流量会按照分流规则分流)和不带分流规则的端口(该端口进来的流量并不会按照规则分流),而且默认只设置了 http 的分流端口,因此需要我们下面手动设置带分流规则的端口。

我们可以点开设置界面左下角的地址与端口选项,然后填写 带分流规则的 socks 端口 并保存,如下所示:

v2raya

4.3 编辑 ~/.config/hypr/hyprland.conf 配置文件

~/.config/hypr/hyprland.conf 配置文件中写入如下内容以配置代理端口:

env = ALL_PROXY=socks5://127.0.0.1:20168
env = http_proxy=socks5://127.0.0.1:20168
env = https_proxy=socks5://127.0.0.1:20168

4.4 安装 Proxychains

使用 Proxychains 从终端启动应用程序的话,可以实现指定端口开启,从而让应用程序走代理。

执行下面的命令:

paru -S proxychains

安装完成后,编辑 /etc/proxychains.conf,找到最下方的 [ProxyList],添加上一步中 v2raya 设置的代理,例如:

[ProxyList]
socks5 127.0.0.1 20168

然后就可以用 proxychains 让有些需要访问网络的程序走代理了喵,试试用下面这个指令打开 Firefox,看看能否正常使用代理(请确保 v2raya 正常运行):

proxychains firefox

小生最初尝试的其实是 google-chrome-stable,但是实际上发现 google-chrome-stable 的沙盒机制会导致 proxychains 无法正常启动 google-chrome-stable,需要执行以下命令:

proxychains google-chrome-stable --no-sandbox --disable-zygote

但是小生如此尝试后,google-chrome-stable 依然无法正常使用代理,目前暂时不清楚具体原因,小生决定先用 Firefox 吧(


参考资料

[1] https://wiki.hypr.land/Getting-Started/Installation/
[2] https://end-4.github.io/dots-hyprland-wiki/en/ii-qs/01setup/
[3] https://blog.manjusaka.de/p/0-0-0-52/#%E5%AE%89%E8%A3%85%E4%BB%A3%E7%90%86%E5%B7%A5%E5%85%B7v2raya