A lightweight emoji and special character picker for Linux/KDE.
| Light | Dark |
|---|---|
![]() |
![]() |
xdotool--show can be used from a KDE custom shortcutCtrl+Alt+E opens or closes the picker when pynput is availableLocal Twemoji assets are required. Place the PNG files in:
./assets/twemoji/*.png
You can check missing assets with:
python charm.py --check-assets
Theme colors are evaluated at startup. Restart CharM after changing the KDE color scheme.
Global hotkey support is optional. If pynput is not installed, CharM still works from the tray or with python charm.py --show.
xdotool.python /path/to/charm.py --show.~/.config/eleora-charm/recent.json~/.config/eleora-charm/config.json/tmp/eleora-charm_<uid>.sock is used only to show the already-running instance when --show is calledpynput (optional — global hotkey)xdotool (optional — direct auto-paste on X11)ydotool (optional — simulated paste on Wayland setups where it is configured and available)git clone https://github.com/eleora-dev/charm.git
cd charm
pip install PySide6 pynput --break-system-packages
sudo dnf install google-noto-sans-symbols-fonts google-noto-sans-symbols-2-fonts google-noto-sans-math-fonts
sudo dnf install xdotool
python charm.py
If you do not want the global hotkey, pynput can be omitted.
Copy the desktop file to KDE autostart:
cp emoji_picker.desktop ~/.config/autostart/
Or start manually:
python charm.py
Ctrl+Alt+E → open/close picker when the global hotkey listener is availableEsc → close the pickerEnter → select the first search resultOn Wayland/KDE, add a custom shortcut in:
System Settings → Shortcuts → Custom Shortcuts
Use this command:
python /path/to/charm.py --show
python charm.py --show
Shows the already-running picker instance, or starts normally if no instance is running.
python charm.py --check-assets
Checks whether all required local Twemoji PNG assets are present.
CharM does not collect, transmit or share personal data. It stores only local preferences and recent characters on your device.
Full privacy policy: eleora-dev.github.io/charm/privacy.html
CharM uses local emoji graphics from Twemoji.
Twemoji graphics are licensed under CC-BY 4.0. Twemoji code is licensed under the MIT License.
Copyright Twitter, Inc. and other contributors.
MIT License — see LICENSE for details.
Gerardo Perilli · Eleòra