<p>No matter what application I am running, I'd like to be able to use abbreviations when typing. There is an application for this for Windows (AllChars), but so far I couldn't find one for Linux.<br></p><p>It should work something like this:</p>
<ul><li>Create a list of abbreviations (aliases, kind of), for example: JR = "Johnny Rosenberg\nMyAddress\nMyPhone\n\nEtc".</li><li>When typing in another application, let's say an email client, every time I enter "JR" followed by Enter or a space, JR should be replaced with the following (in this example):</li>
</ul><p><blockquote><blockquote><p>Johnny Rosenberg<br>MyAddress<br>MyPhone<br><br>Etc</p></blockquote></blockquote><p></p><ul><li>\n and \t should work (Enter and Tab respectively)</li><li>UTF-8 should be supported.</li>
<li>It should be possible to stop it temporarily by using a keyboard shortcut and then restart it again with the same keyboard shortcut.</li><li>It should be written in C or C++. If the source code is available, it's a bonus… (because I'd really like to learn how to do stuff like that…)</li>
</ul><p>I know this feature exists in a lot of applications, such as OpenOffice.org (auto correction) and Emacs, but it would be nice to have it as a global application, working with everything. The applications should be running in the background all the time, reading the keyboard and replacing things when something in the abbreviation list is found.</p>
<p>Thanks</p><p>J.R.</p></p>