如何编写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"
使用说明
- 把脚本保存为
switch_resolution.sh - 给脚本添加执行权限:
chmod +x switch_resolution.sh - 运行脚本:
./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
相关产品推荐
相关产品推荐

