Can you change lid behaviour of M1 MacBook Pros?

If you’ve got an M1 notebook, MacBook Air or Pro, you’ll be familiar with its behaviour: whenever you open its lid, it’ll wake from sleep or start up if it has been shut down. Although in the great majority of cases, this suits users fine, there are times when you might want to clean the screen or keyboard without it starting up. As some have discovered, inserting even a thin cloth over the keyboard can lead to inadvertent waking or starting up, resulting in unintended battery discharge when the Mac’s not in use.

The simple answer would be to disable this behaviour, and require that Mac to wake or boot only when the Power button is pressed, the behaviour of some older notebook models.

There are two different settings involved here: when a Mac is shut down, actions which initiate the boot process are controlled by settings in NVRAM; those which affect the decision to wake from sleep are controlled by the System Management Controller (SMC) through pmset. I look at those in turn.

NVRAM

This is currently a difficult area with M1 Macs, as you can change settings stored in NVRAM, but there’s no effective way to reset them, other than by performing a restore in DFU mode. Yes, you can ‘reset’ NVRAM at the command line, but in order to do so your Mac has to boot in the first place. That means that any change to NVRAM which affects its ability to boot normally makes it impossible to reset the NVRAM and correct the problem. This makes manual NVRAM changes high risk, and not something to experiment with unless you want practice restoring in DFU mode.

Apple doesn’t document the contents of the M1 NVRAM either, so even if you think the variable you’re intending to change is ‘safe’, you could be in for a nasty surprise.

In the past, with Intel notebooks, open lid behaviour has been controlled by an NVRAM variable with the key AutoBoot. This doesn’t appear to be the case with M1 Macs, although they have a variable with the key auto-boot which might appear similar. This is common with at least some iOS/iPadOS devices, where the auto-boot value has nothing to do with lid behaviour, of course. Experience in setting AutoBoot or setting auto-boot to false shows that this isn’t a value you want to change. Far from auto-boot determining lid behaviour, it appears to result in boot failure.

Thus it doesn’t appear possible to change lid behaviour in the current NVRAM, and any experimentation isn’t going to be easy because of the risk of rendering that M1 Mac unbootable.

pmset

The command tool pmset gives most extensive control over SMC settings in all Macs. Among its range of settings are:

  • lidwake – wake the machine when the laptop lid (or clamshell) is opened (value = 0/1)
  • acwake – wake the machine when power source (AC/battery) is changed (value = 0/1)

according to its man page. However, viewing current settings using pmset -g on an M1 Pro doesn’t show any values for them:
System-wide power settings:
Currently in use:
standby 1
Sleep On Power Button 1
hibernatefile /var/vm/sleepimage
powernap 1
disksleep 0
sleep 1 (sleep prevented by powerd)
hibernatemode 3
ttyskeepawake 1
displaysleep 15
tcpkeepalive 1
lowpowermode 0

Setting lidwake or acwake to either 0 or 1 using pmset has no effect at all on sleep behaviour. Opening the lid invariably wakes a sleeping M1, while connecting or disconnecting the charging lead doesn’t. It thus appears that neither lidwake nor acwake are supported by M1 Macs at present.

Conclusions

It’s not currently possible to change the effects of opening the lid of an M1 notebook computer. Being able to do so depends on a future update to the M1 firmware and macOS.

Tampering with the NVRAM of the M1 chip isn’t advisable, as any misconfiguration could require a full restore in DFU mode, as there’s no way to functionally reset it.