Respostas:
Se você tiver algum interesse em executar o shell script, o seguinte funcionará. Basta definir o "Display_Sleep_Time" e "System_Sleep_Time" como você deseja que eles sejam juntamente com o "App" que você está escolhendo para impedir o sono. Ao iniciar o script sempre que você executar o aplicativo, todos os tempos de espera serão reduzidos para 0, impedindo a exibição e o sistema de dormir.
TESTADO EM
NOTA: AVISO ESTE SCRIPT CONTÉM UM LOOP INTERNO. Você pode preferir utilizar o seguinte script dentro de um Daemon, em vez de usar o loop interno que o script fornece. No entanto, o mesmo conceito se aplica.
#!/bin/bash
watch="true"
App="Safari"
System_Sleep_Time="30"
Display_Sleep_Time="10"
System_Sleep=$(pmset -g | grep " sleep" | awk '{print $2}')
Display_Sleep=$(pmset -g | grep " displaysleep" | awk '{print $2}')
while [[ ${watch} == "true" ]]; do
watch_App=$(ps -A | grep "${App}.app" | grep -v grep | sed "s/.*${App}.*/${App}/")
if [[ ${watch_App} == ${App} ]]; then
if [[ ${System_Sleep} != "0" ]]; then
pmset -a sleep 0
System_Sleep=$(pmset -g | grep " sleep" | awk '{print $2}')
fi
if [[ ${Display_Sleep} != "0" ]]; then
pmset -a displaysleep 0
Display_Sleep=$(pmset -g | grep " displaysleep" | awk '{print $2}')
fi
elif [[ ${watch_App} != ${App} ]]; then
if [[ ${System_Sleep} == "0" ]]; then
pmset -a sleep ${System_Sleep_Time} > /dev/null 2>&1
System_Sleep=$(pmset -g | grep " sleep" | awk '{print $2}')
fi
if [[ ${Display_Sleep} == "0" ]]; then
pmset -a displaysleep ${Display_Sleep_Time} > /dev/null 2>&1
Display_Sleep=$(pmset -g | grep " displaysleep" | awk '{print $2}')
fi
else
/usr/bin/logger -i An error has occured with preventsleep.sh
fi
done
Você também pode adicionar uma linha como esta a um crontab:
* * * * * pgrep -x TextEdit && caffeinate -t 60
(Use EDITOR=nano crontab -e
se você não mudou $EDITOR
e não sabe como usar o vi.)
cafeína e pgrep foram adicionados no Mountain Lion.
Você pode obter uma lista de asserções de poder com pmset -g assertions
. caffeinate
ou caffeinate -i
deve ser definido PreventUserIdleSystemSleep
como 1.
O aplicativo anfetamina é gratuito e faz exatamente isso (e muito mais ao longo do caminho)
https://itunes.apple.com/gb/app/amphetamine/id937984704?mt=12