优化设置缩放逻辑

This commit is contained in:
2025-02-26 11:34:08 +08:00
parent 3b19f5f26c
commit dfcecf30db
5 changed files with 78 additions and 59 deletions

View File

@@ -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
@@ -17,38 +20,64 @@ Get_Dist_Name()
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
# 检查是否已经设置过全局参数
if [ -f "$HOME/.config/spark-wine/scale.txt" ]; then
echo "已经设置过全局参数,使用"
echo "全局参数的位置在$HOME/.config/spark-wine/scale.txt如果需要更换请删除此文件重新生成"
echo "全局参数的位置在 $HOME/.config/spark-wine/scale.txt如果需要更换请删除此文件重新生成"
exit
fi
Get_Dist_Name
if [ "$DISTRO" = "UniontechOS" ] || [ "$DISTRO" = "GXDE" ];then
echo 1.0 > $HOME/.config/spark-wine/scale.txt
#####就是1倍缩放
exit
# 检测常见的缩放环境变量
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
echo "检测到 UniontechOS 或 GXDE 系统,使用 1.0 作为默认缩放比例"
exit
fi
# 获取当前显示器的分辨率
dimensions=$(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/')
dimensions=`xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'`
scale_factor=`zenity --list \
# 使用 Zenity 弹窗让用户选择缩放比例
scale_factor=$(zenity --list \
--width=700 \
--height=350 \
--title="${TRANSHELL_CONTENT_YOUR_DIMENSION_IS} $dimensions ${TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW}" \
@@ -61,17 +90,18 @@ scale_factor=`zenity --list \
2.5 \
3.0 \
3.5 \
4.0`
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_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

View File

@@ -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`

View File

@@ -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 \

View File

@@ -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="NoteThis 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"

View File

@@ -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倍缩放。"