Suggestions to Keep Smart Keyboard Pro the BEST Soft Keyboard EVER!

I’m a long-time user of Smart Keyboard Pro. I hunted high and low for a keyboard that didn’t try to outsmart me but instead augment me. When I found Smart keyboard Pro, I had to tweak a lot of the settings before it worked for me instead of against me, but at least it allowed me to do so, something that no other soft-keyboard does. I have attached my configuration file at the end of this for those that may be interested.

There are, however, some features that Smart keyboard Pro lacks, in particular the following. Note that a few of these suggestions only make sense when my configuration is taken into consideration.

  1. Suggestion bar: Allow dictionary words to be removed (the UK dictionary is full of US words, for example), that or allow users to completely replace dictionaries with their own.

  2. Suggestion bar: Need an option for unknown words to be clearly distinguishable from known words.

  3. Suggestion bar: Make predictions expand more bit-by-bit instead of trying to outsmart the user and show the most complex words first.

  4. Suggestion bar: A quick way to delete a custom dictionary word from the suggestion bar, perhaps through a long-press on the suggested word to bring up a pop-up menu in order to delete it. This to prevent the user having to go to the settings to manually locate the incorrect word and delete it that way.

  5. Suggestion-bar: Privacy switch. Some quick means of disabling custom dictionaries and other personalisations that can reveal personal data or habits to a user when we let someone else borrow our phone for some reason.

  6. Edit keys for copy and paste, etc. Currently I switch to another keyboard to do this when apps etc. fail me; that process, however, is very painful.

  7. Language-neutral dictionary entries for names, etc. that should show up no matter which is the active language (other than emoji, of course) with suggestion bar support for adding a word to either the current dictionary or the language-neutral dictionary, maybe as a second entry on the pop-up menu.

  8. I have a very short delay for invoking the alternative key and, normally, this is perfect; however, since I have five languages installed and the language button is on its own dedicated key, I easily toggle language without realising I have done it. To prevent this I which that some special keys could be assigned longer delays, including the arrow keys that I have on the bottom of the keyboard which I also accidentally tap from time-to-time.

  9. I often hyphenate words for many of the languages I use and so I wish that there was an option to allow a hyphen to be treated as a space from the dictionary search perspective. For example, if I type xxxx-yyyy, then, when I type the first part before the hyphen, the suggested words would be the same suggestions as currently is done, however, once the hyphen is added, it should start suggesting matching hyphenated words plus individual words as if the hyphen was a space. Currently, the way I get around the limitations in the suggestion-engine is that, when I get to the hyphen, I type a space and continue typing until the correct suggestion is found, pick it, then I go back and remove the space before moving back after the word. That’s just too many navigational steps that could be reduced to zero.

  10. Google appears to have the best engine when it comes to misspelt words and, I was wondering, if there was a public Google API that could be used to pass unknown words to have Google tell the keyboard if it knows it or if it has a suggestion for it. Currently, I copy and paste unknown words into Google to verify them.

  11. replace the emoji keyboard with an up-to-date one with support for the latest standards as well as a better interface allowing fluid navigation of emojis plus a “recent” tab, plus, to be ahead of the game, have a search feature where the user can type in things like “princess” and have the emojis filtered to show any matching emojis.

  12. Less important, but add an optional GIF keyboard. This would make the Smart Keyboard Pro appeal to a wider audience. A wider audience means more users and more sales which is better for us who love Smart keyboard pro and want to see it remain supported and enhanced while keeping it flexible and immensely configurable for us power users.

That’s about it. :slight_smile:

Even as much as soft-keyboards keep on advancing, none of them live up to Smart Keyboard Pro; however, the items I have listed above are a must to keep the keyboard current as well as alive and kicking. Smart Keyboard Pro is the best!!! But it does need these improvements for it to excel and stay alive.

In fact, I would suggest that, as part of the initial configuration, and as a shortcut from within the settings screen, to add the ability to load my power-user settings that makes Smart Keyboard Pro unbeatable. A keyboard needs to work for the user, not against the user, and my settings achieve just that.


