Question or feature request: How to add a GUI configuration page in Keyman to toggle keyboard-specific preferences

Hello everyone,

I’m working on a Keyman keyboard that offers users a choice between Western and Eastern Arabic numerals. Internally, I track this with a NumOpt store:

store(westernArabicNumerals)   '0123456789٪'
store(easternArabicNumerals)   '٠١٢٣٤٥٦٧٨٩٪'
store(NumOpt)                  '0'

'//رقم ' > nul
'//رقم ' if(NumOpt = '0') > set(NumOpt = '1') save(NumOpt)
'//رقم ' if(NumOpt = '1') > set(NumOpt = '0') save(NumOpt)

any(westernArabicNumerals) if(NumOpt = '1') > index(easternArabicNumerals, 1)

Right now, users must type //رقم to toggle numeral styles. I’m wondering:

  • Is there a way to build a small configuration UI (either cross‑platform or platform‑specific) for Keyman keyboards?
  • Ideally, this would let users click a checkbox or radio button to switch NumOpt between 0 and 1, saving the preference automatically.
  • This could be implemented in the Keyman app’s Settings screen (like on Windows/macOS/Android/iOS) or perhaps as a pop‑up dialog within the keyboard itself.

So far, Keyman apps let you set general options (e.g. hotkeys, layouts) (help.keyman.com), but I haven’t seen a way to expose custom keyboard‑defined settings via UI. Is this supported now? If not, any suggestions on how to implement it—or submit it as a feature request?

Thanks!

Hello, Anas. Welcome!

The SIL IPA keyboard (keyboards/release/sil/sil_ipa at master · keymanapp/keyboards · GitHub) uses an options.htm file to present choices to the keyboard user. This is accessed from the Keyman Configuration for the installed keyboard. For example, for the SIL IPA keyboard


the “Keyboard options” button has been added which brings up a dialog based on the information in the “options.htm” file.

If this isn’t what you’re seeking or if you need more detail, please write again.

1 Like

See also Variable stores

note that the options dialog is currently only supported on Windows and Linux and is an open feature plan for other platforms: feat(common): Support a generic Keyboard Options user interface · Issue #2472 · keymanapp/keyman · GitHub

1 Like