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
|
source ${SHELL_DIR}/bashimport/transhell.bashimport
|
||||||
load_transhell_debug
|
load_transhell_debug
|
||||||
|
|
||||||
#########>>>>>>>函数段
|
#########>>>>>>> 函数段
|
||||||
|
# 获取当前系统的发行版名称
|
||||||
Get_Dist_Name()
|
Get_Dist_Name()
|
||||||
{
|
{
|
||||||
if grep -Eqii "Deepin" /etc/issue || grep -Eq "Deepin" /etc/*-release; then
|
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
|
elif grep -Eqi "UOS" /etc/issue || grep -Eq "UOS" /etc/*-release; then
|
||||||
DISTRO='UniontechOS'
|
DISTRO='UniontechOS'
|
||||||
else
|
else
|
||||||
DISTRO='OtherOS'
|
DISTRO='OtherOS'
|
||||||
fi
|
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/
|
mkdir -p $HOME/.config/spark-wine/
|
||||||
#####全局参数位置
|
|
||||||
#####能到这一步的说明已经是没有自定义参数了,直接读全局覆盖没问题
|
|
||||||
#####
|
|
||||||
|
|
||||||
if [ -f "$HOME/.config/spark-wine/scale.txt" ];then
|
# 检查是否已经设置过全局参数
|
||||||
echo "已经设置过全局参数,使用"
|
if [ -f "$HOME/.config/spark-wine/scale.txt" ]; then
|
||||||
echo "全局参数的位置在$HOME/.config/spark-wine/scale.txt,如果需要更换请删除此文件重新生成"
|
echo "已经设置过全局参数,使用"
|
||||||
exit
|
echo "全局参数的位置在 $HOME/.config/spark-wine/scale.txt,如果需要更换请删除此文件重新生成"
|
||||||
|
exit
|
||||||
fi
|
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
|
Get_Dist_Name
|
||||||
if [ "$DISTRO" = "UniontechOS" ] || [ "$DISTRO" = "GXDE" ];then
|
if [ "$DISTRO" = "UniontechOS" ] || [ "$DISTRO" = "GXDE" ]; then
|
||||||
echo 1.0 > $HOME/.config/spark-wine/scale.txt
|
echo "1.0" > $HOME/.config/spark-wine/scale.txt
|
||||||
#####就是1倍缩放
|
echo "检测到 UniontechOS 或 GXDE 系统,使用 1.0 作为默认缩放比例"
|
||||||
exit
|
exit
|
||||||
fi
|
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
|
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
|
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"
|
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
|
esac
|
||||||
echo "$scale_factor" > $HOME/.config/spark-wine/scale.txt
|
|
||||||
|
|
||||||
|
|
||||||
|
# 将用户选择的缩放比例保存到配置文件中
|
||||||
|
echo "$scale_factor" > $HOME/.config/spark-wine/scale.txt
|
||||||
@@ -54,20 +54,11 @@ if [ "$appointed_scale_factor" = "" ];then
|
|||||||
#########未指定下,读取$CONTAINER_PATH/scale.txt。如果没有,优先$DEEPIN_WINE_SCALE设置,然后是手动
|
#########未指定下,读取$CONTAINER_PATH/scale.txt。如果没有,优先$DEEPIN_WINE_SCALE设置,然后是手动
|
||||||
|
|
||||||
if [ ! -f "$CONTAINER_PATH/scale.txt" ];then
|
if [ ! -f "$CONTAINER_PATH/scale.txt" ];then
|
||||||
|
|
||||||
|
|
||||||
if [ "$DEEPIN_WINE_SCALE" = "" ];then
|
${SHELL_DIR}/spark-dwine-helper/scale-set-helper/get-scale.sh
|
||||||
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"
|
|
||||||
wine_scale=$(cat $HOME/.config/spark-wine/scale.txt)
|
wine_scale=$(cat $HOME/.config/spark-wine/scale.txt)
|
||||||
echo "检测到的缩放倍数为:$wine_scale"
|
echo "检测到的缩放倍数为:$wine_scale"
|
||||||
echo "Scale is $wine_scale"
|
echo "Scale is $wine_scale"
|
||||||
else
|
|
||||||
wine_scale=$DEEPIN_WINE_SCALE
|
|
||||||
echo "检测到的缩放倍数为:$wine_scale"
|
|
||||||
echo "Scale is $wine_scale"
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
wine_scale=`cat $CONTAINER_PATH/scale.txt`
|
wine_scale=`cat $CONTAINER_PATH/scale.txt`
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ echo "$CHOSEN_SETTINGS"
|
|||||||
case "$CHOSEN_SETTINGS" in
|
case "$CHOSEN_SETTINGS" in
|
||||||
"${TRANSHELL_CONTENT_SET_GLOBAL_SCALE}")
|
"${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/'`
|
dimensions=`xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'`
|
||||||
scale_factor=`zenity --list \
|
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_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_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_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_YOUR_DIMENSION_IS="Your dimension is :"
|
||||||
TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="Please choose one option below"
|
TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="Please choose one option below"
|
||||||
TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT="Setting 1.0 scale as default"
|
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_SET_APP="设置单个应用"
|
||||||
TRANSHELL_CONTENT_SYNC_APP_SCALE_WITH_GLOBAL="一键将所有已安装应用的缩放设置改为与全局缩放一致"
|
TRANSHELL_CONTENT_SYNC_APP_SCALE_WITH_GLOBAL="一键将所有已安装应用的缩放设置改为与全局缩放一致"
|
||||||
TRANSHELL_CONTENT_ONLY_AVAILABLE_TO_SPARK_DWINE_HELPER_APP="备注:以上操作仅对使用了spark-dwine-helper的应用生效"
|
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_YOUR_DIMENSION_IS="您的分辨率是:"
|
||||||
TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="请在以下选项中选择一个"
|
TRANSHELL_CONTENT_PLEASE_CHOOSE_ONE_BELOW="请在以下选项中选择一个"
|
||||||
TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT="默认为1倍缩放。"
|
TRANSHELL_CONTENT_1_SCALE_AS_DEFAULT="默认为1倍缩放。"
|
||||||
|
|||||||
Reference in New Issue
Block a user