Jump to content

Presenting... libUnified, libPolished and libiTunes7!


Pu7o
 Share

20 posts in this topic

Recommended Posts

When developing an application on Mac OS X, you have the choice of several different looks. However, if you want to give your application a "Unified" look, like Mail.app, you need to have a cocoa NSToolbar, and several other pre-requisites, or your application falls back to Aqua. And the iTunes 5+ look, well, that's not publically available at all, and you end up having to code it from scratch! So, to solve these two problems, I present these two libraries that allow you to achieve that look with near-zero effort. More importantly, other applications are unaffected, and you don't need to modify system files!

 

   To apply this to an application, you merely have to add the following lines to Contents/Info.plist from inside your .app package. For unified:

 

        <key>LSEnvironment</key>
        <dict>
                <key>DYLD_FRAMEWORK_PATH</key>
                <string>/Library/Frameworks/libUnified.framework</string>
        </dict>

 

And for the iTunes 5+ look, a.k.a. "Polished Metal":

 

        <key>LSEnvironment</key>
        <dict>
                <key>DYLD_FRAMEWORK_PATH</key>
                <string>/Library/Frameworks/libPolished.framework</string>
        </dict>

 

 

This should be added near the end of the file, but before the last two lines (usually the last two look like this):

 

</dict>
</plist>

 

Then, assuming that the user has the libUnified/Polished combo, the application will have the desired look! Plus, you don't need to do it on your apps only, you can apply these looks to ANY application that you want to! (Just remember that Info.plist files are cached, and therefore changes don't take effect immediately. Oh, and DON'T do this on the Finder or the Dock. Seriously.) 

 

These libraries can be downloaded here. These were put together using files from the themes Iridium and UNO Shade, without them, this wouldn't have been possible.

 

Here are a few sample screenshots of what can be done with these libraries:

firefox-unified.png

Oh look!  A unified firefox! Actually, this one took a few minor tweaks to the main firefox theme, since Firefox creates its own widgets. I can release said tweaks if anybody's interested :D

 

textedit-pmetal.png

And look! A polished metal TextEdit! I bet you don't see many of these around...

 

Enjoy this :P

 

EDIT: Check a later post for libiTunes7.

Link to comment
Share on other sites

I tried this on Mail and nothing happened. I pasted the code right before the last two lines of the plist. I don't know what I could have possibly done wrong...
Just remember that Info.plist files are cached, and therefore changes don't take effect immediately(...)

 

If you want to force the cache to refresh for a specific app, you can use the following workaround in Terminal(using Mail.app as an example):

 

sudo su
mv /Applications/Mail.app /Applications/Mail-2.app
cp -R /Applications/Mail-2.app /Applications/Mail.app
rm -r /Applications/Mail-2.app
exit

 

And, of course, those lines don't have any effect if you don't install the libs in the first place.

Link to comment
Share on other sites

And, of course, those lines don't have any effect if you don't install the libs in the first place.

That installer fails. Pacifist reveals that it looks for a few files that are nonexistent in the package. Was that a pre-patched mail.app?

 

Anyway, it now appears that I have the right frameworks. However, this still doesn't work. I've duplicated mail.app and tried running the duplicate (which I know gets rid of the cache), and it still didn't work.

 

I appreciate you sharing this with us, but I just want to see at least one other person confirm that they got this to work. :)

 

Pacifist output:

 

ERROR

The file “/private/var/tmp/folders.502/TemporaryItems/Pacifist Temp/libUnified Folder/Applications” does not exist.

 

And like I said, running the normal installer outside of Pacifist fails too. It tells me to try again.

Link to comment
Share on other sites

Yeah Pu7o, I'm trying to make Tiger's Mail look like Leopard's Mail app basically. I already have a nice theme via ShapeShifter, so I don't want to use UNO.

 

Were these frameworks compiled for 10.5 Leopard by any chance? I'm sort of getting the feeling that the problem is that simple: most people are running Tiger, which would be incompatible with these. I'm only saying this because I'm still getting no results whatsoever.

 

If that is the case:

1- Could you list Leopard as an important requirement in your main post to save people some confusion?

2- Could you compile the frameworks for Tiger?

 

I really can't wait to get these visual effects applied! It looks pretty awesome. If only it'd work. Bleh.

Link to comment
Share on other sites

No, I'm using them on both Tiger and Leopard just fine. (I'm on a dual boot system)

 

Proof: This is running on Tiger, and it's working.

 

unified-ichat.png

 

Yeah Pu7o, I'm trying to make Tiger's Mail look like Leopard's Mail app basically. I already have a nice theme via ShapeShifter, so I don't want to use UNO.

I think ShapeShifter breaks this thing.

Link to comment
Share on other sites

  • 2 weeks later...

OK, here's libiTunes7 to add to the party. As you'd expect from the name, it gives you iTunes 7-style controls. It does NOT make your apps polished metal. It was made from an edited version of the Extras.rsrc in the iMetal guiKit.

 

Code for the thing in Info.plist:

 

 
	<key>LSEnvironment</key>
	<dict>
			<key>DYLD_FRAMEWORK_PATH</key>
			<string>/Library/Frameworks/libiTunes7.framework</string>
	</dict>

 

Link: http://web.ist.utl.pt/l57392/libiTunes7.dmg.gz

 

The DMG has a link to the /Library/Frameworks folder inside it called "Drop-Here" to make the installation easier ;)

 

Enjoy it :)

 

Oh, an example screenshot:

 

ffmpegx.png

 

It looks better in metal apps than in regular aqua apps.

Link to comment
Share on other sites

 Share

×
×
  • Create New...