mirror of
https://gitee.com/spark-store-project/spark-wine
synced 2025-12-18 21:11:39 +08:00
优化设置缩放逻辑
This commit is contained in:
@@ -1,8 +1,11 @@
|
||||
#/bin/bash
|
||||
#!/bin/bash
|
||||
|
||||
# 导入 transhell.bashimport 脚本并加载调试模式
|
||||
source ${SHELL_DIR}/bashimport/transhell.bashimport
|
||||
load_transhell_debug
|
||||
|
||||
#########>>>>>>>函数段
|
||||
#########>>>>>>> 函数段
|
||||
# 获取当前系统的发行版名称
|
||||
Get_Dist_Name()
|
||||
{
|
||||
if grep -Eqii "Deepin" /etc/issue || grep -Eq "Deepin" /etc/*-release; then
|
||||
@@ -14,64 +17,91 @@ Get_Dist_Name()
|
||||
elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then
|
||||
DISTRO='UniontechOS'
|
||||
else
|
||||
DISTRO='OtherOS'
|
||||
fi
|
||||
DISTRO='OtherOS'
|
||||
fi
|
||||
}
|
||||
|
||||
# 检测常见的缩放环境变量
|
||||
Check_Scale_Env_Vars()
|
||||
{
|
||||
if [ -n "$DEEPIN_WINE_SCALE" ]; then
|
||||
echo "$DEEPIN_WINE_SCALE"
|
||||
return 0
|
||||
elif [ -n "$GDK_SCALE" ]; then
|
||||
echo "$GDK_SCALE"
|
||||
return 0
|
||||
elif [ -n "$QT_SCALE_FACTOR" ]; then
|
||||
echo "$QT_SCALE_FACTOR"
|
||||
return 0
|
||||
elif [ -n "$WINIT_X11_SCALE_FACTOR" ]; then
|
||||
echo "$WINIT_X11_SCALE_FACTOR"
|
||||
return 0
|
||||
elif [ -n "$ELM_SCALE" ]; then
|
||||
echo "$ELM_SCALE"
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
######<<<<<<<
|
||||
|
||||
# 提示全局参数的位置
|
||||
echo "全局参数的位置在 $HOME/.config/spark-wine/scale.txt"
|
||||
|
||||
echo 全局参数的位置在$HOME/.config/spark-wine/scale.txt,如果需要更换请删除此文件重新生成
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# 创建配置目录
|
||||
mkdir -p $HOME/.config/spark-wine/
|
||||
#####全局参数位置
|
||||
#####能到这一步的说明已经是没有自定义参数了,直接读全局覆盖没问题
|
||||
#####
|
||||
|
||||
if [ -f "$HOME/.config/spark-wine/scale.txt" ];then
|
||||
echo "已经设置过全局参数,使用"
|
||||
echo "全局参数的位置在$HOME/.config/spark-wine/scale.txt,如果需要更换请删除此文件重新生成"
|
||||
exit
|
||||
# 检查是否已经设置过全局参数
|
||||
if [ -f "$HOME/.config/spark-wine/scale.txt" ]; then
|
||||
echo "已经设置过全局参数,使用"
|
||||
echo "全局参数的位置在 $HOME/.config/spark-wine/scale.txt,如果需要更换请删除此文件重新生成"
|
||||
exit
|
||||
fi
|
||||
|
||||
# 检测常见的缩放环境变量
|
||||
scale_value=$(Check_Scale_Env_Vars)
|
||||
if [ -n "$scale_value" ]; then
|
||||
echo "$scale_value" > $HOME/.config/spark-wine/scale.txt
|
||||
echo "检测到缩放环境变量,使用 $scale_value 作为缩放比例"
|
||||
exit
|
||||
fi
|
||||
|
||||
# 如果环境变量未设置,则根据系统发行版设置默认缩放比例
|
||||
Get_Dist_Name
|
||||
if [ "$DISTRO" = "UniontechOS" ] || [ "$DISTRO" = "GXDE" ];then
|
||||
echo 1.0 > $HOME/.config/spark-wine/scale.txt
|
||||
#####就是1倍缩放
|
||||
exit
|
||||
if [ "$DISTRO" = "UniontechOS" ] || [ "$DISTRO" = "GXDE" ]; then
|
||||
echo "1.0" > $HOME/.config/spark-wine/scale.txt
|
||||
echo "检测到 UniontechOS 或 GXDE 系统,使用 1.0 作为默认缩放比例"
|
||||
exit
|
||||
fi
|
||||
|
||||
# 获取当前显示器的分辨率
|
||||
dimensions=$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/')
|
||||
|
||||
# 使用 Zenity 弹窗让用户选择缩放比例
|
||||
scale_factor=$(zenity --list \
|
||||
--width=700 \
|
||||
--height=350 \
|
||||
--title="${TRANSHELL_CONTENT_YOUR_DIMENSION_IS} $dimensions ${TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW}" \
|
||||
--column="${TRANSHELL_CONTENT_OPTION}" \
|
||||
1.0 \
|
||||
1.25 \
|
||||
1.5 \
|
||||
1.75 \
|
||||
2.0 \
|
||||
2.5 \
|
||||
3.0 \
|
||||
3.5 \
|
||||
4.0)
|
||||
|
||||
dimensions=`xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'`
|
||||
scale_factor=`zenity --list \
|
||||
--width=700 \
|
||||
--height=350 \
|
||||
--title="${TRANSHELL_CONTENT_YOUR_DIMENSION_IS} $dimensions ${TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW}" \
|
||||
--column="${TRANSHELL_CONTENT_OPTION}" \
|
||||
1.0 \
|
||||
1.25 \
|
||||
1.5 \
|
||||
1.75 \
|
||||
2.0 \
|
||||
2.5 \
|
||||
3.0 \
|
||||
3.5 \
|
||||
4.0`
|
||||
|
||||
# 处理用户的选择
|
||||
case "$scale_factor" in
|
||||
"")
|
||||
zenity --info --text="${TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT}${TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST}" --width=500 --height=150
|
||||
scale_factor="1.0"
|
||||
;;
|
||||
*)
|
||||
zenity --info --text="${TRANSHELL_CONTENT_SCALE_IS} $scale_factor ${TRANSHELL_CONTENT_SAVED}!${TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST}" --width=500 --height=150
|
||||
;;
|
||||
"")
|
||||
zenity --info --text="${TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT}${TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST}" --width=500 --height=150
|
||||
scale_factor="1.0"
|
||||
;;
|
||||
*)
|
||||
zenity --info --text="${TRANSHELL_CONTENT_SCALE_IS} $scale_factor ${TRANSHELL_CONTENT_SAVED}!${TRANSHELL_CONTENT_YOU_CAN_USE_SPARK_WINE_HELPER_SETTINGS_TO_ADJUST}" --width=500 --height=150
|
||||
;;
|
||||
esac
|
||||
|
||||
# 将用户选择的缩放比例保存到配置文件中
|
||||
echo "$scale_factor" > $HOME/.config/spark-wine/scale.txt
|
||||
|
||||
|
||||
|
||||
@@ -55,19 +55,10 @@ if [ "$appointed_scale_factor" = "" ];then
|
||||
|
||||
if [ ! -f "$CONTAINER_PATH/scale.txt" ];then
|
||||
|
||||
|
||||
if [ "$DEEPIN_WINE_SCALE" = "" ];then
|
||||
echo "E: No DEEPIN_WINE_SCALE found. Use get-scale.sh to Set "
|
||||
echo "错误:没有检测到DEEPIN_WINE_SCALE,用get-scale.sh设置"
|
||||
${SHELL_DIR}/spark-dwine-helper/scale-set-helper/get-scale.sh "$CONTAINER_PATH"
|
||||
${SHELL_DIR}/spark-dwine-helper/scale-set-helper/get-scale.sh
|
||||
wine_scale=$(cat $HOME/.config/spark-wine/scale.txt)
|
||||
echo "检测到的缩放倍数为:$wine_scale"
|
||||
echo "Scale is $wine_scale"
|
||||
else
|
||||
wine_scale=$DEEPIN_WINE_SCALE
|
||||
echo "检测到的缩放倍数为:$wine_scale"
|
||||
echo "Scale is $wine_scale"
|
||||
fi
|
||||
else
|
||||
wine_scale=`cat $CONTAINER_PATH/scale.txt`
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ echo "$CHOSEN_SETTINGS"
|
||||
case "$CHOSEN_SETTINGS" in
|
||||
"${TRANSHELL_CONTENT_SET_GLOBAL_SCALE}")
|
||||
########
|
||||
zenity --info --text="${TRANSHELL_CONTENT_THIS_WILL_NOT_TAKE_EFFECT_IN_DEEPIN_BECAUSE_READ_ENVIRONMENT_FIRST}" --width=500 --height=150
|
||||
|
||||
|
||||
dimensions=`xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'`
|
||||
scale_factor=`zenity --list \
|
||||
|
||||
@@ -5,7 +5,6 @@ TRANSHELL_CONTENT_SET_GLOBAL_SCALE="Set global scale"
|
||||
TRANSHELL_CONTENT_SET_APP="Single App Settings"
|
||||
TRANSHELL_CONTENT_SYNC_APP_SCALE_WITH_GLOBAL="Sync all the wine app scale with global scale in one key"
|
||||
TRANSHELL_CONTENT_ONLY_AVAILABLE_TO_SPARK_DWINE_HELPER_APP="Note: The options above only take effect on spark-dwine-helper apps"
|
||||
TRANSHELL_CONTENT_THIS_WILL_NOT_TAKE_EFFECT_IN_DEEPIN_BECAUSE_READ_ENVIRONMENT_FIRST="Note:This option is invalid in deepin/UOS,for the script will read deepin/UOS scale settings first"
|
||||
TRANSHELL_CONTENT_YOUR_DIMENSION_IS="Your dimension is :"
|
||||
TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="Please choose one option below"
|
||||
TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT="Setting 1.0 scale as default"
|
||||
|
||||
@@ -5,7 +5,6 @@ TRANSHELL_CONTENT_SET_GLOBAL_SCALE="设置全局缩放"
|
||||
TRANSHELL_CONTENT_SET_APP="设置单个应用"
|
||||
TRANSHELL_CONTENT_SYNC_APP_SCALE_WITH_GLOBAL="一键将所有已安装应用的缩放设置改为与全局缩放一致"
|
||||
TRANSHELL_CONTENT_ONLY_AVAILABLE_TO_SPARK_DWINE_HELPER_APP="备注:以上操作仅对使用了spark-dwine-helper的应用生效"
|
||||
TRANSHELL_CONTENT_THIS_WILL_NOT_TAKE_EFFECT_IN_DEEPIN_BECAUSE_READ_ENVIRONMENT_FIRST="请注意:此选项对deepin/UOS无效,会优先读取deepin/UOS的缩放设置进行缩放"
|
||||
TRANSHELL_CONTENT_YOUR_DIMENSION_IS="您的分辨率是:"
|
||||
TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="请在以下选项中选择一个"
|
||||
TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT="默认为1倍缩放。"
|
||||
|
||||
Reference in New Issue
Block a user