You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写MacOS脚本实现应用(含LR/PS)在低/Retina分辨率间重启切换?

嘿,这个需求其实可以通过修改MacOS应用的配置文件加上自动化脚本来搞定,我给你拆解一下具体方案,包括通用脚本和针对Lightroom/Photoshop的专属版本:

核心原理

MacOS里控制应用是否启用Retina分辨率的关键,是应用包内Contents/Info.plist文件中的NSHighResolutionCapable字段:

  • 当值为true(或1)时,应用启用Retina高分辨率
  • 当值为false(或0)时,应用以低分辨率运行(系统会放大界面适配Retina屏幕)

脚本的逻辑就是:关闭目标应用→切换这个字段的值→重启应用。

通用应用分辨率切换脚本

这个脚本适用于绝大多数Mac应用,你只需要替换目标应用的路径即可:

#!/bin/bash

# 替换成你的应用路径,比如 "/Applications/Notes.app"
APP_PATH="/Applications/YourApp.app"
APP_NAME=$(basename "$APP_PATH" .app)

# 检查应用是否在运行,若运行则先关闭(未保存内容会丢失!)
if pgrep -x "$APP_NAME" > /dev/null; then
    echo "正在关闭 $APP_NAME..."
    osascript -e "quit app \"$APP_NAME\""
    # 等待3秒确保应用完全退出
    sleep 3
fi

# 读取当前分辨率状态并切换
PLIST_PATH="$APP_PATH/Contents/Info.plist"
CURRENT_STATUS=$(defaults read "$PLIST_PATH" NSHighResolutionCapable)

if [ "$CURRENT_STATUS" = "1" ]; then
    echo "切换到低分辨率模式..."
    defaults write "$PLIST_PATH" NSHighResolutionCapable -bool false
else
    echo "切换到Retina分辨率模式..."
    defaults write "$PLIST_PATH" NSHighResolutionCapable -bool true
fi

# 重新启动应用
echo "重新启动 $APP_NAME..."
open "$APP_PATH"

使用说明

  1. 把脚本保存为switch_resolution.sh
  2. 给脚本添加执行权限:chmod +x switch_resolution.sh
  3. 运行脚本:./switch_resolution.sh(如果遇到权限问题,用sudo ./switch_resolution.sh并输入管理员密码)
针对Lightroom/Photoshop的专属切换脚本

下面是专门针对这两款Adobe软件的脚本,记得根据你的实际版本修改路径:

Lightroom Classic 切换脚本

#!/bin/bash

# 确认你的Lightroom安装路径,默认是这个,若有修改请替换
APP_PATH="/Applications/Adobe Lightroom Classic/Adobe Lightroom Classic.app"
APP_NAME="Adobe Lightroom Classic"

# 关闭应用(务必提前保存工作!)
if pgrep -x "$APP_NAME" > /dev/null; then
    echo "正在关闭 Lightroom Classic..."
    osascript -e "quit app \"$APP_NAME\""
    sleep 3
fi

# 切换分辨率状态
PLIST_PATH="$APP_PATH/Contents/Info.plist"
CURRENT_STATUS=$(defaults read "$PLIST_PATH" NSHighResolutionCapable)

if [ "$CURRENT_STATUS" = "1" ]; then
    echo "切换Lightroom到低分辨率模式..."
    defaults write "$PLIST_PATH" NSHighResolutionCapable -bool false
else
    echo "切换Lightroom到Retina分辨率模式..."
    defaults write "$PLIST_PATH" NSHighResolutionCapable -bool true
fi

# 重启应用
echo "重新启动Lightroom Classic..."
open "$APP_PATH"

Photoshop 切换脚本

#!/bin/bash

# 替换成你的Photoshop版本路径,比如2023/2024
APP_PATH="/Applications/Adobe Photoshop 2024/Adobe Photoshop 2024.app"
APP_NAME="Adobe Photoshop 2024"

# 关闭应用(务必提前保存工作!)
if pgrep -x "$APP_NAME" > /dev/null; then
    echo "正在关闭 Photoshop..."
    osascript -e "quit app \"$APP_NAME\""
    sleep 3
fi

# 切换分辨率状态
PLIST_PATH="$APP_PATH/Contents/Info.plist"
CURRENT_STATUS=$(defaults read "$PLIST_PATH" NSHighResolutionCapable)

if [ "$CURRENT_STATUS" = "1" ]; then
    echo "切换Photoshop到低分辨率模式..."
    defaults write "$PLIST_PATH" NSHighResolutionCapable -bool false
else
    echo "切换Photoshop到Retina分辨率模式..."
    defaults write "$PLIST_PATH" NSHighResolutionCapable -bool true
fi

# 重启应用
echo "重新启动Photoshop..."
open "$APP_PATH"
重要注意事项
  • 数据安全:脚本会强制关闭应用,一定要提前保存所有未完成的工作,否则内容会丢失!
  • 权限问题:修改系统目录下的应用(比如Adobe软件)可能需要管理员权限,运行脚本时加sudo即可。
  • 签名警告:修改Info.plist后,第一次打开应用可能会弹出“无法验证开发者”的提示,去系统设置 > 隐私与安全性里允许打开即可。
  • 版本适配:Adobe软件的安装路径会随版本更新变化,一定要确认你的应用实际路径后再修改脚本。

内容的提问来源于stack exchange,提问作者Alliance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:58:32