image ResEx Logo
ResExcellence www : Powered by Google
Cell Phone Themes Icons Mighty Mouse Cursors Software Reviews Widgets & Widgets


Files are in Stuffit 5 or greater format.
Free download.

Tell us about a bad link.

Thank You!


Running 18 days
without a restart.

Customize the OS X Startup Progress Bar
by Laine Lee
05-06-2004

You can edit the data of the Quartzdisplay file in the Quartzdisplay.bundle package to customize the progress bar displayed in the BootPanel window at system startup. This editing requires Mac OS X 10.3. The edited Quartzdisplay file can be used in older Mac OS X systems.

This modification requires altering your system files. It is recommended that you make backup copies of any of the system files altered. It is also recommended that you have a full system installed on a secondary hard drive partition so you can boot from that one and replace messed up files in your target startup volume if you run into problems.

Required Software
Photoshop 7, Hexedit, ThemePark and GUIKitty.
You will also need these Support Files.

Image Sources
The source data for the startup progress bar can easily be obtained from the Extras.rsrc file upon which most theming is based. Because most themes for OS X are released as GUIKits, these instructions will explain how to get the data from that format. Unsanity, the maker of ShapeShifter, has released a handy little utility called GUIKitty whose function is to extract graphic resources from GUIKit files. So to get the data to be used for the startup progress bar, we will use GUIKitty.

Drag the GUIKit file onto GUIKitty's icon, and a folder will be created in the same location as the GUIKit which contains all the graphic elements of the theme. Because these files are nested quite deeply in a hierarchy of files and folders, the easiest method I've found for getting a certain file from the output of GUIKitty is to use the Search toolbar item in the Panther Finder. If you don't routinely use that feature, you can enable it by control-clicking the toolbar in a Finder window and dragging the Search field tool to the toolbar. Then you can open GUIKitty's output folder and type in "extras" to quickly locate the file.



Editing The Image
The two resources that contain the source for progress bar data we want are the pxm resources 2810 and 2820. Open the extras.rxrc file with ThemePark and locate the pxm 2810 resource. Select the first image, copy it, then open it in Photoshop. If you have ThemePark 1.3, just use the Send to Photoshop command (command-return). In Photoshop select all of the width of the image and the top 16 pixels of the image height, leaving 4 rows of pixels at the bottom unselected. (You can first expand the height of the image content within the 16 vertical pixels to remove borders if needed, just make sure your final selection is 16 pixels high.) Copy the selection.



Open the startup_progress.raw in the support files with Photoshop. Use these settings in the Raw Options dialog.

Width: 128
Height: 36
Channel count: 4
Interleaved: yes
Header size: 0 bytes



Paste the copied image into the startup_progress.raw image and position it in the top left or top right corner. Then option-drag or option-nudge the selection so that it copies to fill up the top of the image to become the new progress bar background. Flatten the image.

Next open the pxm 2820 resource. You'll notice that although these image parts are the right size for the height of the progress bar in the target image, only eight of the 16 will fit into the image horizontally. If each of the progress bar image parts is the same, then you can copy one and just repeat it across the width of the image as you did with the background portion. If, however, each part is different as is the case with the original Aqua startup progress bar, you must select every other one to copy to the target image to preserve the correct dispersal of the progress bar image content.



Repeat the following with either each of the 8 even numbered images or the 8 odd number images. (Again, you can expand the height of the image content within the 16 vertical pixels to remove borders if needed).

Select the image in the first vertical column of ThemePark's image pane, copy it, then paste it into the startup_progress.raw image, placing it in its corresponding position from left to right at the bottom. If noticeable lines appear between the parts, just use the Photoshop blur tool or some other method to smooth out the lines after you flatten the image.

Flatten and save the startup_progress.raw file.

Copy the Quartzdisplay file to your desktop. It's located at /System/Library/CoreServices/SystemStarter/QuartzDisplay.bundle/QuartzDisplay. Open the /System/Library/CoreServices/SystemStarter folder, then control-click the QuartzDisplay.bundle file and choose "Show Package Contents". When the new window opens, select the QuartzDisplay file and choose copy from the edit menu (command-c). Then click on the desktop and choose Paste from the edit menu.



Replacing the current startup progress bar
Open the startup_progress.raw file in Hexedit. Choose select all (edit menu) and copy the entire data content of the file to the clipboard. The chunk of data you want to replace in the QuartzDisplay file is a selection of 18432 bytes decimal (4800 Hex) in length starting at offset 14328 (37F8 Hex). Open the QuartzDisplay file with Hexedit and scroll down until the first offset is about 14300, then click as near to 14328 as you can and navigate with the arrow keys until 14328 (37F8 Hex) appears in two places at the top right of the window. Then being careful not to click in the window, scroll down to about 32700 (7FBC Hex).

With the shift key down, click in the window as close to the 32752 (7FF8 hex) offset as possible, and, keeping the shift down, drag the cursor around inside the window so that the selection length 18432 (4800 Hex) appears at the top right corner of the window. Then paste the data (edit menu) from the startup_progress.raw file.



After you save the QuartzDisplay file, use it to replace the original. One safety check you can perform is to confirm that its size is still 44k by using the Finder's Get Info command. If you aren't creating a custom theme installer which includes the QuartzDisplay file with the Packagemaker utility, you'll need to remove the original QuartzDisplay file from the QuartzDisplay.bundle package by selecting it and pressing command-delete before you'll be allowed to copy the new one there. If you haven't already backed it up, keep the copy that's now in the trash. Then open the terminal application and execute this command:

sudo chown shortusername /System/Library/CoreServices/SystemStarter/QuartzDisplay.bundle

Substituting your short user name for "shortusername" and entering your password when prompted.

Now that you are the owner of the QuartzDisplay.bundle package, select the new QuartzDisplay file, press command-c to copy it, bring the QuartzDisplay.bundle package window (which should already be displayed) to the front by clicking it, then press command-v to paste the QuartzDisplay file into the package.

Then you'll need to restore the original ownership of the QuartzDisplay.bundle package by executing this command in the terminal.

sudo chown root /System/Library/CoreServices/SystemStarter/QuartzDisplay.bundle

You should then restore the original permissions of the QuartzDisplay file and you can do that by either running the Repair Permissions command in the Disk Utility application, or by executing these three command Lines in the Terminal:

chmod 755 /System/Library/CoreServices/SystemStarter/QuartzDisplay.bundle/QuartzDisplay

chown root /System/Library/CoreServices/SystemStarter/QuartzDisplay.bundle/QuartzDisplay

chgrp wheel /System/Library/CoreServices/SystemStarter/QuartzDisplay.bundle/QuartzDisplay

Now you should be able to see the new startup progress bar in the BootPanel when you start your Mac.

Visit Laine Lee's Homepage!

Cell Phone Themes Icons Mighty Mouse Cursors Software Reviews Widgets & Widgets

Maintained by the Staff of ResExcellence. This entire site ©1997-2006 ResExcellence
Privacy Statement? Sure we gotta Privacy Statement. [an error occurred while processing this directive]