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

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


相关推荐
EHagSJVNpTY1 小时前
MATLAB 中基于最大重叠离散小波变换的心电信号处理探索
ubuntu
.小墨迹1 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
技术路上的探险家2 小时前
Ubuntu下Docker与NVIDIA Container Toolkit完整安装教程(含国内源适配)
linux·ubuntu·docker
无证驾驶梁嗖嗖3 小时前
用Plex打造随身私人影院告别影音杂乱,必须加上cpolar突破地域限制!
ubuntu
Sheep Shaun4 小时前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区
生活很暖很治愈4 小时前
Linux——环境变量PATH
linux·ubuntu
予枫的编程笔记5 小时前
【Linux入门篇】Ubuntu和CentOS包管理不一样?apt与yum对比实操,看完再也不混淆
linux·人工智能·ubuntu·centos·linux包管理·linux新手教程·rpm离线安装
匆匆那年9678 小时前
llamafactory推理消除模型的随机性
linux·服务器·学习·ubuntu
wypywyp16 小时前
8. ubuntu 虚拟机 linux 服务器 TCP/IP 概念辨析
linux·服务器·ubuntu
阿蒙Amon16 小时前
TypeScript学习-第10章:模块与命名空间
学习·ubuntu·typescript