#!/bin/bash

# 定义显示管理器
DISPLAY_MANAGERS=("gdm3" "lightdm" "sddm")

# 检查并安装 xrdp 的函数
install_xrdp() {
    if ! dpkg -l | grep -qw xrdp; then
        echo "未检测到 xrdp 服务，正在自动安装..."
        sudo apt update && sudo apt install -y xrdp
        if [ $? -eq 0 ]; then
            echo "xrdp 服务已成功安装。"
        else
            echo "xrdp 安装失败，请检查网络连接或软件源配置。"
            exit 1
        fi
    else
        echo "xrdp 服务已安装。"
    fi
}

# 停止桌面环境的函数
pause_desktop() {
    echo "正在暂停桌面环境..."
    for dm in "${DISPLAY_MANAGERS[@]}"; do
        sudo systemctl stop $dm 2>/dev/null
        sudo systemctl disable $dm 2>/dev/null
    done
    echo "桌面环境已暂停。"
}

# 启动桌面环境的函数
start_desktop() {
    echo "正在启动桌面环境..."
    for dm in "${DISPLAY_MANAGERS[@]}"; do
        sudo systemctl enable $dm 2>/dev/null
        sudo systemctl start $dm 2>/dev/null
    done
    echo "桌面环境已启动。"
}

# 启动 3389 服务的函数
start_rdp() {
    install_xrdp
    echo "正在启动 3389 远程桌面服务..."
    sudo systemctl enable xrdp 2>/dev/null
    sudo systemctl start xrdp 2>/dev/null
    if systemctl is-active --quiet xrdp; then
        echo "3389 远程桌面服务已启动。"
    else
        echo "启动 3389 服务失败，请检查配置或日志。"
    fi
}

# 停止 3389 服务的函数
stop_rdp() {
    echo "正在关闭 3389 远程桌面服务..."
    sudo systemctl stop xrdp 2>/dev/null
    sudo systemctl disable xrdp 2>/dev/null
    if ! systemctl is-active --quiet xrdp; then
        echo "3389 远程桌面服务已关闭。"
    else
        echo "关闭 3389 服务失败，请检查当前服务状态。"
    fi
}

# 主菜单
while true; do
    echo "请选择操作："
    echo "1. 暂停桌面环境"
    echo "2. 启动桌面环境"
    echo "3. 启动 3389 远程桌面服务"
    echo "4. 关闭 3389 远程桌面服务"
    echo "0. 退出"
    read -p "请输入选项（1/2/3/4/0）: " choice

    case $choice in
        1)
            pause_desktop
            ;;
        2)
            start_desktop
            ;;
        3)
            start_rdp
            ;;
        4)
            stop_rdp
            ;;
        0)
            echo "退出脚本..."
            break
            ;;
        *)
            echo "无效选项，请重新输入！"
            ;;
    esac
done