Permanently setting 256 colors on OS X 10.4.11

I have an iBook G4 with bad graphics hardware, where the screen is corrupted at bit depths of 16 bit or more. I don’t have the money to replace the logic board, so I’ve been using a workaround by dropping the bit depth to 8 bit, but the setting is not preserved across reboots. Is there a plist I can change so the setting is preserved?

Is there a reason you can’t go System Preferences > Displays > 256 Colors?

Edit: Wait, the option is grayed out on mine. I thought there was a setting somewhere you can change in the System Preferences that will allow you to use non-recommended settings, but I can’t seem to locate it.

Hmmm…there used to be a “Show Modes Recommended By Display” option, but Leopard doesn’t seem to have that anymore.

I can. That’s how I change the setting, but the setting is not preserved across reboots. It’s probably because 256 colors is supposed to be a compatibility mode for legacy applications

The preference is stored here:Users/ <your_login_name> /Library/Preferences/ByHost/com.apple.preference.displays. <M.A.C. Ethernet address> .plist

You may have better luck writing a script to change it at login.

Here’s a hint on how to script it:

Here’s an Applescript that works for me.


set desireddepth to "t"
--Change this to "m" or "2" to set the depth to millions or 256 respectively.

tell application "System Preferences" to activate
--delay 1 --uncomment for slow Macs

tell application "System Events"
	tell application process "System Preferences"
		click button "Displays" of scroll area 1 of window 1 --works
		
		--delay 1 --uncomment for slow Macs
		click pop up button 1 of group 1 of tab group 1 of window 1
		
		keystroke desireddepth
		
		key code 36 --this is like hitting the return key (and accepting the menu choice)
		delay 1
		key code 36 --hit the return key again in case that nasty "you're about to do what you want to do" dialog pops up.
	end tell
end tell
tell application "System Preferences" to quit
say "Oakey doke" --can delete this line if it annoys

Save this from Script editor as an application, and have it run at login.

You have to turn on “enable access for assistive devices” in the Universal access preference pane to get this script to work.