Skip to main content

A text box that allows easier input of many characters in a structured way.

Project description

opengine2

A text box that allows easier input of many characters in a structured way.

Start typing in the text box. Alternatives for each character typed is accessed in series by repeatedly typing the same character, like in an __o__ld __p__hone (hence the name). As you type, gain feedback with which character you just typed in the display. Finish by pressing "Quit & Copy", which copies the text box's contents to the clipboard.

Demonstration video here.

Defining your own keyboards

By default an IPA keyboard is complete and a partial Cyrillic and Greek keyboard is also provided for proof of concept of keyboard switching.

To write your own keyboard, put them in your XDG data path. TOML and HOCON are supported. The filename should end in .opengine2.toml or .opengine2.hocon as needed.

Only three keys are needed in either case:

  • opengine2_version defines the file as an opengine2-readable file and sets the version. This is always 1 for now.
  • name gives the name as displayed in the GUI.
  • keys is a list of two- or three-element lists. Characters are typed in the order of their appearance in the keyboard file.
    • The first element is the key that the character is assigned to.
    • The second element is the key that the character can type
    • The third element, if present, is the name that will be displayed as a hint. If missing, then the hint is the Unicode name of the character.

TOML is useful for machine generation. If you handwrite your own keyboards, HOCON is better because you don't need to type so many quotes.

The location for storing the files is still in flux and may change as future versions require.

Configuration file

Not yet implemented, but the following keys are expected:

  • keyboards: locations of additional keyboard files.
  • default_kbd: name of default file.

It is placed in the usual location, i.e. ~/.config/opengine2 or wherever your XDG environment variables are set.

Possibly Asked Questions

Why not an IME?

Mostly because I can't quite figure out how to make it (ibus) work, but also because this is fairly unusual behaviour for an IME. Generally an IME would not demand repeated entry of a key to switch alternatives.

Why version 2?

Version 1 was an AutoHotkey script. It's well over 10 years old now but it is still usable. However, AHK is poorly supported on Linux so I had to make something else to replace it.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

opengine2-2.0.1.tar.gz (9.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

opengine2-2.0.1-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file opengine2-2.0.1.tar.gz.

File metadata

  • Download URL: opengine2-2.0.1.tar.gz
  • Upload date:
  • Size: 9.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.0

File hashes

Hashes for opengine2-2.0.1.tar.gz
Algorithm Hash digest
SHA256 438fc767d5f1ba3ed15bebc7c61e3d7e8d22f6e4318bfda5170dc312b7c8668e
MD5 6abecf621bcfad861a48115f211ac1b0
BLAKE2b-256 d206a1b847f895300c1e3da5ae9cc741fc4d24effbd95e1717833019caadb880

See more details on using hashes here.

File details

Details for the file opengine2-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: opengine2-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.0

File hashes

Hashes for opengine2-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 951b4266a9b21d59e05011b6e035eca229d8c12f6c283d58e2a3f660df1a5f4e
MD5 c8daef0e8c3143d47dab97eea0b1d502
BLAKE2b-256 a4fa9323bead1e25cf0e5efc600fb9494423d9466cb2102133eddb6c88221c13

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page