1.7 KiB
1.7 KiB
Text Replacement
The Text Replacement module lets a user replace one typed sequence of characters with another.
Potential uses:
- Rudimentary auto-correct: replace
yuo
withyou
- Text expansion, à la espanso: when
:sig
is typed, replace it withJohn Doe
, or turnidk
intoI don't know
Usage
from kmk.modules.text_replacement import TextReplacement
my_dictionary = {
'yuo': 'you',
':sig': 'John Doe',
'idk': "I don't know"
}
text_replacement = TextReplacement(dictionary=my_dictionary)
keyboard.modules.append(text_replacement)
Recommendations
- Consider prefixing text expansion entries with a symbol to prevent accidental activations.
- If you want multiple similar replacements, consider adding a number to prevent unreachable matches:
replaceme1
,replaceme2
, etc.
Limitations
- Since this runs on your keyboard, it is not context-aware. It can't tell if you are typing in a valid text field or not.
- In the interest of a responsive typing experience, the first valid match will be used as soon as it is found. If your dictionary contains "abc" and "abcd", "abcd" will be unmatchable.
- Like is the case with Sequences and Dynamic Sequences, characters are sent at a rate of 1 every 10 milliseconds. The replacement will not happen instantly.
- The text to be replaced is removed by sending backspace taps. As with the previous limitation, this happens at a rate of 1 tap every 10 milliseconds.