From dfcecf30dbe939d080ef8e550437aace6bd589da Mon Sep 17 00:00:00 2001 From: shenmo Date: Wed, 26 Feb 2025 11:34:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=AE=BE=E7=BD=AE=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scale-set-helper/get-scale.sh | 122 +++++++++++------- .../scale-set-helper/set-wine-scale.sh | 11 +- .../wine-app-settings/settings.sh | 2 +- .../transhell/settings.sh_en_US.transhell | 1 - .../transhell/settings.sh_zh_CN.transhell | 1 - 5 files changed, 78 insertions(+), 59 deletions(-) diff --git a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/get-scale.sh b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/get-scale.sh index e280b82..48bed53 100755 --- a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/get-scale.sh +++ b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/get-scale.sh @@ -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 - +# 将用户选择的缩放比例保存到配置文件中 +echo "$scale_factor" > $HOME/.config/spark-wine/scale.txt \ No newline at end of file diff --git a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh index bacb701..99dd187 100755 --- a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh +++ b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/scale-set-helper/set-wine-scale.sh @@ -54,20 +54,11 @@ if [ "$appointed_scale_factor" = "" ];then #########未指定下,读取$CONTAINER_PATH/scale.txt。如果没有,优先$DEEPIN_WINE_SCALE设置,然后是手动 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` diff --git a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/settings.sh b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/settings.sh index b787e5f..4f676f8 100755 --- a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/settings.sh +++ b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/settings.sh @@ -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 \ diff --git a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_en_US.transhell b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_en_US.transhell index 7d9bb5b..4ede2e9 100644 --- a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_en_US.transhell +++ b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_en_US.transhell @@ -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" diff --git a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_zh_CN.transhell b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_zh_CN.transhell index 669da62..3757390 100644 --- a/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_zh_CN.transhell +++ b/spark-dwine-helper/s-wine-helper/opt/spark-dwine-helper/spark-dwine-helper/wine-app-settings/transhell/settings.sh_zh_CN.transhell @@ -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倍缩放。"