我可以在不连接电源的情况下以翻盖模式运行我的 MacBook 吗?

kch*_*kch 26 mac battery sleep macbook clamshell

在家里,我以翻盖模式运行我的 MacBook(合上盖子,外接显示器)。

这在您连接到电源适配器时工作正常,但在使用电池运行时不起作用。这就是它应该的样子,Apple 在这个问题上有一些 kb 条目。但它也很蹩脚。

您可以通过运行 InsomniaX 来防止机器在关闭时休眠,但是它会假设内置显示器仍处于活动状态,因此当您真的只需要外部显示器时,您最终会得到两个显示器设置。这显然不太理想。

那么,是否有任何变通方法、黑客、实用程序、黑魔法可以让我在严格使用电池电源的情况下使其在翻盖模式下运行?

此外,使 AC 状态完全不影响机器状态的解决方案的奖励积分。(就像,你知道的,它通常会在不翻盖的情况下进行。)

Vla*_*mir 9

Lucas Fais 对 Amphetamine 的回答很好,但是如果您不信任第三方应用程序,或者不想支持名为“Amphetamine”的东西......下面您将找到一种完全原生的方式在 Mac 上执行此操作,无需任何第三方应用程序

设置大约需要 5 分钟(以下所有步骤),让您只需单击一下即可启用智能无睡眠模式。没有其他菜单,没有摆弄,没有第三方安全威胁。它只做它所需要的,仅此而已,仅此而已。

脚步:

  1. 打开 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
Run Code Online (Sandbox Code Playgroud)
  1. 转到桌面 > PauseSleep并双击DontSleep.myscript。这将询问您使用什么应用程序打开文件:选择Utilities > Terminal.app。(这一步很重要,因为它稍后会让你点击运行你的脚本。)

  2. 现在,右键单击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."
Run Code Online (Sandbox Code Playgroud)
  1. 现在,右键单击Sleep.myscript并选择Open With > Other > 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."
Run Code Online (Sandbox Code Playgroud)
  1. 现在您可以将整个PauseSleep文件夹拖到 Dock 上。这让您只需在上盖子之前单击Dock 中的DontSleep.myscript图标,即可进入无动力翻盖模式。

这种方法的好处(除了不必信任第三方之外……)是它在 1 分钟后恢复脚本所做的所有更改,但您的计算机将保持唤醒状态,直到您下次打开和关闭盖子或直到达到您的正常睡眠时间

这样,您就不必担心设置第三方应用程序计时器,或者在完成工作后记得关闭无睡眠模式,或者不小心将计算机放入背包中以为它进入了睡眠状态但实际上自从您上次使用它以来,它仍然处于 No Sleep 状态。此脚本可避免所有麻烦。

它在您需要时工作,并在您不需要时关闭。就那么简单。


小智 7

在 2020 年,我相信安非他命应用程序是实现这一目标的最佳方式。

我能够根据是否插入外部显示器和电池电量来创建触发器。惊人的!

https://apps.apple.com/app/amphetamine/id937984704?mt=12

我的触发器设置


Joh*_*uhy 6

此页面建议了一种解决方法:

  1. 将显示模式设置为镜像(使用 F7 按钮)。
  2. 如果您还没有这样做,请连接外部屏幕、键盘和鼠标。
  3. 按键盘上的一个键(如 Shift)并单击鼠标一次。
  4. 合上盖子,等待 Macbook 进入睡眠状态。
  5. 在休眠状态下,点击外接鼠标一次,Macbook 将被唤醒。

如果一切顺利,几秒钟后外部屏幕将显示 Dock 和菜单栏。一看到这个,Macbook 上的 Apple 标志就不应该亮了,打开 Macbook 的盖子。Macbook 不会进入睡眠状态,不会启动其内置屏幕,您现在可以在开盖模式下使用翻盖模式。

编辑:有关 kch 使用此方法的经验,请参阅这篇文章的评论。

  • 嗯,这完全是令人费解的、随机的、棘手的、不直观的、不像 mac 的,但它奏效了。 (2认同)