#!/bin/bash

# 设置电源模式脚本
# 使用dconf命令设置银河麒麟系统的电源模式

export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u)/bus"
export DISPLAY=:0

# 显示使用帮助
show_help() {
    echo "使用方法: $0 [选项]"
    echo ""
    echo "选项:"
    echo "  -m, --mode <模式>      设置电源模式"
    echo "                        0: 最佳能效"
    echo "                        1: 平衡"
    echo "                        2: 最佳性能"
    echo "  -h, --help             显示帮助信息"
    echo ""
    echo "示例:"
    echo "  $0 --mode 0  # 设置为最佳能效"
    echo "  $0 --mode 1  # 设置为平衡"
    echo "  $0 --mode 2  # 设置为最佳性能"
}

# 解析命令行参数
parse_args() {
    while [[ $# -gt 0 ]]; do
        case $1 in
            -m|--mode)
                POWER_MODE="$2"
                shift 2
                ;;
            -h|--help)
                show_help
                exit 0
                ;;
            *)
                echo "未知参数: $1"
                show_help
                exit 1
                ;;
        esac
    done
}

# 验证参数
validate_args() {
    if [ -z "$POWER_MODE" ]; then
        echo "错误: 必须设置电源模式"
        show_help
        exit 1
    fi
    
    if ! [[ "$POWER_MODE" =~ ^[0-2]$ ]]; then
        echo "错误: 电源模式必须是0、1或2"
        show_help
        exit 1
    fi
}

# 设置电源模式
set_power_mode() {
    # 映射电源模式名称
    case $POWER_MODE in
        0)
            mode_name="最佳能效"
            ;;
        1)
            mode_name="平衡"
            ;;
        2)
            mode_name="最佳性能"
            ;;
    esac
    
    echo "设置电源模式为: $mode_name"
    
    # 调用dconf命令设置电源模式
    dconf write /org/ukui/power-manager/power-policy-ac "$POWER_MODE"
    
    if [ $? -eq 0 ]; then
        echo "电源模式设置成功"
    else
        echo "电源模式设置失败"
        exit 1
    fi
}

# 主函数
main() {
    # 解析参数
    parse_args "$@"
    
    # 验证参数
    validate_args
    
    # 设置电源模式
    set_power_mode
}

# 执行主函数
if [ "$0" = "$BASH_SOURCE" ]; then
    main "$@"
fi
