A Computer Prepares
Note: This document has been updated as of March 10, 2017 to reflect our continuing research on the subject.
There are a number of programs, processes, and tasks that your Mac runs either periodically or all the time in the background. Many of these programs are essential, but many are not and disabling them will increase the total percentage of your computer's resources which are available to QLab.
What follows here is a list of the programs or processes which we recommend disabling, and instructions for doing so. This section presupposes a basic understanding of macOS and at least a passing familiarity with the Terminal.
Click here to download our "Prep and Restore" workspace. The workspace contains two script cues; one which executes all the prep steps below (not including the video-specific ones) and one which reverses them. The scripts will ask for your admin password because these commands require administrator privileges. Nothing sneaky is going on.
Spotlight periodically updates its index of all files on all attached disks, and this updating can cause the disk to be momentarily unavailable to QLab. This can cause late cues or stuttering in playback. To prevent Spotlight from updating its index, open a Terminal window and enter this command:
sudo mdutil -a -i off
Obviously we don't want our computer going to sleep during a show. macOS has independent sleep intervals for the display, the hard disk, and the whole system. To prevent all three kinds of sleeping, open a Terminal window and enter this command:
sudo pmset -a displaysleep 0 disksleep 0 sleep 0
Likewise, we don't want the screensaver coming up, particularly if QLab is running video. To prevent that from happening, open a Terminal window and enter this command:
defaults -currentHost write com.apple.screensaver idleTime 0
Backups are wonderful. You should back up everything as often as possible. But on a computer used for your show, backups should only be done manually. Time Machine, much like Spotlight, uses indexing and background processes which can take hold of the disk at inopportune moments. To shut off Time Machine, open a Terminal window and enter this command:
sudo tmutil disable
You don't want your computer trying to update software in the middle of a run, let alone in the middle of a performance. To disable Software Update, open a Terminal window and enter this command:
sudo softwareupdate --schedule off
Dashboard, largely neglected by Apple these days, is a pernicious little vampire of CPU time and network access. Also, if accidentally invoked, it takes over the screen of your Mac entirely, which can be surprising and confusing and lead to missed cues. To disable Dashboard entirely, open a Terminal window and enter this command:
defaults write com.apple.dashboard mcx-disabled -boolean YES
Alternately, you can disable Dashboard on macOS 10.11 and later using System Preferences:
Open System Preferences; Choose Mission Control; Set Dashboard to "Off"
Apple's Photos app does a huge amount of background processing, include face and object detection. Even if you don't load photos into the Photos app, these background services sit around waiting for photos to analyze and upload. To disable these processes, open a Terminal window and enter these three commands, one at a time:
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.photolibraryd.plist sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.cloudphotosd.plist sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.photoanalysisd.plist
There's no reason for Game Center to be running, and it's always running unless you stop it. To disable Game Center, open a Terminal window and enter these two commands, one at a time:
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.gamed.plist
macOS has background processes which connect FaceTime to an iPhone, to allow you make and receive phone calls on the Mac, and to sync your call history between the Mac and the iPhone. To disable these processes, open a Terminal window and enter these three commands, one at a time:
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.telephonyutilities.callservicesd.plist sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.CallHistorySyncHelper.plist sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.CallHistoryPluginHelper.plist
Even when your Mac is offline, iCloud is surprisingly assertive about checking in with the iCloud servers in Apple's data centers. Logging out of iCloud ensures that this check-in process doesn't claim processor power when you need it.
Open System Preferences; Choose iCloud; Click "Sign Out".
Similarly, any accounts used to sync Mail, Contacts, and Calendars can potentially try to access the Internet and take up processing power while doing so, even while network access is disabled.
Open System Preferences; Choose Internet Accounts; Choose an account; Uncheck each service type; Repeat for each account.
Depending on the way that you're using QLab, the iOS-style Notification Center can be anything between a minor nuisance to a seriously embarrassing accidental component of your projection design. Apple tries to be clever about suppressing notifications if a projector is connected, but you really can't be too careful. To prevent those charming little pop-up bubbles in the top right corner of your screen, open a Terminal window and enter this command:
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist
Oddly, the Dock is in control of several of the system components that we just adjusted. Restarting the Dock allows these changes to take effect. Open a Terminal window and enter this command:
Many individual applications, including QLab, have their own internal scheme to check for updates. You can turn them off manually, and we recommend that. But the best way to guarantee that automatic software updates or any other network traffic won't bother your show is to disconnect the show computer from the Internet. We strongly encourage this. If you use a network to connect your QLab computer to other hardware, and your show doesn't require Internet access, make sure that network is a closed LAN (local area network) and has no path to the Internet.
By default, QLab 4 prevents use of ⌘-Tab, Mission Control, and Exposé while in Show Mode. If you want QLab to not prevent these things in Show Mode, choose QLab Preferences... from the QLab menu and uncheck the box marked Disable Disruptive Task Switching Features.
If you're using QLab for video, there are two more critical settings:
When you have more than one display connected to a Mac (including the built-in display on a laptop or iMac), you can either have the displays mirroring each other, showing the same thing, or turn off mirroring, which lets each display show its own image. That's how you want it set for QLab, so that you can see QLab on your display, and the audience sees your cues on the other display or displays. Amazingly, there is no Terminal command for this! To turn off display mirroring:
Open System Preferences; Choose Displays; Choose Arrangement; Uncheck Mirror Displays.
Spaces is Apple's name for virtual desktops (if you don't know what this means, don't worry about it.) If your displays are set to have separate spaces, the Menu bar also appears on all Displays, and that is visible to your audience when no cues are playing through QLab. To set your displays to share Spaces, and thus keep the menu bar out of your picture, open a Terminal window and enter this command:
defaults write com.apple.spaces spans-displays -bool TRUE
Important: you'll need to log out, then back in again for this to take effect.
When QLab is playing a Video cue, it places a black "backdrop" over any screen that the Video cue is playing on. When no video is playing, however, QLab does not display this backdrop. Therefore, in order to prevent your audience from seeing anything when no Video cue is playing, you'll need to set the desktop background on your projector (or other audience-visible display) to black. You can do that in two ways. Either:
Open System Preferences; Choose Desktop & Screen Saver; Choose Desktop; On your projector (or other display), choose "Solid Colors"; Click "Custom Color..."; Set the color to black.
Alternately, QLab provides a quick and easy way to do the same thing. Simply choose Black out desktop backgrounds from the Tools menu, and all desktop backgrounds will be set to black. You can later choose Restore saved desktop backgrounds, also from the Tools menu, to restore the desktop backgrounds you had previously.