wsl2-ubuntu-cv.show 小黑窗问题, 配置 VcXsrv ,xfce4 无法显示 terminal

参考

https://www.cnblogs.com/blauendonau/p/14166062.html

配置脚本

bash 复制代码
#!/bin/bash

# 安装xfce4并配置为systemd服务的脚本
# 适用于Ubuntu/WSL环境

echo "========================================"
echo "安装xfce4并配置为systemd服务脚本"
echo "========================================"

# 检查是否为root用户
if [ "$EUID" -ne 0 ]; then
    echo "错误:请使用root用户运行此脚本"
    echo "使用: sudo $0"
    exit 1
fi

# 1. 更新包列表
echo "1. 更新包列表..."
apt update -y
if [ $? -ne 0 ]; then
    echo "错误:更新包列表失败"
    exit 1
fi

# 2. 安装xfce4和相关组件
echo "2. 安装xfce4和相关组件..."
apt install -y xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
if [ $? -ne 0 ]; then
    echo "错误:安装xfce4失败"
    exit 1
fi

# 3. 配置DISPLAY环境变量
echo "3. 配置DISPLAY环境变量..."
# 检查当前用户
CURRENT_USER=$(logname 2>/dev/null || echo "$SUDO_USER")
if [ -z "$CURRENT_USER" ]; then
    CURRENT_USER="vin"  # 默认用户
fi

# 配置DISPLAY环境变量到用户的.bashrc
DISPLAY_VAR="export DISPLAY=localhost:0.0"
if ! grep -q "$DISPLAY_VAR" /home/$CURRENT_USER/.bashrc; then
    echo "$DISPLAY_VAR" >> /home/$CURRENT_USER/.bashrc
    echo "已添加DISPLAY环境变量到 /home/$CURRENT_USER/.bashrc"
else
    echo "DISPLAY环境变量已存在"
fi

# 4. 创建systemd服务文件
echo "4. 创建systemd服务文件..."
cat > /etc/systemd/system/xfce4.service << EOF
[Unit]
Description=Xfce4 Desktop Environment
After=network.target

[Service]
Type=simple
User=$CURRENT_USER
Environment=DISPLAY=localhost:0.0
ExecStart=/usr/bin/startxfce4
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

if [ $? -ne 0 ]; then
    echo "错误:创建systemd服务文件失败"
    exit 1
fi

# 5. 重新加载systemd配置
echo "5. 重新加载systemd配置..."
systemctl daemon-reload

# 6. 启用并启动xfce4服务
echo "6. 启用并启动xfce4服务..."
systemctl enable xfce4
systemctl start xfce4

# 7. 验证安装和配置
echo "7. 验证安装和配置..."
echo ""
echo "=== 验证结果 ==="
echo "- xfce4版本: $(xfwm4 --version | head -1)"
echo "- 服务状态: $(systemctl is-active xfce4)"
echo "- 服务启用状态: $(systemctl is-enabled xfce4)"
echo "- DISPLAY环境变量: $(grep -E '^export DISPLAY' /home/$CURRENT_USER/.bashrc)"
echo ""

# 8. 显示使用说明
echo "========================================"
echo "安装完成!"
echo "========================================"
echo "使用说明:"
echo "1. 启动xfce4服务:sudo systemctl start xfce4"
echo "2. 停止xfce4服务:sudo systemctl stop xfce4"
echo "3. 查看服务状态:sudo systemctl status xfce4"
echo "4. 直接运行xfce4:startxfce4"
echo ""
echo "注意:在WSL环境中,需要确保Windows宿主机已安装并运行X11服务器(如VcXsrv)"
echo "或者使用WSLg的RDP功能连接:mstsc /v:localhost:3390"
echo "========================================"

xfce4 无法显示 terminal ,配置默认程序 xfce terminal

Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached

注意事项

xfce4 使用非root 账号
xfce4 使用非root 账号
xfce4 使用非root 账号

User=$CURRENT_USER

Environment=DISPLAY=localhost:0.0

指定窗口大小避免黑窗口问题


相关推荐
数智工坊19 分钟前
Zotero自建Ubuntu WebDAV附件同步方案(完美解决存储空间不足)
linux·运维·ubuntu
我是小灰灰吖3 小时前
QT在线安装器使用指南:从下载到配置完整教程
linux·qt·ubuntu
MIXLLRED5 小时前
解决——Ubuntu远程桌面指令更换网络
linux·网络·ubuntu
我是小灰灰吖8 小时前
Ubuntu 22.04 + Qt 6.9.3 应用程序打包与部署完整指南
qt·ubuntu
自律懒人11 小时前
AI 沙箱逃逸 4 连发:GPT-5.6 黑进 Hugging Face、Kimi K3 抄答案,5 步给本地 Agent 装围栏
ubuntu
老王IT13 小时前
VMware虚拟机安装的ubuntu忘记用户密码怎么办
ubuntu
我是小灰灰吖14 小时前
Ubuntu22.04,OpenCV 4.5.5 环境搭建
linux·qt·ubuntu
集智飞行16 小时前
四种方法解决ROS2超过100个节点时的DDS瓶颈
ubuntu
数智工坊16 小时前
UECP:不确定性增强的协同感知 | 基于物理先验的BEV融合新范式
linux·ubuntu·3d·机器人
IT摆渡者1 天前
ubuntu系统网络问题
linux·运维·ubuntu