4K显示器在2560x1440分辩率下,当显示器从休眠状态下唤醒后,出现闪屏现像,其他分辩率下没有此问题,以下为临时解决方法:

解决思路:将分辩率改成其他,然后再改回来


方法一:手动去更改分辩率


方法二:使用脚本自动更改

需要的资料:
displayplacer

https://github.com/jakehilborn/displayplacer/releases

1. 编写一个脚本:
disflick.sh
=========================================
currDp=$(displayplacer list | grep displayplacer 2>&1)
#echo $currDp
tmp1=${currDp#*res:}
#echo $tmp1
currRes=${tmp1%% hz:*}
#echo $currRes
if [ "$currRes" = "2560x1440" ]; then
   #echo "OK!"
   tmpDp=${currDp/2560x1440/1920x1080}
   #echo $tmpDp
   echo ${tmpDp}  | awk '{run=$0;system(run)}' #Run Command, change resolution to 1920x1080
   echo ${currDp} | awk '{run=$0;system(run)}' #Run Command, change resolution to 2560x1440
else
   echo "none"
fi
=========================================

2. 设置可运行权限
   chmod a+x disflick.sh

3. 制作diskflick.sh的替身(其他系统叫:软链接或快捷方式)
   在Finder中右击disflick.sh文件,选择“制作替身”

4. 将替身拖到桌面或Docker中

5. 设置终端中运行完脚本后自动关闭
   打开一个“终端”
   选中打开的“终端”窗口
   点击左上角“终端”--“偏好设置”
   点击“描述文件”--“Shell”
   “当shell退出时”选项选择:“关闭窗口”
   关闭“设置”窗口
   保持“终端”窗口选中,点击“Shell”--"将设置用作默认设置"

6. 设置disflick.sh双击可执行
   右击diskflick.sh文件,选择“打开方式”--“其他”
    “启用:推荐的应用程序”选项选择“所有应用程序”
    选择“应用程序”--“实用工具”--“终端” ,勾选“始终以此方式打开”,打开

通过以上设置,可通过双击解决闪屏并保持原分辩率不变,较为方便,接下去研究一下通过sleepwatcher实现唤醒后自动执行脚本。


 


参考资料:
1. https://github.com/osy86/HaC-Mini/issues/7
2. 如何将shell的变量当命令执行:https://blog.csdn.net/weixin_33922670/article/details/89803127
3. 使用sleepwatcher在Mac唤醒时自启程序:https://my.oschina.net/lvyi/blog/1547856?utm_source=debugrun&utm_medium=referral
4. Bash脚本教程:https://wangdoc.com/bash/index.html
5. shell如何将命令的执行结果重定向到变量:https://blog.csdn.net/microchenhong/article/details/91399031
09-01 19:24