Desktop Effects
This page contains information about small experimental projects that create graphical effects on the Mac OS X desktop. Click an image below to see more information about that component.
Visor + Core Image
Overview
This is a modified version of Visor. Instead of sliding down a Terminal window from the top of the screen, it warps the window in from the right and performs a 3D perspective transform on the rest of the desktop. This transform is live: The iTunes visualizer keeps dancing; QuickTime movies keep playing.
Download
Visor requires SIMBL by Mike Solomon. Once SIMBL is installed, place Visor.bundle in ~/Library/Application Support/SIMBL/Plugins/. See the Blacktree Visor page for more details.
- Visor Core Image (Universal binary)
Notes
This is very preliminary, and is meant as a proof-of-concept. The offsets of the Terminal window are hard-coded, so it may not look so good on your system. Some weird things happen when you have a secondary monitor connected. Mouse events are not perspective-transformed — from the mouse's perspective, for example, the Dock is still along the bottom of the screen, and not along the bottom of the perspective view of the screen. Performance is fairly good.
Development Information
Visor Core Image uses private Core Graphics calls to create a window that covers the screen. This window applies a Core Image perspective transform to the windows below it. The Visor Terminal window is raised above this modification window, and stays exempt from the perspective transform. A warp mesh is applied to the Visor window during the transition.
The code is quite messy (particularly my additions, but the original Visor code needs a working over, too). Use the additions however you wish (public domain). The license of the original Visor code is unclear; ask Blacktree if you're interested.
Display Case
Overview
Download
Move the folder in “Into InputManagers” into ~/Library/InputManagers/. You'll then need to re-launch the applications you want to be affected (the InputManager system only affects Cocoa applications). Open Display Case.app, and hit Enable. If you want to try out Display Case without installing an InputManager, open Display Case.app along with Display Case Test.app — enabling Display Case will then only affect the test application.
- Display Case 1.0 (Universal binary)
Notes
The reflections are generated with a Quartz Composer composition (in Display Case.bundle/Contents/Resources/Reflection.qtz). You need a dark desktop background for the effect to look good. It'd be nice if the reflections were ordered in a more realistic order (instead of simply being placed on the same level as their parent window). It would also be nice if there were a “ground plane” of sorts, instead of placing the reflection directly below its parent. Oh, and the reflection on the Display Case window itself is messed up
(because the reflected text itself is drawn with a Quartz Composition) — note the strategic placement of this window in the screenshot
.
Development Information
Display Case creates a child window whenever a window is created in a Cocoa application. This child window contains a Quartz Composer view. The visibility of the reflection is controlled by the controller application posting a distributed notification. The window image is taken periodically from a timer, which is rather inefficient. It may be possible to use Core Image transforms to create the reflection (like the perspective transform of Visor + Core Image), which would be more efficient and “more” real-time.
Pox
Overview
Pox applies a halftone effect to all windows of Cocoa applications. Well, it's actually layering a Quartz Composer composition on top of all windows — play around with it (it's in Pox.bundle/Contents/Resources/halftone.qtz).
Download
Move the folder in “Into InputManagers” into ~/Library/InputManagers/. You'll then need to re-launch the applications you want to be affected (the InputManager system only affects Cocoa applications). Open Pox Controller.app, and hit Enable. If you want to try out Pox without installing an InputManager, open Pox Controller.app along with Pox Test.app — enabling Pox will then only affect the test application.
- Pox 1.0 (Universal binary)
Notes
If you just wanted to apply a halftone pattern to windows, using a Core Image overlay would be a much better solution. Since a Quartz composition is used, there is far more flexibility, giving the potential for animation and the like. In the current implementation, the original window remains on-screen, so you can't add transparent bits where the parent window is opaque. (If you do, the parent window will simply show through.)
Development Information
The implementation of Pox is extremely similar to that of Display Case. Pox creates a child window whenever a window is created in a Cocoa application. This child window contains a Quartz Composer view. The visibility of this child window is controlled by the controller application posting a distributed notification. The window image is taken periodically from a timer, which is rather inefficient.





to search page content.