AlpineLinux 安装 Xfce 桌面

假设已经有一个基础可用的 AlpineLinux, 如果没有可前往 wenerme/alpine-image 下载或自行制作

setup xorg#

安装 X server 和基础硬件驱动

# xfce + xorg
setup-xorg-base xfce4 xfce4-terminal dbus-x11 sudo
# xorg 输入设备
apk add xf86-input-mouse xf86-input-keyboard kbd
# Intel 芯片集成显卡
apk add xf86-video-intel
# AMD 显卡
apk add xf86-video-amdgpu
# QEMU
# apk add xf86-video-qxl
# 如果以上都不支持则考虑使用 framebuffer
# apk add xf86-video-fbdev

此时已经可以进入 xfce 桌面, 没有登陆界面, 进入界面后可右上角退出登陆或者 Ctrl+Alt+F1 来切换回命令行会话。

# 通过 xorg 提供的 startx 启动
startx
# 或者指定启动 xfce4
startxfce4

setup lightdm#

安装 lightdm 后可以可以通过账号密码登陆, 也可以远程 VNC 进入 xfce 会话。

apk add lightdm-gtk-greeter
# 如果没启动则需要提前开启
rc-service dbus start
rc-update add dbus
# 添加非 root 用户 admin 密码 admin - 不少应用需要非 root 用户
adduser -d admin
echo admin:admin | chpasswd
echo 'admin ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
# 开机进入登陆界面
rc-update add lightdm
# 立即启动 lightdm 进行登陆
rc-service lightdm start

setup xfce#

安装常用的包

# 默认无法显示中文字符
apk add noto-font-cjk
# 允许非 root 通过 fuse 访问设备
apk add gvfs-fuse gvfs-smb
rc-service fuse start
rc-update add fuse
# 自动挂载 外部设备
apk add thunar-volman udisks2
# 部分设备需要额外的包
# gvfs-mtp - MTP - 媒体播放器和移动设备
# gvfs-gphoto2 - PTP - 相机和移动设备
# gvfs-afc - 苹果移动设备
# 文件管理器支持压缩和解压
apk add thunar-archive-plugin
apk add file-roller # thunar-archive-plugin 支持的管理器

安装了相关插件后最好退出会话重新登陆确保生效。

应用#

# 屏保, 任务管理器
apk add xfce4-screensaver xfce4-taskmanager
# 谷歌浏览器 - 也可以通过 flatpak 安装
apk add chromium
# 火狐浏览器
# apk add firefox-esr

flatpak#

Linux 因为发布版太大了,应用分发比较混乱,且不少应用并不直接支持 musl,使用 flatpak 打包的应用可避免这些问题。

apk add flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
# 安装
flatpak install flathub com.visualstudio.code
# 启动
flatpak run com.visualstudio.code

常用应用

idname用途
com.visualstudio.codeVSC编辑器
om.vscodium.codiumCodium编辑器
org.chromium.ChromiumChromium浏览器
org.mozilla.firefoxFirefox浏览器
org.telegram.desktopTelegram即时聊天
com.valvesoftware.SteamSteam游戏
org.mozilla.ThunderbirdThunderbird邮件
org.filezillaproject.FilezillaFilezilla文件

AppImage#

不通过 flatpak 需要安装,AppImage 是封装好的一体化应用,类似容器,类似 macOS 应用。 但目前由于 glibc 兼容问题 Alpine 无法运行 AppImage 参见 AppImage/AppImageKit#1015

已知提供 AppImage 的应用

  • Jetbrain Toolbox
  • Lens - Kubernetes IDE

其他服务#

  • xrdp - RDP 服务端 - 支持 Windows 直接远程登陆
  • gvncviewer - VNC 客户端

FAQ#

xfce 支持高分辨率#

# 两倍缩放
# Settings Manager > Appearance > Settings > Window Scaling
xfconf-query -c xsettings -p /Gdk/WindowScalingFactor -s 2
# 调整主题为 默认 xhdpi
# Settings Manager > Window Manager > Style
xfconf-query -c xfwm4 -p /general/theme -s Default-xhdpi

查看当前显卡和声卡信息#

apk add inxi
inxi -AG

kernel: i915 0000:00:02.0: [drm] ERROR CPU pipe A FIFO underrun#

如果该错误导致闪烁可添加启动参数避免 i915.enable_psr=0

Intel graphics#Screen flickering

可能由于 Intel 集成显卡的节能功能导致

VNC 远程桌面#

apk add x11vnc
# 启动服务端访问已打开会话
x11vnc -display :0 -auth /var/run/lightdm/root/\:0
# 然后访问 vnc://<IP>:5900 即可
# 不退出
x11vnc -display :0 -auth /var/run/lightdm/root/\:0 --loop
# 访问时创建新的会话
# 确保 init 能启动
echo "exec startxfce4" >> ~/.xinitrc
apk add xvfb
x11vnc -ncache_cr -display :1 -auth /var/run/lightdm/root/\:1 --create
# 不警告没有设置密码
echo nopw >> ~/.x11vncrc
# 可设置为开机启动
# x11vnc -create -xkb -noxrecord -noxfixes -noxdamage -display :0 -auth /var/run/lightdm/root/:0 -rfbauth /etc/x11vnc.pass -rfbport 5900
# 登陆之前开启 VNC
# x11vnc -auth guess -display :0

如果服务常开,建议设置密码

参考#