在Gentoo环境安装和使用Sway¶
Sway有一些 USE flags 可以微调:
通过以下命令检查当前系统的USE flag:
emerge --info | grep ^USE
修订
/etc/portage/make.conf
添加以下USE flag作为全局配置:
# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
# If left undefined, Portage's default behavior is to set the MAKEOPTS value to the same number of threads returned by `nproc`
MAKEOPTS="-j8"
# NOTE: This stage was built with the bindist Use flag enabled
# This sets the language of build output to English.
# Please keep this setting intact when reporting bugs.
LC_MESSAGES=C
GENTOO_MIRRORS="http://mirrors.aliyun.com/gentoo http://distfiles.gentoo.org"
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"
USE="wayland man -gnome -kde -fortran"
添加
/etc/portage/package.use/sway
内容是针对单个应用的独立配置:
/etc/portage/package.use/sway
配置独立参数¶# 当sway启用wallpapers时需要安装swaybg,此时需要启用 gdk-pixbuf 来支持PNG之外的图片类型
gui-apps/swaybg gdk-pixbuf
gui-wm/sway swaybar swaynag wallpapers
# seatd 用于设置sway环境
sys-auth/seatd server
# foot终端支持cjk多字节语言(中文,日文,韩文)
dev-libs/libutf8proc cjk
我发现实际上不配置 /etc/portage/package.use/sway
也行,也是默认启用了 man swaybar swaynag
安装 sway :
emerge --ask gui-wm/sway
这里有一个提示:
The following USE changes are necessary to proceed:
(see "package.use" in the portage(5) man page for more details)
# required by gui-wm/sway-1.8.1::gentoo[wallpapers]
# required by gui-wm/sway (argument)
>=gui-apps/swaybg-1.2.0 gdk-pixbuf
# required by media-libs/mesa-23.1.6::gentoo
# required by gui-libs/wlroots-0.16.2-r1::gentoo
# required by gui-wm/sway-1.8.1::gentoo
# required by gui-wm/sway (argument)
>=media-libs/libglvnd-1.6.0 X
这个提示中 sway 的 wallpapers
USE flag会触发:
wallpapers
的USE Flag会触发 swaybg
安装¶The following USE changes are necessary to proceed:
(see "package.use" in the portage(5) man page for more details)
# required by gui-wm/sway-1.8.1::gentoo[wallpapers]
# required by gui-wm/sway (argument)
>=gui-apps/swaybg-1.2.0 gdk-pixbuf
# required by media-libs/mesa-23.1.6::gentoo
# required by gui-libs/wlroots-0.16.2-r1::gentoo
# required by gui-wm/sway-1.8.1::gentoo
# required by gui-wm/sway (argument)
>=media-libs/libglvnd-1.6.0 X
如果USE flags 没有使用 -mesa
就会触发以下:
mesa
的USE Flag会触发 libglvnd
安装¶The following USE changes are necessary to proceed:
(see "package.use" in the portage(5) man page for more details)
# required by gui-wm/sway-1.8.1::gentoo[wallpapers]
# required by gui-wm/sway (argument)
>=gui-apps/swaybg-1.2.0 gdk-pixbuf
# required by media-libs/mesa-23.1.6::gentoo
# required by gui-libs/wlroots-0.16.2-r1::gentoo
# required by gui-wm/sway-1.8.1::gentoo
# required by gui-wm/sway (argument)
>=media-libs/libglvnd-1.6.0 X
配置¶
先将全局配置复制到个人目录下:
mkdir -p ~/.config/sway
cp /etc/sway/config ~/.config/sway/
启动:
sway
¶sway
报错处理¶
这里我遇到一个报错:
sway
报错¶XDG_RUNTIME_DIR is not set in the environment. Aborting
这是因为:
没有安装和配置
seatd
没有设置好用户的环境变量
XDG_RUNTIME_DIR
(也就是每个用户需要有独立分离的运行时目录)
解决方法:
安装
sys-auth/seatd
并且配置用户huatai
到对应组,以及启动服务:
seatd
¶emerge --ask sys-auth/seatd
# 针对OpenRC配置
gpasswd -a huatai video
gpasswd -a huatai seat
rc-update add seatd default
rc-service seatd start
然后为用户
huatai
配置~/.bashrc
添加如下内容设置用户环境变量:
~/.bashrc
¶export XDG_RUNTIME_DIR="/tmp/user/"`id -u`
if [ ! -d $XDG_RUNTIME_DIR ]; then
mkdir -p $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
fi
补充安装
foot
(因为默认配置中使用了foot
作为终端):
emerge --ask gui-apps/foot
备注
我发现在安装 foot
的依赖包 dev-libs/libutf8proc
提供了一个 USE flag cjk
是用来支持Multi-byte character languages (Chinese, Japanese, Korean)
现在就能正常启动 sway
了,不过此时还不能充分发挥高分辨率屏幕特性,待继续优化…
高分辨率¶
swaymsg
可检查系统硬件,其中检查显示屏如下:
swaymsg -t get_outputs
例如我的笔记本显示:
Output eDP-1 'Apple Computer Inc Color LCD Unknown' (focused)
Current mode: 2880x1800 @ 59.990 Hz
Position: 0,0
Scale factor: 2.000000
Scale filter: nearest
Subpixel hinting: unknown
Transform: normal
Workspace: 1
Max render time: off
Adaptive sync: disabled
Available modes:
2880x1800 @ 59.990 Hz
1920x1200 @ 59.955 Hz
1920x1080 @ 60.000 Hz
1600x1200 @ 59.955 Hz
1680x1050 @ 59.998 Hz
1400x1050 @ 59.998 Hz
1280x1024 @ 59.950 Hz
1280x960 @ 59.995 Hz
1152x864 @ 59.972 Hz
1024x768 @ 59.949 Hz
800x600 @ 59.960 Hz
在
~/.config/sway/config
可以添加多个显示器配置,例如以下是3个并排显示器配置,且第三个显示器垂直旋转:
# 配置左方的显示器,且物理规格稍微比主显示器大一些
output DP-1 resolution 3440x1440@165hz pos 2560 350
# 主显示器居中
output DP-2 resolution 2560x1440@74.971hz pos 0 250
# 可选显示器是垂直的
output DP-3 resolution 1920x1080@60hz pos 6000 0 transform 270
终端模拟器¶
默认终端模拟器是 foot
,一个非常轻量级的终端, 但是可能对中文支持不好 (我这次实践开启了 cjk
Gentoo Linux USE Flags 发现中文显示很好)
Gentoo的wiki中推荐 x11-terms/alacritty
是原生Wayland程序,而且使用 Rust Atlas 编写,性能卓越。
应用程序加载器¶
默认的应用程序加载器是 dmenu
但是这个程序依赖X,所以推荐使用 dev-libs/bemenu
(原生Wayland)替代