#!/bin/bash

MAX_BACKUP_NUM=9
LOG_NAME=".kwin"
LOG_SUFFIX=".log"
BACKUP_SUFFIX="-old"

dde-dconfig --get -a org.deepin.dde.lightdm-deepin-greeter -r org.deepin.dde.lightdm-deepin-greeter -k defaultGreeterSession | grep "wayland"
if [ $? -eq 0 ];then
    export KWIN_COMPOSE=O2ES
fi

export GDK_BACKEND=x11
export KWIN_USE_BUFFER_AGE=1
export KWIN_DISABLE_XWL_CLIPBOARD=1

if [ ! -f "$HOME/.config/kglobalshortcutsrc" ]; then
    cp -n /etc/xdg/kglobalshortcutsrc $HOME/.config/kglobalshortcutsrc
fi

export QT_LOGGING_RULES="kwin*=true;kwin_libinput=false;"
# TODO 调整缩放系数并注销后需要通过scale-factor计算xft-dpi值，后续需要定位部分设备和Qt版本无法通过Qt获取正确DPI的问题
CALCULATE_DPI_FROM_X=$(echo "scale=0;`gsettings get com.deepin.xsettings scale-factor` * 96 / 1" | bc)
if [[ -n "$CALCULATE_DPI_FROM_X" ]]; then
        export QT_WAYLAND_FORCE_DPI="$CALCULATE_DPI_FROM_X"
fi
export QT_MESSAGE_PATTERN="[%{time yyyy-MM-dd hh:mm:ss.zzz}] %{function}:%{line} - %{message}"

if [ -f "$HOME/.config/locale.conf" ]; then
    source $HOME/.config/locale.conf
fi

# rename old log name
# params $1 log name
# params $2 old log name
# params $3 backup suffix
# params $4 index
_log_rename() {
    local LOG_NAME=$1
    local LOG_SUFFIX=$2
    local BACKUP_SUFFIX=$3
    local OLDLOG=$4
    local INDEX=$5
    local target_file=${LOG_NAME}${BACKUP_SUFFIX}${LOG_SUFFIX}

    if [[ "${OLDLOG}" == "" ]]; then
        OLDLOG=${LOG_NAME}${LOG_SUFFIX}
    fi

    if [[ "${INDEX}" != "" ]]; then
        target_file+="."${INDEX}
    fi

    if [[ -f ${HOME}/${OLDLOG} && ${INDEX} -lt $(( ${MAX_BACKUP_NUM} - 1 )) ]]; then
        _log_rename ${LOG_NAME} ${LOG_SUFFIX} ${BACKUP_SUFFIX} ${target_file} $(( ${INDEX} + 1 ))
    fi

    if [[ -f ${HOME}/${OLDLOG} ]]; then
        mv ${HOME}/${OLDLOG} ${HOME}/${target_file}
    fi
}


_log_rename ${LOG_NAME} ${LOG_SUFFIX} ${BACKUP_SUFFIX}
exec /usr/bin/kwin_wayland --withoutscreen -platform dde-kwin-wayland --xwayland --drm --no-lockscreen  startdde-wayland 1> $HOME/${LOG_NAME}${LOG_SUFFIX} 2>&1