My Smart Keyboard Pro settings (uses Emoji, UK English, French, Swedish, and Hungarian)

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    <string name="smiley_1">:(</string>
    <boolean name="alt_compact" value="false" />
    <boolean name="langBS" value="false" />
    <boolean name="langDE" value="false" />
    <boolean name="langNO" value="false" />
    <boolean name="langEN_INTL" value="false" />
    <boolean name="space_alert" value="false" />
    <boolean name="portrait_fullscreen" value="false" />
    <boolean name="langMN" value="false" />
    <boolean name="langAR" value="false" />
    <boolean name="display_alt_labels" value="true" />
    <boolean name="langAF" value="false" />
    <boolean name="hide_period" value="false" />
    <boolean name="legacy_voice" value="false" />
    <string name="smiley_10">:[</string>
    <boolean name="langJP" value="false" />
    <boolean name="czech_full" value="false" />
    <boolean name="langHU" value="false" />
    <string name="show_numbers_top">0</string>
    <boolean name="langIT_FULL" value="false" />
    <boolean name="langHY_FULL" value="false" />
    <string name="smiley_8">:$</string>
    <boolean name="smart_dictionary" value="false" />
    <boolean name="hide_lang_key" value="false" />
    <boolean name="accents_priority" value="false" />
    <boolean name="langHU_QWERTY" value="true" />
    <string name="show_language_icon">1</string>
    <boolean name="langFR" value="false" />
    <boolean name="double_space_period" value="false" />
    <string name="smiley_0">:)</string>
    <string name="smiley_3">:P</string>
    <boolean name="langPY" value="false" />
    <boolean name="langCZ_QWERTZ" value="false" />
    <boolean name="langDA" value="false" />
    <boolean name="langBG_BDS" value="false" />
    <boolean name="BG_TchYaVER" value="false" />
    <boolean name="no_lansdcape_fullscreen" value="false" />
    <boolean name="langFI_SMALL" value="false" />
    <boolean name="langZH" value="false" />
    <boolean name="quick_fixes" value="false" />
    <boolean name="langPT" value="false" />
    <boolean name="langTH" value="false" />
    <boolean name="learn_new_words" value="false" />
    <string name="smiley_key">1</string>
    <boolean name="t9_length_priority" value="true" />
    <boolean name="no_landscape_suggestions" value="false" />
    <boolean name="always_suggest" value="true" />
    <string name="swipe_left">None</string>
    <boolean name="langSR" value="false" />
    <boolean name="contact_dic" value="true" />
    <boolean name="langHR" value="false" />
    <boolean name="langBR" value="false" />
    <string name="swipe_right">Symbols</string>
    <boolean name="langIT" value="false" />
    <boolean name="langLV" value="false" />
    <boolean name="auto_complete" value="false" />
    <boolean name="langEN_COLEMAK" value="false" />
    <boolean name="langIS" value="false" />
    <boolean name="mic_button" value="false" />
    <boolean name="langEO" value="false" />
    <boolean name="apostrophe_separator" value="true" />
    <boolean name="langKO" value="false" />
    <boolean name="langSK_QWERTY" value="false" />
    <boolean name="langRO" value="false" />
    <boolean name="langEN_AZERTY" value="false" />
    <string name="swipe_up">Shift</string>
    <boolean name="dynamic_resizing" value="false" />
    <string name="smiley_2">;)</string>
    <boolean name="langBG_YaVERT" value="false" />
    <boolean name="langCZ_QWERTY" value="false" />
    <boolean name="langEN_DVORAK" value="false" />
    <boolean name="langEL" value="false" />
    <boolean name="langNL_AZERTY" value="false" />
    <boolean name="langMR" value="false" />
    <boolean name="enable_arrows" value="false" />
    <boolean name="show_suggestions" value="true" />
    <boolean name="suggest_punctuation" value="true" />
    <string name="domain_key">1</string>
    <string name="smiley_12">:\</string>
    <boolean name="langPL" value="false" />
    <boolean name="langRU_SMALL" value="false" />
    <boolean name="space_when_pick" value="false" />
    <boolean name="langKA" value="false" />
    <boolean name="suggest_hard" value="true" />
    <boolean name="touch_points" value="false" />
    <string name="curLang">EN_UK</string>
    <boolean name="langFR_QWERTY_FULL" value="false" />
    <boolean name="langKU_SORANI" value="false" />
    <boolean name="langLB" value="false" />
    <boolean name="langHI" value="false" />
    <boolean name="langRU" value="false" />
    <boolean name="langSQ" value="false" />
    <boolean name="langSV" value="true" />
    <boolean name="langKK" value="false" />
    <string name="arrows_style">1</string>
    <boolean name="show_preview" value="false" />
    <boolean name="compound_suggestions" value="true" />
    <boolean name="custom_smileys" value="false" />
    <boolean name="langAZ" value="false" />
    <boolean name="langBE" value="false" />
    <string name="custom_punctuation">!?,@_</string>
    <string name="latin_layout"></string>
    <boolean name="debug" value="false" />
    <boolean name="langFA" value="false" />
    <boolean name="voice_best" value="false" />
    <boolean name="disable_settings" value="true" />
    <boolean name="langKU_HAWAR" value="false" />
    <boolean name="langCA" value="false" />
    <boolean name="langSL" value="false" />
    <boolean name="langDE_FULL" value="false" />
    <boolean name="langRU_YaShERT" value="false" />
    <boolean name="langUK" value="false" />
    <boolean name="hide_comma" value="false" />
    <boolean name="langID" value="false" />
    <string name="swipe_down">Close</string>
    <boolean name="langGL" value="false" />
    <boolean name="langET" value="false" />
    <boolean name="langEN" value="false" />
    <boolean name="auto_cap" value="false" />
    <boolean name="enter_sends_sms" value="false" />
    <int name="calib_p_dx" value="-3" />
    <boolean name="vibrate" value="false" />
    <boolean name="langEN_UK" value="true" />
    <boolean name="alt_symbols" value="true" />
    <string name="smiley_7">B)</string>
    <boolean name="rtl_suggestions" value="true" />
    <boolean name="langFR_QWERTZ" value="false" />
    <boolean name="suggest_numbers" value="false" />
    <boolean name="disable_launcher" value="false" />
    <int name="calib_p_dy" value="3" />
    <string name="domain_1"></string>
    <boolean name="langFR_QWERTY" value="true" />
    <boolean name="more_symbols" value="true" />
    <boolean name="no_alt_preview" value="true" />
    <boolean name="langSK_QWERTZ" value="false" />
    <int name="longpress_duration" value="10" />
    <boolean name="langSR_CYRILLIC" value="false" />
    <int name="vibrator_duration_ms" value="30" />
    <boolean name="langNL" value="false" />
    <boolean name="langKO_SHORT" value="false" />
    <string name="smiley_9">:!</string>
    <boolean name="langFI" value="false" />
    <boolean name="langLT" value="false" />
    <string name="show_arrows_main">3</string>
    <boolean name="langHY" value="false" />
    <boolean name="langHE" value="false" />
    <boolean name="recorrection_enabled" value="true" />
    <boolean name="ignore_hard_kbd" value="false" />
    <boolean name="langTT" value="false" />
    <boolean name="mic_above_comma" value="false" />
    <string name="sound_style">Android</string>
    <boolean name="space_preview" value="false" />
    <string name="smiley_11">O:)</string>
    <string name="portrait_mode">0</string>
    <boolean name="langEM" value="true" />
    <boolean name="disable_mt" value="false" />
    <string name="smiley_14">:D</string>
    <boolean name="hebrew_alt" value="false" />
    <boolean name="calib_done" value="true" />
    <boolean name="swap_punctuation_space" value="false" />
    <boolean name="hide_in_portrait" value="false" />
    <string name="smiley_5">:*</string>
    <boolean name="langTA" value="false" />
    <boolean name="restart_voice" value="false" />
    <boolean name="langVI" value="false" />
    <boolean name="cursor_volume" value="false" />
    <int name="calib_p_space" value="9" />
    <boolean name="always_caps" value="false" />
    <string name="smiley_4">=O</string>
    <boolean name="langTR" value="false" />
    <boolean name="langES" value="false" />
    <boolean name="slide_popup" value="true" />
    <boolean name="t9_next_key" value="true" />
    <boolean name="langMK" value="false" />

Since Smart Keyboard Pro appears to have died, I started looking for a new professional soft-keyboard, and, found that there are a lot more offerings on the market than there was when Smart Keyboard Pro was the only keyboard on the market providing features that now a lot of other professional smart-keyboards have copied. Yet not many innovations have been made, and, as such, a lot of these keyboards have similar shortcomings, or the innovations are spread across keyboards but none have it all. It is promising, though, especially since the developers for these keyboards are actually active.