#!/bin/bash

SYS_VERSION=$(grep 'MinorVersion=' /etc/os-version | awk -F '=' '{print $2}' | tr -d '[:space:]')
BUILD_VERSION=$(($(grep 'OsBuild=' /etc/os-version | awk -F '.' '{print $2}') - 100))
SYS_VERSION="$((SYS_VERSION + BUILD_VERSION))"

update_kwin_effect_type() {
    dde-dconfig --set -a org.kde.kwin -r org.kde.kwin.compositing -k user_type_range -v "[4]" &
    dde-dconfig --set -a org.kde.kwin -r org.kde.kwin.compositing -k user_type -v "4" &
}

get_graphics_drivers() {
    targets="$@"  # 接收所有传入的参数
    directories="/sys/class/drm/card0/device/drm/card0/device/driver/module/drivers /sys/bus/pci/drivers/"  # 要搜索的目录列表
    for target_to_match in $targets; do
        for directory in $directories; do
            # 遍历指定目录
            for file in "$directory"/*; do
		if [ -L "$file" ]; then
                    # 文件为符号链接
                    driver_name=$(basename "$(readlink "$file")")
                else
                    # 文件为普通文件
                    driver_name=$(basename "$file")
                fi
                # 检查是否等于目标驱动程序
                if [ "$driver_name" = "$target_to_match" ]; then
                    echo "Match found: $driver_name"
                    return 1
                fi
            done
        done
    done
    return 0  # 默认返回0表示匹配失败
}

#loongson config
if [ -e /dev/galcore ];then
    export DESKTOP_CAN_SCREENSAVER=N
    export CAN_SET_BRIGHTNESS=N
    if [ $SYS_VERSION -gt 1073 ]; then
        update_kwin_effect_type
    else
        export KWIN_COMPOSE=N
    fi
fi
arch | grep "loongarch64"
ARCH=$?
if [ $ARCH -eq 0 ];then
        #lshw -c video | grep "driver=loongson-drm"
        get_graphics_drivers "loongson-drm"
        result=$?
        if [ $result -eq 1 ]; then
            if [ $SYS_VERSION -gt 1073 ]; then
                update_kwin_effect_type
            else
                export KWIN_COMPOSE=N
            fi
            export CAN_SET_BRIGHTNESS=N
        fi
        #龙芯集显gsgpu-dc，需屏蔽3D开关，后面说回滚，其他lshw优化不变
        #get_graphics_drivers "gsgpu-dc"
        #result=$?
        #if [ $result -eq 1 ]; then
        #        export KWIN_COMPOSE=N
        #fi
#TMP=$?
#if [ $TMP -eq 0 ];then
#       export KWIN_COMPOSE=N
#       export CAN_SET_BRIGHTNESS=N
#fi
fi

#识别到景嘉微显卡屏蔽窗口特效
#lshw -c video | grep "driver=mwv206"
#TMP=$?
#if [ $TMP -eq 0 ];then
#    export KWIN_COMPOSE=N
#fi
get_graphics_drivers "mwv206" "mwv207"
result=$?
if [ $result -eq 1 ]; then
    if [ $SYS_VERSION -gt 1073 ]; then
        update_kwin_effect_type
    else
        export KWIN_COMPOSE=N
    fi
fi
#识别到x100显卡屏蔽窗口特效
if [ -e /dev/pvr_sync ];then
    if [ $SYS_VERSION -gt 1073 ]; then
        update_kwin_effect_type
    else
        export KWIN_COMPOSE=N
    fi
fi
