设置Alpine Linux的sway桌面
安装显卡驱动
我的 MacBook Air 11" Late 2010 使用的是 NVIDIA 显卡硬件,在Alpine Linux平台只能使用 Nouveau 开源驱动,原因是NVIDIA GPU的私有驱动不提供Alpine Linux的 musl C库驱动。
安装
xf86-video-nouveau:
Nouveau 驱动apk add xf86-video-nouveau
由于我准备使用 wayland显示服务器协议 ,所以需要安装以下软件包:
mesa-dri-gallium: Mesa驱动所需mesa-va-gallium: VA-API驱动,用于硬件加速的视频编码和解码
apk add mesa-dri-gallium mesa-va-gallium
重启系统,然后通过
lspci -vv检查,确保显卡使用的驱动是nouveau
sway
自动安装方式
alpine linux 提供了一个结合使用 eudev 和 elogind 的自动化Sway桌面安装:
setup-desktop sway
我发现上述安装命令实际上在后台执行了如下安装:
apk add elogind polkit-elogind eudev firefox font-dejavu foot grim i3status sway \
swayidle swaylockd util-linux-login wl-clipboard wmenu xwayland
安装过程有提示
...
(72/106) Installing icu-data-en (76.1-r1)
Executing icu-data-en-76.1-r1.post-install
*
* If you need ICU with non-English locales and legacy charset support, install
* package icu-data-full.
*
(73/106) Installing icu-libs (76.1-r1)
...
* Starting udev ... [ ok ]
* Generating a rule to create a /dev/root sym [ ok ]
* Populating /dev with existing devices throu [ ok ]
* Waiting for uevents to be processed ... [ ok ]
* service cgroups added to runlevel default
* /run/dbus: creating directory
* /run/dbus: correcting owner
* Starting System Message Bus ... [ ok ]
* service dbus added to runlevel default
* service acpid deleted from runlevel default
手工安装方式
警告
我按照文档执行手工安装,有些步骤没有完全按照文档(例如软件包),我遇到的问题是启动 sway 出现segment fault
没有找出原因,最后我采用上面自动化安装sway完成,自动化步骤采用了 eudev 和 elogind ,和我的手工步骤不同。
安装sway桌面:
apk add sway
安装
seatd(见 在Gentoo环境安装和使用Sway )以便能够配置用户到对应组:
# 安装seatd
sudo apk add seatd
# 配置服务启动
sudo rc-update add seatd
sudo rc-service seatd start
# 将当前用户(admin)加入seat组
doas adduser $USER seat
配置环境变量:
$XDG_RUNTIME_DIR 环境变量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
安装一些辅助工具:
apk add foot \ # 默认终端
wmenu \ # 默认原生菜单
swaylock swaylockd \ # 屏幕锁定,swaylockd是后台daemon,确保swaylock持续运行(即使崩溃也能立即恢复)
swaybg \ # 墙纸显示
swayidle \ # 系统进入idle一段时间后运行一个命令,典型的如锁定屏幕或者关闭显示屏
wl-clipboard \ # 剪贴板管理器,建议结合 cliphist (没有apk包,需要go编译源码,有点重)使用
i3status # 提供丰富状态,比默认swaybar更好
配置
启动
首先尝试直接启动
sway命令
我遇到一个报错:
Segmentation fault5 - [main.c:5711 wl_display_roundtrip failedialize backend.ES=1 to suppress this check
检查系统 dmesg 日志显示:
dmesg 日志显示sway段错误[ 5715.147674] sway[2952]: segfault at 8 ip 00007ff10ef30777 sp 00007ffe593833f8 error 6 in libwayland-server.so.0.23.1[6777,7ff10ef2e000+6000] likely on CPU 0 (core 0, socket 0)
[ 5715.147699] Code: 00 00 48 8b 44 24 08 48 83 c4 10 5d 41 5c 41 5d c3 48 8b 47 08 48 8d 77 10 48 8b 78 08 ff 25 e0 95 00 00 48 8b 47 08 48 8b 17 <48> 89 42 08 48 89 10 31 c0 48 89 47 08 48 89 07 c3 48 83 c7 20 ff
[ 7870.482773] perf: interrupt took too long (5092 > 5051), lowering kernel.perf_event_max_sample_rate to 39000
警告
我发现自动安装步骤比我手工安装步骤要完整,并且没有遇到启动问题
中文环境
安装中文字体
Noto Sans CJK(思源黑体)
Noto Sans CJK(思源黑体) 字体是Adobe和Google联合开发的字体家族,其设计目的是支持中文、日文和韩文(CJK)。思源黑体的设计现代、清晰,并提供多种字重(粗细)选择。比早期Linux发行版使用的 文泉驿正黑(WenQuanYi Zen Hei) 包含更多且支持所有CJK自负,并未一些扩展区自负提供支持
alpine linux 提供了2个 Noto Sans CJK(思源黑体) 字体软件包: font-noto-cjk 和 font-noto-cjk-extra
Noto Sans CJK(思源黑体) 字体apk add font-noto-cjk
安装fcitx5中文输入法:
apk add fcitx5 fcitx5-rime \
fcitx5-gtk # firefox中文输入框需要fcitx5-gtk
备注
如果要交互配置,可以补充安装 fcitx5-configtool 工具包,等配置完成后再卸载
配置
~/.profile(参考 Gentoo Linux KDE fcitx中文输入 )
export MOZ_DBUS_REMOTE=1
export GTK_USE_PORTAL=0
export XMODIFIERS=@im=fcitx
# Enable Wayland support for Mozilla Firefox
export MOZ_ENABLE_WAYLAND=1
修订
~/.config/sway/config:
#以下两种方法可能都行
#exec_always fcitx5 -d --replace
exec_always --no-startup-id fcitx5 -d