在家里,我以翻盖模式(关闭盖子,外接显示器)运行我的 MacBook。
当您连接到电源适配器时,此功能可以正常工作,但使用电池供电时则无法正常工作。这本来就是应该的,Apple 也有一些关于此问题的知识库条目。但这也很无用。
您可以通过运行 InsomniaX 来防止机器在关闭时进入睡眠状态,但这样它会假定内置显示器仍处于活动状态,因此最终您会得到一个双显示器设置,而您实际上只需要外部显示器。这显然不太理想。
那么,有没有什么解决方法、技巧、实用程序或黑魔法可以用来让它在严格依靠电池供电的情况下以翻盖模式运行?
此外,如果解决方案能够使 AC 状态完全不影响机器状态,那么将获得加分。(就像您知道的那样,当不在翻盖中时,它通常会影响机器状态。)
答案1
这一页建议解决方法:
- 将显示模式设置为镜像(使用 F7 按钮)。
- 如果您还没有这样做,请连接外接屏幕、键盘和鼠标。
- 按下键盘上的某个键(如 Shift)并单击鼠标一次。
- 合上盖子并等待 Macbook 进入睡眠状态。
- 在睡眠状态下,单击外接鼠标一次,Macbook 就会被唤醒。
如果一切顺利,外置屏幕将在几秒钟后显示 Dock 和菜单栏。看到此信息后,Macbook 上的 Apple 徽标不应亮起,请打开 Macbook 的盖子。Macbook 不会进入睡眠状态,不会启动其内置屏幕,您现在可以在打开盖子的模式下使用翻盖模式。
编辑:请参阅此帖子的评论,了解 kch 使用此方法的经验。
答案2
Lucas Fais 关于安非他明的回答很棒,但如果你不信任第三方应用程序,或者不想支持名为“安非他明”的东西……下面你将找到一种在 Mac 上完全原生的方式来实现这一点无需任何第三方应用程序。
设置大约需要 5 分钟(所有步骤如下),只需单击一下即可启用智能无睡眠模式。无需其他菜单,无需摆弄,没有第三方安全威胁。它只是做它需要做的事情,不多也不少。
脚步:
- 打开 Terminal.app 并运行以下 5 个命令来创建脚本文件并设置其权限:
mkdir ~/Desktop/PauseSleep
echo "" > ~/Desktop/PauseSleep/DontSleep.myscript
chmod 755 ~/Desktop/PauseSleep/DontSleep.myscript
echo "" > ~/Desktop/PauseSleep/Sleep.myscript
chmod 755 ~/Desktop/PauseSleep/Sleep.myscript
去桌面 > 暂停睡眠并双击DontSleep.myscript. 这会询问您使用什么应用程序打开文件:选择实用程序 > Terminal.app(此步骤很重要,因为它稍后会让您单击以运行脚本。)
现在,右键单击DontSleep.myscript并选择打开方式>其他>TextEdit.app这样我们就可以编辑文件了。只需将以下所有代码复制并粘贴到文件中即可。就这样。无需摆弄。
# Starting main script
echo "Starting script...";
echo ""
echo "Enter password to update sleep settings: "
sudo echo "Disabling sleep..."
# Creating helper process
echo "# This is a helper script. Do not run manually." > ~/Desktop/PauseSleep/DontSleepHelper.sh
echo "sudo pmset -a disablesleep 1" >> ~/Desktop/PauseSleep/DontSleepHelper.sh
echo "rm -f ~/Desktop/PauseSleep/DontSleepHelper.sh" >> ~/Desktop/PauseSleep/DontSleepHelper.sh
echo "sleep 60" >> ~/Desktop/PauseSleep/DontSleepHelper.sh
echo "sudo pmset -a disablesleep 0" >> ~/Desktop/PauseSleep/DontSleepHelper.sh
echo "exit 0;" >> ~/Desktop/PauseSleep/DontSleepHelper.sh
chmod 755 ~/Desktop/PauseSleep/DontSleepHelper.sh
# Launching the helper as a standalone process
nohup ~/Desktop/PauseSleep/DontSleepHelper.sh &
# Waiting for a second then printing info for the user
sleep 1
echo ""
echo "/------------------------------------------------------------------\\"
echo "| You may now close this window and shut the macbook lid. |"
echo "| If lid is not closed within 1 minutes, clamshell mode will be |"
echo "| reverted to default to prevent you from from forgetting about it. |"
echo "\\------------------------------------------------------------------/"
echo ""
echo ""
echo "Script is done."
- 现在,右键单击Sleep.myscript并选择打开方式>其他>TextEdit.app。将以下所有代码复制到文件中。同样,无需摆弄。您可以直接复制。
## Note: This file is optional but good to have in case you somehow get stuck in No Sleep mode.
# Starting main script
echo "Starting script...";
echo ""
echo "Enter password to update sleep settings: "
sudo echo "Reverting any still-un-revered settings and going to sleep..."
sudo pmset -a disablesleep 0
sudo pmset sleepnow
echo ""
echo "Script is done."
- 现在你可以拖动整个暂停睡眠文件夹拖到 Dock 上。这样,您只需点击DontSleep.myscript合上盖子之前,请先在 Dock 中单击图标。
这种方法的好处(除了不必信任第三方之外...)它会在 1 分钟后恢复脚本所做的所有更改,但您的计算机将保持唤醒状态,直到您下次打开和关闭盖子或直到达到正常睡眠时间。
这样,您就不必担心设置第三方应用计时器,也不必在完成工作后记得关闭“不睡眠”模式,也不必担心将计算机意外放入背包中,以为它已进入睡眠状态,但实际上自上次使用以来它仍处于“不睡眠”状态。此脚本可避免所有这些麻烦。
当你需要时,它就会工作,当你不需要时,它就会关闭。就这么简单。
答案3
在 2020 年,我相信安非他明应用程序是实现这一目标的最佳方式。
我能够根据外部显示器是否插入以及电池电量来创建触发器。太棒了!