Salve uma lista de propriedades assim como ~/Library/LaunchAgents/com.superuser.457047.plist
(ou o que quer que você altere o rótulo) e carregue-o com launchctl load ~/Library/LaunchAgents/com.superuser.457047.plist
ou efetuando logout e voltando.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.superuser.457047</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>-e</string>
<string>tell application "System Events" to if (not (exists process "firefox")) or number of windows of process "firefox" is 0 then tell process "Finder" to click last menu item of menu 1 of menu bar 1</string>
</array>
<key>StartInterval</key>
<integer>5</integer> <!-- run every 5 seconds -->
</dict>
</plist>
Provavelmente, há alguns casos em que clicar no último item de menu não funcionaria. keystroke "q" using {option down, shift down, command down}
não funcionaria se o usuário estivesse controlando.
tell application "System Events" to log out
mostraria um diálogo de confirmação.
/System/Library/CoreServices/Menu\ Extras/user.menu/Contents/Resources/CGSession -suspend
não mostra um diálogo de confirmação, mas mantém o usuário logado e mostra a tela de troca rápida de usuário.