Files
amethyst/tools/emoji-data
Claude 8158adf1ea feat: shared Unicode emoji picker for composers and reaction choices
Desktop has no system emoji keyboard, so there was no way to type an emoji
there. The composer's emoji button now opens a picker with the Unicode palette
(categories, name search, skin tones) next to the existing NIP-30 custom emoji
tab, in the note, comment, DM, public chat, Concord and Nest composers.

- commons/unicodeEmoji: UnicodeEmojiCatalog parses the palette and searches it.
- commonsUI: the palette file (Unicode emoji-test.txt up to Emoji 15.0, built by
  tools/emoji-data/generate.py) and the picker. Cells draw in the system's color
  emoji font on desktop, since Skia's fallback picks monochrome DejaVu Sans on Linux.
- The reaction choices screen gets the picker in its field and is now registered
  in the shared nav host, so desktop can open it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QEZ92TehbWvUhrJfrX2kie
2026-10-15 15:36:00 +00:00
..

Unicode emoji palette

generate.py builds commonsUI/src/commonMain/composeResources/files/emoji/emoji.tsv, the palette the shared emoji picker (commonsUI/.../commons/unicodeEmoji/ui/EmojiPicker.kt) shows. Desktop has no system emoji keyboard, so this picker is the only way to type an emoji there.

The source is Unicode's emoji-test.txt (UTS #51), distributed under the permissive Unicode License v3; the generated file keeps its copyright notice in its header.

curl -sSO https://unicode.org/Public/emoji/latest/emoji-test.txt
python3 tools/emoji-data/generate.py emoji-test.txt \
    commonsUI/src/commonMain/composeResources/files/emoji/emoji.tsv

--max-version (default 15.0) caps the Emoji version offered: newer glyphs render as tofu on desktops whose system emoji font has not caught up yet. Raise it once the fonts shipped by Windows, macOS and the common Linux distributions cover the newer set.