# OpenVanilla

OpenVanilla (OV) is an open-source text-entry (input method) and processing architecture designed to enhance the text-entry experience across different operating systems. Initially developed to address the need for alternative input methods on Apple systems and cater to Windows users transitioning to macOS, OV has since expanded its compatibility to include Microsoft Windows and Linux/FreeBSD environments through SCIM integration.
OV provides a collection of input methods and text processing filters, acting as a bridge between input methods and the operating system. It supports Mac OS X versions from 10.3 (Panther) to 10.4 (Tiger), as well as an experimental Win32 Unicode version for Windows users. Its design philosophy emphasizes simplicity and ease of customization, enabling users to develop their own input methods with minimal programming expertise in C++.

## History and development

The inception of OpenVanilla stemmed from identified gaps in commercially available software solutions, particularly in the realm of Chinese input methods for Apple's operating systems.
Apple's efforts to localize its operating system for the Chinese market were initially slow-moving. It wasn't until 1987, three years after the Macintosh launch, that Apple introduced a Chinese version of its Finder, then known as Chinese Talk. Despite several competing alternatives, Apple's early Chinese operating systems faced criticism for lacking comprehensive input method support. Specifically, the popular Phonetic "Zhuyin" method did not include the Layout, which closely mirrored Chinese phonetics.
During the mid-1980s, amidst limited globalization of computing and software distribution, the Eten Layout became a primary method for new computer users in transcribing Chinese characters. This oversight on Apple's part led to a notable customer base shift towards Microsoft, particularly in Taiwan, where Windows offered the Eten Layout as an optional configuration.
The introduction of Mac OS X in 2002 received mixed reviews, notably due to significant modifications made to another popular input method, Cangjie, which alienated users accustomed to earlier OS 9 methods.
In 2003, developer clkao (Chia-liang Kao) ported Chewing, a prominent Chinese input method from the Linux/FreeBSD world, to OS X using Xcode. This initiative enabled the development of customized input methods on OS X, with clkao's creation, ChewingOSX, subsequently maintained by gugod (Kang-ming Liu) and zonble (Weizhong Yang) from 2004 onwards.
Building on these advancements, lukhnos introduced VanillaInput in July 2004, a phonetic input method supporting the Eten Layout. This was swiftly followed by the integration of Cangjie support, addressing user concerns regarding input method familiarity in OS X.
Prior to these developments, major OS producers like Apple had not prioritized input method support for minority languages. The initiatives surrounding Chewing and VanillaInput catalyzed the exploration and innovation of new Chinese input methods, although challenges persisted with non-open source components in input method development.
In October 2004, lukhnos, gugod, zonble, and b6s collaborated to launch OpenVanilla, a new input method framework initially designed for Mac OS X but with broader implementation goals across various operating platforms. The framework aimed for a minimalist design approach, empowering users to develop custom input methods with minimal C++ expertise, independent of their operating system.

### Holo and POJ input method

Holo, spoken by approximately 70% of the Taiwanese population, is a prominent language in Taiwan, although Mandarin remains the official language. Despite its widespread use, Holo lacks comprehensive support in information processing due to the absence of a fully functional input method from major operating system developers.
A potential solution lies in POJ (Pe̍h-ōe-jī), the established romanization standard for the Holo language. Developed over 150 years ago, POJ has been utilized for publishing significant texts, including the Holo Bible. Similar to Japanese, Holo can be written in various forms, such as Romanized POJ or Chinese characters. An IME (Input Method Editor) analogous to those used for Japanese could be developed for Holo, enabling phonetic input conversion into different script forms, like hiragana, katakana, kanji, or romaji.

## Future

OpenVanilla, currently in its early stages, has undertaken preliminary implementations using rapid prototyping techniques and Objective-C++. To achieve platform independence and broader utility, further refinements are necessary. The POJ module within OpenVanilla focuses purely on algorithmic keyboard mapping and syllable transformation, devoid of complex user interface components. This approach aims to simplify IME development, reducing the requirement for deep internal system knowledge among developers.