Macos – Modifying Window Button Colors in Mac OS X

colorscustomizationmacostitlebaruser interface

How can I modify the red/yellow/green window buttons for close/minimize/zoom in Mac OS X? There must be an editable resource or plist somewhere.

Here are the buttons I'm talking about:

Mac stoplight buttons.

For red/green colorblind individuals, those colors can be maddening. I wish they chose the actual bluish shade of green used in a traffic light instead of the puke grass green. That grassy green is indeterminable from the red.

Changing the theme to graphite is a poor alternative, so any other method is much preferred.

Best Answer

Okay, after a long and seemingly endless research cycle, I've located where the window buttons are stored. They're in a file called ArtFile.bin in /System/Library/PrivateFrameworks/CoreUI.framework/Versions/A/Resources/.

Also, a guy named Alex Zielenski with the help of Indragie Karunaratne created a utility named artFileTool to get to its contents. The second link is the code repository for the utility.

Here's the process to extract and then rebuild the resource as described on the MacThemes forum by a user named toutheme:

For ArtFile.bin - Lion

Preparation

  • Create new folder: TheFolder
  • Copy the Lion ArtFile.bin (/System/Library/PrivateFrameworks/CoreUI.framework/Resources) and artFileTool on TheFolder.

Terminal

  • Launch Terminal, type "cd" + "space" + (drag TheFolder on Terminal window). Type enter.

Decoding

To decode ArtFile.bin and compile a folder Resources Disconnected Classified:

  • ./artFileTool -d ArtFile.bin ResourcesDisconnectedClassified

    -- or --

To decode ArtFile.bin and compile a folder Named Connected Images:

  • ./artFileTool -d -c ArtFile.bin NamedConnectedImages

Edition

Edit your files with PhotoShop, for example…

Encoding

To re-encode the Resources Disconnected Classified:

  • ./artFileTool -e ResourcesDisconnectedClassified ArtFile.bin ArtFile.new.bin

    -- or --

To re-encode the Named Connected Images:

  • ./artFileTool -e -c NamedConnectedImages ArtFile.bin ArtFile.new.bin

For ArtFile.bin - Snow Leopard:

  • ./artFileTool -d -l ArtFile.bin ResourcesDisconnectedClassified
  • ./artFileTool -d -l -c ArtFile.bin NamedConnectedImages
  • ./artFileTool -e -l ResourcesDisconnectedClassified ArtFile.bin ArtFile.new.bin
  • ./artFileTool -e -l -c NamedConnectedImages ArtFile.bin ArtFile.new.bin

For ArtFile200.bin (Lion only):

  • Create new folder: TheFolder
  • Copy the Lion ArtFile200.bin (/System/Library/PrivateFrameworks/CoreUI.framework/Resources) and artFileTool on TheFolder.
  • Launch Terminal, type "cd" + "space" + (drag TheFolder on Terminal window). Type enter.

Decoding

  • ./artFileTool -d ArtFile200.bin ResourcesDisconnectedClassified
  • ./artFileTool -d -c ArtFile200.bin NamedConnectedImages

Encoding

  • ./artFileTool -e ResourcesDisconnectedClassified ArtFile200.bin ArtFile200.new.bin
  • ./artFileTool -e -c NamedConnectedImages ArtFile200.bin ArtFile200.new.bin

  • Make sure to check the size of the newly created file. (4.0-5.2 mb)

  • Rename ArtFile.new.bin to ArtFile.bin and replace the one location in the CoreUI.framework directory
  • Logout

I hope this helps anyone who got as frustrated as I did at how difficult it is discovering basic information about the inner workings of OS X.