SIMBL

Last updated
SIMBL
Developer(s) Mike Solomon
Preview release
0.9.9 / January 27, 2011;11 years ago (2011-01-27)
Operating system Mac OS X
Type Loader
Website github.com/msolo/simbl

SIMBL (short for SIMple Bundle Loader, formerly Smart InputManager Bundle Loader, and pronounced like symbol or cymbal), is an application enhancement (InputManager bundle) loader for Mac OS X developed by Mike Solomon. It helps third-party developers modify and add functionality to applications developed with the Cocoa 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 web browser which did not have an Apple-authorized plugin system until version 5 in 2010.

Contents

SIMBL was developed in response to the restrictive licensing and costs of Application Enhancer and the drawbacks of loading code blindly through the InputManager mechanism. [1]

Installation

SIMBL is installed like any other InputManager.[ clarification needed ] 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 prior to Leopard, SIMBL could be installed per-user. [2] In plugin installations, the SIMBL package is automatically installed. Since SIMBL injects code into running processes, buggy plugins can cause process- or even systemwide problems. [3] [4]

Plugins

Plugins for SIMBL are Cocoa bundles that add various functionality to Cocoa applications. They can be placed by the user manually through Finder or by an installer to /Library/Application Support/SIMBL/Plugins. It may also be placed in the user-specific home directories. [1]

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. [1]

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. [5] Like all unsupported hacks, the amount of work required to update a plugin depends on the size of the update. [6]

Development

Development of SIMBL plugins require knowledge of Cocoa reverse-engineering. SIMBL works only with Cocoa applications, not Carbon or other kinds of applications. [7]

No licensing payment is required to use SIMBL, unlike APE, although a donation is suggested. The source to SIMBL is also freely available. [1]

Alternatives

Related Research Articles

macOS is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and laptop computers it is the second most widely used desktop OS, after Microsoft Windows and ahead of ChromeOS.

Vim (text editor) Improved version of the Vi keyboard-oriented text editor

Vim is a free and open-source, screen-based text editor program. It is an improved clone of Bill Joy's vi. Vim's author, Bram Moolenaar, derived Vim from a port of the Stevie editor for Amiga and released a version to the public in 1991. Vim is designed for use both from a command-line interface and as a standalone application in a graphical user interface. Vim is released under the Vim license, which includes some charityware clauses that encourage users who enjoy the software to consider donating to children in Uganda. The Vim license is compatible with the GNU General Public License through a special clause allowing distribution of modified copies under the GNU GPL version 2.0 or later.

macOS Server Server software for macOS

macOS Server, formerly Mac OS X Server and OS X Server, is a discontinued series of Unix-like server operating systems developed by Apple Inc., based on macOS and later add-on software packages for the latter. macOS Server added server functionality and system administration tools to macOS and provided tools to manage both macOS-based computers and iOS-based devices.

Darwin is an open-source Unix-like operating system first released by Apple Inc. in 2000. It is composed of code derived from NeXTSTEP, BSD, Mach, and other free software projects' code, as well as code developed by Apple.

Safari (web browser) Web browser by Apple

Safari is a graphical web browser developed by Apple. It is primarily based on open-source software, and mainly WebKit. It succeeded Netscape Navigator, Cyberdog and Internet Explorer for Mac as the default web browser for Macintosh computers. It is supported on macOS, iOS, and iPadOS; a Windows version was offered from 2007 to 2012.

iSync

iSync is a software application first released by Apple Inc. on Jan 2, 2003. Apple licensed the core technology from fusionOne. It ran only under Mac OS X and was used to synchronize contact and calendar data from Address Book and iCal with many non-Apple SyncML-enabled mobile phones via a Bluetooth or USB connection. Support for many devices was built-in, with newer devices being supported via manufacturer and third-party iSync Plugins. Support for Palm OS organizers and compatible smartphones was removed with the release of iSync 3.1 and Mac OS X 10.6 Snow Leopard. BlackBerry OS, Palm OS, and Windows Mobile devices could not be used with iSync, but were supported by third-party applications. Before the release of Mac OS X 10.4, iSync also synchronized a user's Safari bookmarks with the then .Mac subscription service provided by Apple.

WebObjects Java web application server and framework originally developed by NeXT Software

WebObjects is a Java web application server and a server-based web application framework originally developed by NeXT Software, Inc.

Sherlock (software)

Sherlock, named after fictional detective Sherlock Holmes, was a file and web search tool created by Apple Inc. for the PowerPC-based "classic" Mac OS, introduced with Mac OS 8 as an extension of the Mac OS Finder's file searching capabilities. Like its predecessor, Sherlock searched for local files and file contents, using the same basic indexing code and search logic found in AppleSearch. Sherlock extended the system by enabling the user to search for items through the World Wide Web through a set of plugins which employed existing web search engines. These plugins were written as plain text files, so that it was a simple task for a user to write a Sherlock plugin.

Xcode IDE including tools for developing software for Apple platforms

Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, and tvOS. It was initially released in late 2003; the latest stable release is version 13.4.1, released on June 2, 2022 via the Mac App Store with macOS Monterey. The software suite is offered free of charge. Registered developers can download preview releases and prior versions of the suite through the Apple Developer website. Xcode includes command-line tools which enable UNIX-style development via the Terminal app in macOS. They can also be downloaded and installed without the GUI.

Quicksilver (software)

Quicksilver is a utility app for macOS. Originally developed as proprietary freeware by Nicholas Jitkoff of Blacktree, Inc., it is now an open-source project hosted on GitHub.

Growl (software)

Growl is a deprecated global notification system and pop-up notification implementation for the Mac OS X and Windows operating systems. Applications can use Growl to display small notifications about events which may be important to the user. This software allows users to fully control their notifications, while allowing application developers to spend less time creating notifications and Growl developers to concentrate on the usability of notifications. Growl can be used in conjunction with Apple's Notification Center that is included in Mac OS X 10.8 and higher.

Dashboard (macOS)

Dashboard is a discontinued feature of Apple Inc.'s macOS operating systems, used as a secondary desktop for hosting mini-applications known as widgets. These are intended to be simple applications that do not take time to launch. Dashboard applications supplied with macOS included a stock ticker, weather report, calculator, and notepad; while users could create or download their own.

This article provides basic comparisons for notable text editors. More feature details for text editors are available from the Category of text editor features and from the individual products' articles. This article may not be up-to-date or necessarily all-inclusive.

In the macOS, iOS, NeXTSTEP, and GNUstep programming frameworks, property list files are files that store serialized objects. Property list files use the filename extension .plist, and thus are often referred to as p-list files.

In NeXTSTEP, OPENSTEP, GNUstep, and their lineal descendants macOS and iOS, a bundle is a file directory with a defined structure and file extension, allowing related files to be grouped together as a conceptually single item.

Inquisitor (search software)

Inquisitor is a Cocoa plug-in for Mac OS X developed by David Watanabe.

Mac OS X Snow Leopard Seventh major version of macOS, released in 2009

Mac OS X Snow Leopard is the seventh major release of macOS, Apple's desktop and server operating system for Macintosh computers.

Sublime Text Text editor

Sublime Text is a shareware cross-platform source code editor. It natively supports many programming languages and markup languages. Users can expand its functionality with plugins, typically community-built and maintained under free-software licenses. To facilitate plugins, Sublime Text features a Python API.

macOS Sierra Thirteenth major release of macOS

macOS Sierra is the thirteenth major release of macOS, Apple Inc.'s desktop and server operating system for Macintosh computers. The name "macOS" stems from the intention to uniform the operating system's name with that of iOS, watchOS and tvOS. Sierra is named after the Sierra Nevada mountain range in California and Nevada. Its major new features concern Continuity, iCloud, and windowing, as well as support for Apple Pay and Siri.

References

  1. 1 2 3 4 Solomon, Mike 2006. SIMBL, http://www.culater.net/software/SIMBL/SIMBL.php
  2. Oddgard, Alllen, 2007, "InputManagers on Leopard" http://blog.macromates.com/2007/inputmanagers-on-leopard/
  3. Apple Inc, 2003 "Safari 1.1: Safari Quits Unexpectedly When PithHelmet Is Installed" , http://support.apple.com/kb/TA21363?viewlocale=en_US
  4. Nevyn, 2006 "Fixing God's Problems" "Devnevyn: Fixing God's horrible mistake's fix". Archived from the original on 2009-12-23. Retrieved 2008-10-15.
  5. Bohon, Cory, 2008. "SIMBL Plug-in woes after 10.5.3" http://www.tuaw.com/2008/05/28/simbl-plug-in-woes-after-10-5-3/
  6. Solomon, Mike 2007. 14 Nov 2007, "TerminalColors in Leopard" http://www.culater.net/thc/index.php?entry=/Development/terminal_colors_leopard.txt Archived 2008-12-22 at the Wayback Machine
  7. Stødle, Daniel 14 Nov 2005 , "Re: Loading code into an arbitrary Cocoa application" "Re: Loading code into an arbitrary Cocoa application". Archived from the original on 2011-05-24. Retrieved 2008-10-15.>
  8. Waldo, Brian, 2008. Say Goodbye to SIMBL, http://macapper.com/2008/04/28/plugsuit-say-goodbye-to-simbl/
  9. "GitHub - norio-nomura/EasySIMBL: EasySIMBL is modified "SIMBL" for OS X 10.7, 10.8, 10.9 or 10.10 supporting sandbox, resume. No installer". GitHub.
  10. "GitHub - w0lfschild/mySIMBL: Plugin manager for macOS". GitHub.