SIMBL
Encyclopedia
SIMBL is an application enhancement (InputManager bundle) loader for Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 developed by Mike Solomon. It helps third-party developers modify and add functionality to applications developed with the Cocoa
Cocoa (API)
Cocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...

 environment without access to the source code. SIMBL loads code via the InputManager system, which was developed to support foreign input methods. Plugins using SIMBL have advantages over normal InputManager modifications such as targeted code loading into specific applications. Designed for Solomon's PithHelmet, SIMBL is now used by other developers. The most popular use of SIMBL is to add functionality to the Apple Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...

 web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...

 which did not have an Apple-authorized plugin system until version 5 in 2010.

SIMBL was developed in response to the restrictive licensing and costs of Application Enhancer
Application Enhancer
Application Enhancer is a software program released by Unsanity for Apple's Mac OS X operating system. Application Enhancer provides a framework that allows third-party developers to write "haxies" for OS X. It also provides a daemon to load haxies when certain applications are launched. These...

 and the drawbacks of loading code blindly through the InputManager mechanism.

Installation

SIMBL is installed like any other InputManager. As such, it is restricted to certain locations depending on the version of Mac OS X installed. In default installations, it is located in /Library/InputManagers. In versions of Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

 prior to Mac OS X Leopard
Leopard
The leopard , Panthera pardus, is a member of the Felidae family and the smallest of the four "big cats" in the genus Panthera, the other three being the tiger, lion, and jaguar. The leopard was once distributed across eastern and southern Asia and Africa, from Siberia to South Africa, but its...

, SIMBL could be installed per-user. In plugin installations, the SIMBL package is automatically installed. Since SIMBL injects code into running processes, plugins which are not properly debugged can cause process- or even systemwide problems.

Plugins

Plugins for SIMBL are Cocoa bundles that add various functionality to Cocoa applications. They can be placed by the user manually through Finder
Finder
Finder may refer to:* Finder , a core component of the Apple Macintosh operating system, is the graphical representation of the computer's file system* Finder , a comic book series by Carla Speed McNeil...

 or by an installer to /Library/Application Support/SIMBL/Plugins. It may also be placed in the user-specific home directories.

Advantages over InputManager Plugins

SIMBL bundles may be disabled by removing the plugin and restarting the application. With normal InputManager hacks, the user must log out and log in. Also, the normal InputManager mechanism is loaded for all Cocoa applications, providing the possibility of incompatibility and unexpected application behavior. SIMBL only loads bundles for specific and identified applications.

Leopard restrictions on InputManager plugins mean their installation can only be done system-wide. SIMBL plugins may be installed per-user if SIMBL is installed system-wide.

Update Compatibility

SIMBL plugins must specify which versions of the application that they will run with; running a more recent version of the application with the plugin activated will cause an error dialog to appear. Like all unsupported hacks, the amount of work required to update a plugin depends on the size of the update.

Development

Development of SIMBL plugins require knowledge of Cocoa reverse-engineering. SIMBL works only with Cocoa applications, not Carbon
Carbon (API)
Carbon is one of Apple Inc.'s procedural application programming interfaces for the Macintosh operating system. It provides C programming language access to Macintosh system services...

 or other kinds of applications.

No licensing payment is required to use SIMBL, unlike APE
Application Enhancer
Application Enhancer is a software program released by Unsanity for Apple's Mac OS X operating system. Application Enhancer provides a framework that allows third-party developers to write "haxies" for OS X. It also provides a daemon to load haxies when certain applications are launched. These...

, although a donation is suggested. The source to SIMBL is also freely available.

Alternatives

• Because Safari
Safari (web browser)
Safari is a web browser developed by Apple Inc. and included with the Mac OS X and iOS operating systems. First released as a public beta on January 7, 2003 on the company's Mac OS X operating system, it became Apple's default browser beginning with Mac OS X v10.3 "Panther". Safari is also the...

 5 does have a plug-in system, it is unclear what will become of these and other third-party extension systems.
  • Application Enhancer
    Application Enhancer
    Application Enhancer is a software program released by Unsanity for Apple's Mac OS X operating system. Application Enhancer provides a framework that allows third-party developers to write "haxies" for OS X. It also provides a daemon to load haxies when certain applications are launched. These...

     by Unsanity
    Unsanity
    Unsanity is a Mac OS X shareware software developer founded in May 2000, notable for coining the term "haxie".Their most popular software includes ShapeShifter and WindowShade, utilising their freeware Application Enhancer module...

  • PlugSuit by the Afloat authors (Compatible with SIMBL plugins)
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK