emoji
Emoji, Emoticon, and Kaomoji Support
This directory provides Talon configuration and assets for inserting various emojis, Western emoticons (ASCII-based), and Eastern kaomojis (Unicode text-art) using voice commands.
By grouping these features into a dedicated tag (user.emoji), the system allows users to optionally activate or deactivate these voice commands based on context.
How It Works
The functionality is divided into three parts: defining the structure, implementing the voice commands, and declaring the mapping lists.
1. Registration and Setup
The emoji.py file serves as the schema definition for this module. It registers:
- The
user.emojitag, which must be enabled for any of these commands to become active. - Three distinct list definitions:
user.emoticon,user.emoji, anduser.kaomoji.
2. Defining Voice Commands
The emoji.talon file implements the voice commands that are triggered when the user.emoji tag is active:
- Emoticons: Saying
"emoticon {user.emoticon}"types the corresponding ASCII characters directly (for example, saying "emoticon wink" outputs;)). - Emojis and Kaomojis: Saying
"emoji {user.emoji}"or"kaomoji {user.kaomoji}"inserts the Unicode characters by callinguser.paste(). Using paste ensures that complex multi-byte Unicode strings or emojis are reliably inserted into the active application without keyboard-layout interference.
3. Custom Mappings (The Lists)
The mapping between spoken phrases and their symbolic outputs is declared in three separate Talon list files:
-
emoji.talon-list: Maps spoken words to standard Unicode emojis.
- Example:
shushing: 🤫
- Example:
-
kaomoji.talon-list: Maps spoken expressions to Japanese-style kaomoji text art.
- Example:
table flip: (╯°□°)╯︵ ┻━┻
- Example:
-
emoticon.talon-list: Maps spoken terms to classic Western ASCII emoticons.
- Example:
cheering: \o/
- Example: