arch/private_dot_config/DankMaterialShell/plugins/emojiLauncher/EmojiLauncher.qml
lew b18328bbad Add .config/DankMaterialShell/firefox.css
Add .config/DankMaterialShell/plugin_settings.json
Add .config/DankMaterialShell/plugins/dankDesktopWeather.meta
Add .config/DankMaterialShell/plugins/dankHooks.meta
Add .config/DankMaterialShell/plugins/desktopCommand/LICENSE
Add .config/DankMaterialShell/plugins/desktopCommand/README.md
Add .config/DankMaterialShell/plugins/desktopCommand/Settings.qml
Add .config/DankMaterialShell/plugins/desktopCommand/Widget.qml
Add .config/DankMaterialShell/plugins/desktopCommand/assets/screenshot.jpg
Add .config/DankMaterialShell/plugins/desktopCommand/.git/HEAD
Add .config/DankMaterialShell/plugins/desktopCommand/.git/config
Add .config/DankMaterialShell/plugins/desktopCommand/.git/index
Add .config/DankMaterialShell/plugins/desktopCommand/.git/objects/info/.keep
Add .config/DankMaterialShell/plugins/desktopCommand/.git/objects/pack/pack-c2ca48eacecc3ab45931476641d058a89d755775.idx
Add .config/DankMaterialShell/plugins/desktopCommand/.git/objects/pack/pack-c2ca48eacecc3ab45931476641d058a89d755775.rev
Add .config/DankMaterialShell/plugins/desktopCommand/.git/objects/pack/pack-c2ca48eacecc3ab45931476641d058a89d755775.pack
Add .config/DankMaterialShell/plugins/desktopCommand/.git/refs/heads/main
Add .config/DankMaterialShell/plugins/desktopCommand/.git/refs/remotes/origin/main
Add .config/DankMaterialShell/plugins/desktopCommand/.git/refs/tags/.keep
Add .config/DankMaterialShell/plugins/desktopCommand/.gitignore
Add .config/DankMaterialShell/plugins/desktopCommand/wrapCommand
Add .config/DankMaterialShell/plugins/desktopCommand/plugin.json
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/DankActionsSettings.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/DankActionsWidget.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankActions/plugin.json
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankBatteryAlerts/DankBatteryAlerts.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankBatteryAlerts/DankBatteryAlertsSettings.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankBatteryAlerts/plugin.json
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankDesktopWeather/DankDesktopWeather.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankDesktopWeather/DankDesktopWeatherSettings.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankDesktopWeather/plugin.json
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/DankHooks.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/DankHooksSettings.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/README.md
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankHooks/plugin.json
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankPomodoroTimer/DankPomodoroSettings.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankPomodoroTimer/DankPomodoroWidget.qml
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/DankPomodoroTimer/plugin.json
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/LICENSE
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/README.md
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/HEAD
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/config
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/index
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/info/.keep
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-3221a15c022ef4a7bb6bf2c47e40068b66b3588b.idx
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-3221a15c022ef4a7bb6bf2c47e40068b66b3588b.rev
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-9aca069a8b76b40fcc472eba1ed9b8219a87776b.idx
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-9aca069a8b76b40fcc472eba1ed9b8219a87776b.rev
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-e6f6cdfe9914bfb4a5717ef6036821794d59ab4b.idx
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-e6f6cdfe9914bfb4a5717ef6036821794d59ab4b.rev
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-3221a15c022ef4a7bb6bf2c47e40068b66b3588b.pack
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-9aca069a8b76b40fcc472eba1ed9b8219a87776b.pack
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/objects/pack/pack-e6f6cdfe9914bfb4a5717ef6036821794d59ab4b.pack
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/heads/master
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/remotes/origin/master
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.git/refs/tags/.keep
Add .config/DankMaterialShell/plugins/.repos/0026f1eba8dedaec/.gitignore
Add .config/DankMaterialShell/plugins/emojiLauncher/EmojiLauncher.qml
Add .config/DankMaterialShell/plugins/emojiLauncher/EmojiLauncherSettings.qml
Add .config/DankMaterialShell/plugins/emojiLauncher/LICENSE
Add .config/DankMaterialShell/plugins/emojiLauncher/README.md
Add .config/DankMaterialShell/plugins/emojiLauncher/catalog.js
Add .config/DankMaterialShell/plugins/emojiLauncher/data/emojis.txt
Add .config/DankMaterialShell/plugins/emojiLauncher/data/math.txt
Add .config/DankMaterialShell/plugins/emojiLauncher/data/nerdfont.txt
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/HEAD
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/config
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/index
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/info/.keep
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/pack/pack-e04a5b1ea381dc3a792b8bf08cf70e735b195c0d.idx
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/pack/pack-e04a5b1ea381dc3a792b8bf08cf70e735b195c0d.rev
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/objects/pack/pack-e04a5b1ea381dc3a792b8bf08cf70e735b195c0d.pack
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/refs/heads/main
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/refs/remotes/origin/main
Add .config/DankMaterialShell/plugins/emojiLauncher/.git/refs/tags/.keep
Add .config/DankMaterialShell/plugins/emojiLauncher/plugin.json
Add .config/DankMaterialShell/plugins/emojiLauncher/screenshot.png
Add .config/DankMaterialShell/plugins/emojiLauncher/scripts/generate_catalog.py
Add .config/DankMaterialShell/plugins/mediaPlayer/MediaPlayerSettings.qml
Add .config/DankMaterialShell/plugins/mediaPlayer/MediaPlayerTab.qml
Add .config/DankMaterialShell/plugins/mediaPlayer/README.md
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/HEAD
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/config
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/index
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/objects/info/.keep
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/objects/pack/pack-0b9cb33f7da23f6ff361ee3aa5117928714bc3be.idx
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/objects/pack/pack-0b9cb33f7da23f6ff361ee3aa5117928714bc3be.rev
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/objects/pack/pack-0b9cb33f7da23f6ff361ee3aa5117928714bc3be.pack
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/refs/heads/main
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/refs/remotes/origin/main
Add .config/DankMaterialShell/plugins/mediaPlayer/.git/refs/tags/.keep
Add .config/DankMaterialShell/plugins/mediaPlayer/plugin.json
Add .config/DankMaterialShell/plugins/mediaPlayer/screenshot_8.png
Add .config/DankMaterialShell/plugins/dankDesktopWeather
Add .config/DankMaterialShell/plugins/dankHooks
Add .config/DankMaterialShell/settings.json
2026-01-07 15:09:11 +00:00

1218 lines
81 KiB
QML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import QtQuick
import Quickshell
import qs.Services
import "catalog.js" as CatalogData
Item {
id: root
property var pluginService: null
property string trigger: ":"
signal itemsChanged()
property var emojiDatabase: [
{emoji: "😀", name: "Grinning Face", keywords: ["happy", "smile", "grin"]},
{emoji: "😃", name: "Grinning Face with Big Eyes", keywords: ["happy", "joy", "smile"]},
{emoji: "😄", name: "Grinning Face with Smiling Eyes", keywords: ["happy", "joy", "laugh"]},
{emoji: "😁", name: "Beaming Face with Smiling Eyes", keywords: ["happy", "grin", "excited"]},
{emoji: "😆", name: "Grinning Squinting Face", keywords: ["laugh", "happy", "excited"]},
{emoji: "😅", name: "Grinning Face with Sweat", keywords: ["hot", "happy", "laugh", "relief"]},
{emoji: "🤣", name: "Rolling on the Floor Laughing", keywords: ["lol", "laugh", "rofl"]},
{emoji: "😂", name: "Face with Tears of Joy", keywords: ["laugh", "cry", "joy"]},
{emoji: "🙂", name: "Slightly Smiling Face", keywords: ["smile", "happy"]},
{emoji: "🙃", name: "Upside-Down Face", keywords: ["silly", "sarcasm"]},
{emoji: "😉", name: "Winking Face", keywords: ["wink", "flirt"]},
{emoji: "😊", name: "Smiling Face with Smiling Eyes", keywords: ["happy", "blush", "smile"]},
{emoji: "😇", name: "Smiling Face with Halo", keywords: ["angel", "innocent"]},
{emoji: "🥰", name: "Smiling Face with Hearts", keywords: ["love", "crush", "hearts"]},
{emoji: "😍", name: "Smiling Face with Heart-Eyes", keywords: ["love", "crush", "hearts"]},
{emoji: "🤩", name: "Star-Struck", keywords: ["eyes", "excited", "star"]},
{emoji: "😘", name: "Face Blowing a Kiss", keywords: ["kiss", "love"]},
{emoji: "😗", name: "Kissing Face", keywords: ["kiss", "love"]},
{emoji: "😚", name: "Kissing Face with Closed Eyes", keywords: ["kiss", "love"]},
{emoji: "😙", name: "Kissing Face with Smiling Eyes", keywords: ["kiss", "love"]},
{emoji: "😋", name: "Face Savoring Food", keywords: ["yum", "delicious", "food"]},
{emoji: "😛", name: "Face with Tongue", keywords: ["tongue", "silly"]},
{emoji: "😜", name: "Winking Face with Tongue", keywords: ["wink", "tongue", "silly"]},
{emoji: "🤪", name: "Zany Face", keywords: ["crazy", "wild", "silly"]},
{emoji: "😝", name: "Squinting Face with Tongue", keywords: ["tongue", "silly"]},
{emoji: "🤑", name: "Money-Mouth Face", keywords: ["money", "rich", "cash"]},
{emoji: "🤗", name: "Hugging Face", keywords: ["hug", "love"]},
{emoji: "🤭", name: "Face with Hand Over Mouth", keywords: ["quiet", "oops", "secret"]},
{emoji: "🤫", name: "Shushing Face", keywords: ["quiet", "shh", "secret"]},
{emoji: "🤔", name: "Thinking Face", keywords: ["think", "hmm", "consider"]},
{emoji: "🤐", name: "Zipper-Mouth Face", keywords: ["quiet", "secret", "sealed"]},
{emoji: "🤨", name: "Face with Raised Eyebrow", keywords: ["suspicious", "skeptical"]},
{emoji: "😐", name: "Neutral Face", keywords: ["neutral", "meh"]},
{emoji: "😑", name: "Expressionless Face", keywords: ["blank", "meh"]},
{emoji: "😶", name: "Face Without Mouth", keywords: ["silent", "quiet"]},
{emoji: "😏", name: "Smirking Face", keywords: ["smirk", "sly"]},
{emoji: "😒", name: "Unamused Face", keywords: ["annoyed", "meh"]},
{emoji: "🙄", name: "Face with Rolling Eyes", keywords: ["annoyed", "eye roll"]},
{emoji: "😬", name: "Grimacing Face", keywords: ["awkward", "nervous"]},
{emoji: "😔", name: "Pensive Face", keywords: ["sad", "thoughtful"]},
{emoji: "😪", name: "Sleepy Face", keywords: ["tired", "sleep"]},
{emoji: "🤤", name: "Drooling Face", keywords: ["drool", "sleep"]},
{emoji: "😴", name: "Sleeping Face", keywords: ["sleep", "tired", "zzz"]},
{emoji: "😷", name: "Face with Medical Mask", keywords: ["sick", "mask", "doctor"]},
{emoji: "🤒", name: "Face with Thermometer", keywords: ["sick", "ill", "fever"]},
{emoji: "🤕", name: "Face with Head-Bandage", keywords: ["hurt", "injured", "bandage"]},
{emoji: "🤢", name: "Nauseated Face", keywords: ["sick", "gross"]},
{emoji: "🤮", name: "Face Vomiting", keywords: ["sick", "vomit", "puke"]},
{emoji: "🤧", name: "Sneezing Face", keywords: ["sick", "sneeze"]},
{emoji: "🥵", name: "Hot Face", keywords: ["hot", "sweat"]},
{emoji: "🥶", name: "Cold Face", keywords: ["cold", "freeze"]},
{emoji: "😵", name: "Dizzy Face", keywords: ["dizzy", "confused"]},
{emoji: "🤯", name: "Exploding Head", keywords: ["mind blown", "shocked"]},
{emoji: "🤠", name: "Cowboy Hat Face", keywords: ["cowboy", "hat"]},
{emoji: "🥳", name: "Partying Face", keywords: ["party", "celebrate"]},
{emoji: "😎", name: "Smiling Face with Sunglasses", keywords: ["cool", "sunglasses"]},
{emoji: "🤓", name: "Nerd Face", keywords: ["nerd", "geek", "glasses"]},
{emoji: "🧐", name: "Face with Monocle", keywords: ["fancy", "classy"]},
{emoji: "😕", name: "Confused Face", keywords: ["confused", "puzzled"]},
{emoji: "😟", name: "Worried Face", keywords: ["worried", "concerned"]},
{emoji: "🙁", name: "Slightly Frowning Face", keywords: ["sad", "frown"]},
{emoji: "☹️", name: "Frowning Face", keywords: ["sad", "frown"]},
{emoji: "😮", name: "Face with Open Mouth", keywords: ["wow", "surprised"]},
{emoji: "😯", name: "Hushed Face", keywords: ["surprised", "quiet"]},
{emoji: "😲", name: "Astonished Face", keywords: ["shocked", "surprised"]},
{emoji: "😳", name: "Flushed Face", keywords: ["blush", "embarrassed"]},
{emoji: "🥺", name: "Pleading Face", keywords: ["puppy eyes", "please"]},
{emoji: "😦", name: "Frowning Face with Open Mouth", keywords: ["shocked", "sad"]},
{emoji: "😧", name: "Anguished Face", keywords: ["scared", "worried"]},
{emoji: "😨", name: "Fearful Face", keywords: ["scared", "afraid"]},
{emoji: "😰", name: "Anxious Face with Sweat", keywords: ["nervous", "worried"]},
{emoji: "😥", name: "Sad but Relieved Face", keywords: ["sad", "relief"]},
{emoji: "😢", name: "Crying Face", keywords: ["cry", "sad", "tears"]},
{emoji: "😭", name: "Loudly Crying Face", keywords: ["cry", "sob", "sad"]},
{emoji: "😱", name: "Face Screaming in Fear", keywords: ["scream", "scared"]},
{emoji: "😖", name: "Confounded Face", keywords: ["confused", "frustrated"]},
{emoji: "😣", name: "Persevering Face", keywords: ["struggle", "effort"]},
{emoji: "😞", name: "Disappointed Face", keywords: ["sad", "disappointed"]},
{emoji: "😓", name: "Downcast Face with Sweat", keywords: ["sad", "sweat"]},
{emoji: "😩", name: "Weary Face", keywords: ["tired", "exhausted"]},
{emoji: "😫", name: "Tired Face", keywords: ["tired", "exhausted"]},
{emoji: "🥱", name: "Yawning Face", keywords: ["tired", "bored", "yawn"]},
{emoji: "😤", name: "Face with Steam From Nose", keywords: ["angry", "frustrated"]},
{emoji: "😡", name: "Pouting Face", keywords: ["angry", "mad"]},
{emoji: "😠", name: "Angry Face", keywords: ["angry", "mad"]},
{emoji: "🤬", name: "Face with Symbols on Mouth", keywords: ["swear", "angry", "cursing"]},
{emoji: "❤️", name: "Red Heart", keywords: ["love", "heart", "red"]},
{emoji: "🧡", name: "Orange Heart", keywords: ["love", "heart", "orange"]},
{emoji: "💛", name: "Yellow Heart", keywords: ["love", "heart", "yellow"]},
{emoji: "💚", name: "Green Heart", keywords: ["love", "heart", "green"]},
{emoji: "💙", name: "Blue Heart", keywords: ["love", "heart", "blue"]},
{emoji: "💜", name: "Purple Heart", keywords: ["love", "heart", "purple"]},
{emoji: "🖤", name: "Black Heart", keywords: ["love", "heart", "black"]},
{emoji: "🤍", name: "White Heart", keywords: ["love", "heart", "white"]},
{emoji: "🤎", name: "Brown Heart", keywords: ["love", "heart", "brown"]},
{emoji: "💔", name: "Broken Heart", keywords: ["heartbreak", "sad", "broken"]},
{emoji: "❤️‍🔥", name: "Heart on Fire", keywords: ["love", "passion", "fire"]},
{emoji: "💕", name: "Two Hearts", keywords: ["love", "hearts"]},
{emoji: "💞", name: "Revolving Hearts", keywords: ["love", "hearts"]},
{emoji: "💓", name: "Beating Heart", keywords: ["love", "heartbeat"]},
{emoji: "💗", name: "Growing Heart", keywords: ["love", "hearts"]},
{emoji: "💖", name: "Sparkling Heart", keywords: ["love", "sparkle"]},
{emoji: "💘", name: "Heart with Arrow", keywords: ["love", "cupid"]},
{emoji: "💝", name: "Heart with Ribbon", keywords: ["love", "gift"]},
{emoji: "👍", name: "Thumbs Up", keywords: ["yes", "ok", "good", "agree"]},
{emoji: "👎", name: "Thumbs Down", keywords: ["no", "bad", "disagree"]},
{emoji: "👊", name: "Oncoming Fist", keywords: ["fist", "punch"]},
{emoji: "✊", name: "Raised Fist", keywords: ["fist", "power"]},
{emoji: "🤛", name: "Left-Facing Fist", keywords: ["fist", "punch"]},
{emoji: "🤜", name: "Right-Facing Fist", keywords: ["fist", "punch"]},
{emoji: "🤞", name: "Crossed Fingers", keywords: ["luck", "hope", "fingers crossed"]},
{emoji: "✌️", name: "Victory Hand", keywords: ["peace", "victory"]},
{emoji: "🤟", name: "Love-You Gesture", keywords: ["love", "hand"]},
{emoji: "🤘", name: "Sign of the Horns", keywords: ["rock", "metal"]},
{emoji: "👌", name: "OK Hand", keywords: ["ok", "okay", "good"]},
{emoji: "🤌", name: "Pinched Fingers", keywords: ["italian", "fingers"]},
{emoji: "🤏", name: "Pinching Hand", keywords: ["small", "tiny"]},
{emoji: "👈", name: "Backhand Index Pointing Left", keywords: ["left", "point"]},
{emoji: "👉", name: "Backhand Index Pointing Right", keywords: ["right", "point"]},
{emoji: "👆", name: "Backhand Index Pointing Up", keywords: ["up", "point"]},
{emoji: "👇", name: "Backhand Index Pointing Down", keywords: ["down", "point"]},
{emoji: "☝️", name: "Index Pointing Up", keywords: ["up", "one", "point"]},
{emoji: "✋", name: "Raised Hand", keywords: ["hand", "stop", "high five"]},
{emoji: "🤚", name: "Raised Back of Hand", keywords: ["hand", "stop"]},
{emoji: "🔥", name: "Fire", keywords: ["fire", "hot", "flame"]},
{emoji: "💯", name: "Hundred Points", keywords: ["100", "perfect", "score"]},
{emoji: "⭐", name: "Star", keywords: ["star", "favorite"]},
{emoji: "✨", name: "Sparkles", keywords: ["sparkle", "shine", "glitter"]},
{emoji: "💫", name: "Dizzy", keywords: ["dizzy", "stars"]},
{emoji: "🎉", name: "Party Popper", keywords: ["party", "celebrate", "confetti"]},
{emoji: "🎊", name: "Confetti Ball", keywords: ["party", "celebrate", "confetti"]},
{emoji: "🎈", name: "Balloon", keywords: ["party", "balloon"]},
{emoji: "🎁", name: "Wrapped Gift", keywords: ["gift", "present"]},
{emoji: "🏆", name: "Trophy", keywords: ["trophy", "win", "award"]},
{emoji: "🥇", name: "1st Place Medal", keywords: ["gold", "first", "medal", "winner"]},
{emoji: "🥈", name: "2nd Place Medal", keywords: ["silver", "second", "medal"]},
{emoji: "🥉", name: "3rd Place Medal", keywords: ["bronze", "third", "medal"]},
{emoji: "⚡", name: "High Voltage", keywords: ["lightning", "bolt", "electric", "energy"]},
{emoji: "💻", name: "Laptop", keywords: ["computer", "laptop", "pc"]},
{emoji: "⌨️", name: "Keyboard", keywords: ["keyboard", "typing"]},
{emoji: "🖱️", name: "Computer Mouse", keywords: ["mouse", "computer"]},
{emoji: "🖥️", name: "Desktop Computer", keywords: ["computer", "desktop", "monitor"]},
{emoji: "📱", name: "Mobile Phone", keywords: ["phone", "mobile", "smartphone"]},
{emoji: "☎️", name: "Telephone", keywords: ["phone", "call"]},
{emoji: "📞", name: "Telephone Receiver", keywords: ["phone", "call"]},
{emoji: "✅", name: "Check Mark Button", keywords: ["check", "done", "yes", "complete"]},
{emoji: "❌", name: "Cross Mark", keywords: ["x", "no", "wrong", "cancel"]},
{emoji: "⚠️", name: "Warning", keywords: ["warning", "caution", "alert"]},
{emoji: "❗", name: "Exclamation Mark", keywords: ["exclamation", "important", "alert"]},
{emoji: "❓", name: "Question Mark", keywords: ["question", "help"]},
{emoji: "💡", name: "Light Bulb", keywords: ["idea", "light", "bulb", "innovation"]},
{emoji: "🔍", name: "Magnifying Glass Tilted Left", keywords: ["search", "find", "zoom"]},
{emoji: "🔎", name: "Magnifying Glass Tilted Right", keywords: ["search", "find", "zoom"]},
{emoji: "📝", name: "Memo", keywords: ["note", "write", "document", "text"]},
{emoji: "📋", name: "Clipboard", keywords: ["clipboard", "copy", "paste"]},
{emoji: "📌", name: "Pushpin", keywords: ["pin", "important"]},
{emoji: "📍", name: "Round Pushpin", keywords: ["pin", "location"]},
{emoji: "🚀", name: "Rocket", keywords: ["rocket", "space", "launch"]},
{emoji: "🎯", name: "Direct Hit", keywords: ["target", "bullseye", "goal"]},
{emoji: "⏰", name: "Alarm Clock", keywords: ["alarm", "clock", "time"]},
{emoji: "⏱️", name: "Stopwatch", keywords: ["stopwatch", "timer"]},
{emoji: "⏲️", name: "Timer Clock", keywords: ["timer", "clock"]},
{emoji: "🔔", name: "Bell", keywords: ["bell", "notification", "alert"]},
{emoji: "🔕", name: "Bell with Slash", keywords: ["mute", "silent", "no notification"]},
{emoji: "🎵", name: "Musical Note", keywords: ["music", "note"]},
{emoji: "🎶", name: "Musical Notes", keywords: ["music", "notes", "song"]},
{emoji: "📷", name: "Camera", keywords: ["camera", "photo", "picture"]},
{emoji: "📸", name: "Camera with Flash", keywords: ["camera", "photo", "flash"]},
{emoji: "🎬", name: "Clapper Board", keywords: ["movie", "film", "action"]},
{emoji: "🎮", name: "Video Game", keywords: ["game", "gaming", "controller"]},
{emoji: "🎲", name: "Game Die", keywords: ["dice", "game", "random"]},
{emoji: "🃏", name: "Joker", keywords: ["card", "joker", "playing card"]},
{emoji: "🎨", name: "Artist Palette", keywords: ["art", "paint", "color"]},
{emoji: "🖌️", name: "Paintbrush", keywords: ["brush", "paint", "art"]},
{emoji: "✏️", name: "Pencil", keywords: ["pencil", "write", "draw"]},
{emoji: "📚", name: "Books", keywords: ["books", "library", "read"]},
{emoji: "📖", name: "Open Book", keywords: ["book", "read"]},
{emoji: "🔖", name: "Bookmark", keywords: ["bookmark", "save"]},
{emoji: "🌟", name: "Glowing Star", keywords: ["star", "favorite", "glow"]},
{emoji: "💎", name: "Gem Stone", keywords: ["gem", "diamond", "jewel"]},
{emoji: "👑", name: "Crown", keywords: ["crown", "king", "queen", "royal"]},
{emoji: "🎓", name: "Graduation Cap", keywords: ["graduation", "education", "school"]},
{emoji: "🏅", name: "Sports Medal", keywords: ["medal", "sports", "award"]},
{emoji: "🎖️", name: "Military Medal", keywords: ["medal", "military", "honor"]},
{emoji: "🌈", name: "Rainbow", keywords: ["rainbow", "colors", "pride"]},
{emoji: "☀️", name: "Sun", keywords: ["sun", "sunny", "bright"]},
{emoji: "🌙", name: "Crescent Moon", keywords: ["moon", "night"]},
{emoji: "⭐", name: "Star", keywords: ["star", "favorite"]},
{emoji: "💥", name: "Collision", keywords: ["boom", "explosion", "impact"]},
{emoji: "💦", name: "Sweat Droplets", keywords: ["water", "sweat", "drops"]},
{emoji: "💨", name: "Dashing Away", keywords: ["fast", "wind", "dash"]},
{emoji: "🍕", name: "Pizza", keywords: ["pizza", "food"]},
{emoji: "🍔", name: "Hamburger", keywords: ["burger", "food"]},
{emoji: "🍟", name: "French Fries", keywords: ["fries", "food"]},
{emoji: "🌮", name: "Taco", keywords: ["taco", "food"]},
{emoji: "🌯", name: "Burrito", keywords: ["burrito", "food"]},
{emoji: "🍿", name: "Popcorn", keywords: ["popcorn", "movie", "food"]},
{emoji: "☕", name: "Hot Beverage", keywords: ["coffee", "tea", "hot"]},
{emoji: "🍺", name: "Beer Mug", keywords: ["beer", "drink", "alcohol"]},
{emoji: "🍻", name: "Clinking Beer Mugs", keywords: ["beer", "cheers", "toast"]},
{emoji: "🍷", name: "Wine Glass", keywords: ["wine", "drink", "alcohol"]},
{emoji: "🥂", name: "Clinking Glasses", keywords: ["champagne", "toast", "celebrate"]},
{emoji: "🍰", name: "Shortcake", keywords: ["cake", "dessert", "birthday"]},
{emoji: "🎂", name: "Birthday Cake", keywords: ["cake", "birthday", "celebrate"]},
{emoji: "🍪", name: "Cookie", keywords: ["cookie", "dessert"]},
{emoji: "🍩", name: "Doughnut", keywords: ["donut", "dessert"]},
{emoji: "🍦", name: "Soft Ice Cream", keywords: ["ice cream", "dessert"]},
{emoji: "🍨", name: "Ice Cream", keywords: ["ice cream", "dessert"]},
{emoji: "🧊", name: "Ice", keywords: ["ice", "cold", "cube"]},
{emoji: "🥤", name: "Cup with Straw", keywords: ["drink", "soda", "cup"]},
{emoji: "🐶", name: "Dog Face", keywords: ["dog", "puppy", "pet"]},
{emoji: "🐱", name: "Cat Face", keywords: ["cat", "kitten", "pet"]},
{emoji: "🐭", name: "Mouse Face", keywords: ["mouse", "pet"]},
{emoji: "🐹", name: "Hamster", keywords: ["hamster", "pet"]},
{emoji: "🐰", name: "Rabbit Face", keywords: ["rabbit", "bunny", "pet"]},
{emoji: "🦊", name: "Fox", keywords: ["fox", "animal"]},
{emoji: "🐻", name: "Bear", keywords: ["bear", "animal"]},
{emoji: "🐼", name: "Panda", keywords: ["panda", "bear", "animal"]},
{emoji: "🐨", name: "Koala", keywords: ["koala", "animal"]},
{emoji: "🐯", name: "Tiger Face", keywords: ["tiger", "animal"]},
{emoji: "🦁", name: "Lion", keywords: ["lion", "animal"]},
{emoji: "🐮", name: "Cow Face", keywords: ["cow", "animal"]},
{emoji: "🐷", name: "Pig Face", keywords: ["pig", "animal"]},
{emoji: "🐸", name: "Frog", keywords: ["frog", "animal"]},
{emoji: "🐵", name: "Monkey Face", keywords: ["monkey", "animal"]},
{emoji: "🙈", name: "See-No-Evil Monkey", keywords: ["monkey", "hide", "see no evil"]},
{emoji: "🙉", name: "Hear-No-Evil Monkey", keywords: ["monkey", "hear no evil"]},
{emoji: "🙊", name: "Speak-No-Evil Monkey", keywords: ["monkey", "speak no evil"]},
{emoji: "🐔", name: "Chicken", keywords: ["chicken", "bird"]},
{emoji: "🐧", name: "Penguin", keywords: ["penguin", "bird"]},
{emoji: "🐦", name: "Bird", keywords: ["bird"]},
{emoji: "🦆", name: "Duck", keywords: ["duck", "bird"]},
{emoji: "🦅", name: "Eagle", keywords: ["eagle", "bird"]},
{emoji: "🦉", name: "Owl", keywords: ["owl", "bird", "wise"]},
{emoji: "🦇", name: "Bat", keywords: ["bat", "animal", "vampire"]},
{emoji: "🐺", name: "Wolf", keywords: ["wolf", "animal"]},
{emoji: "🐗", name: "Boar", keywords: ["boar", "pig", "animal"]},
{emoji: "🐴", name: "Horse Face", keywords: ["horse", "animal"]},
{emoji: "🦄", name: "Unicorn", keywords: ["unicorn", "fantasy", "magic"]},
{emoji: "🐝", name: "Honeybee", keywords: ["bee", "insect"]},
{emoji: "🐛", name: "Bug", keywords: ["bug", "insect"]},
{emoji: "🦋", name: "Butterfly", keywords: ["butterfly", "insect"]},
{emoji: "🐌", name: "Snail", keywords: ["snail", "slow"]},
{emoji: "🐞", name: "Lady Beetle", keywords: ["ladybug", "insect"]},
{emoji: "🐜", name: "Ant", keywords: ["ant", "insect"]},
{emoji: "🕷️", name: "Spider", keywords: ["spider", "insect"]},
{emoji: "🕸️", name: "Spider Web", keywords: ["web", "spider"]},
{emoji: "🐢", name: "Turtle", keywords: ["turtle", "slow"]},
{emoji: "🐍", name: "Snake", keywords: ["snake", "animal"]},
{emoji: "🦎", name: "Lizard", keywords: ["lizard", "reptile"]},
{emoji: "🦖", name: "T-Rex", keywords: ["dinosaur", "t-rex", "extinct"]},
{emoji: "🦕", name: "Sauropod", keywords: ["dinosaur", "extinct"]},
{emoji: "🐙", name: "Octopus", keywords: ["octopus", "sea"]},
{emoji: "🦑", name: "Squid", keywords: ["squid", "sea"]},
{emoji: "🦐", name: "Shrimp", keywords: ["shrimp", "seafood"]},
{emoji: "🦞", name: "Lobster", keywords: ["lobster", "seafood"]},
{emoji: "🦀", name: "Crab", keywords: ["crab", "seafood"]},
{emoji: "🐡", name: "Blowfish", keywords: ["fish", "blowfish"]},
{emoji: "🐠", name: "Tropical Fish", keywords: ["fish", "tropical"]},
{emoji: "🐟", name: "Fish", keywords: ["fish"]},
{emoji: "🐬", name: "Dolphin", keywords: ["dolphin", "sea"]},
{emoji: "🐳", name: "Spouting Whale", keywords: ["whale", "sea"]},
{emoji: "🐋", name: "Whale", keywords: ["whale", "sea"]},
{emoji: "🦈", name: "Shark", keywords: ["shark", "sea"]},
{emoji: "🌸", name: "Cherry Blossom", keywords: ["flower", "spring", "pink"]},
{emoji: "💐", name: "Bouquet", keywords: ["flowers", "bouquet"]},
{emoji: "🌹", name: "Rose", keywords: ["rose", "flower", "love"]},
{emoji: "🥀", name: "Wilted Flower", keywords: ["flower", "wilted", "dead"]},
{emoji: "🌺", name: "Hibiscus", keywords: ["flower", "tropical"]},
{emoji: "🌻", name: "Sunflower", keywords: ["flower", "sunflower"]},
{emoji: "🌼", name: "Blossom", keywords: ["flower", "blossom"]},
{emoji: "🌷", name: "Tulip", keywords: ["flower", "tulip"]},
{emoji: "🌱", name: "Seedling", keywords: ["plant", "seedling", "grow"]},
{emoji: "🌲", name: "Evergreen Tree", keywords: ["tree", "pine", "forest"]},
{emoji: "🌳", name: "Deciduous Tree", keywords: ["tree", "forest"]},
{emoji: "🌴", name: "Palm Tree", keywords: ["tree", "palm", "tropical"]},
{emoji: "🌵", name: "Cactus", keywords: ["cactus", "desert"]},
{emoji: "🌾", name: "Sheaf of Rice", keywords: ["rice", "grain"]},
{emoji: "🌿", name: "Herb", keywords: ["herb", "plant", "green"]},
{emoji: "☘️", name: "Shamrock", keywords: ["shamrock", "clover", "lucky"]},
{emoji: "🍀", name: "Four Leaf Clover", keywords: ["clover", "lucky", "four leaf"]},
{emoji: "<22><>", name: "Maple Leaf", keywords: ["leaf", "maple", "fall"]},
{emoji: "🍂", name: "Fallen Leaf", keywords: ["leaf", "fall", "autumn"]},
{emoji: "🍃", name: "Leaf Fluttering in Wind", keywords: ["leaf", "wind"]},
{emoji: "🔢", name: "1234", keywords: ["1234"]},
{emoji: "🎱", name: "8Ball", keywords: ["8ball"]},
{emoji: "🅰️", name: "A", keywords: ["a"]},
{emoji: "🆎", name: "Ab", keywords: ["ab"]},
{emoji: "🧮", name: "Abaco", keywords: ["abaco"]},
{emoji: "🔤", name: "Abc", keywords: ["abc"]},
{emoji: "🔡", name: "Abcd", keywords: ["abcd"]},
{emoji: "🉑", name: "Accept", keywords: ["accept"]},
{emoji: "🚡", name: "Aerial Tramway", keywords: ["aerial tramway"]},
{emoji: "✈️", name: "Airplane", keywords: ["airplane"]},
{emoji: "👽", name: "Alien", keywords: ["alien"]},
{emoji: "🚑", name: "Ambulance", keywords: ["ambulance"]},
{emoji: "⚓", name: "Anchor", keywords: ["anchor", "hook"]},
{emoji: "👼", name: "Angel", keywords: ["angel"]},
{emoji: "💢", name: "Anger", keywords: ["anger"]},
{emoji: "🍎", name: "Apple", keywords: ["apple"]},
{emoji: "♒", name: "Aquarius", keywords: ["aquarius"]},
{emoji: "♈", name: "Aries", keywords: ["aries"]},
{emoji: "◀️", name: "Arrow Backward", keywords: ["arrow backward"]},
{emoji: "⏬", name: "Arrow Double Down", keywords: ["arrow double down"]},
{emoji: "⏫", name: "Arrow Double Up", keywords: ["arrow double up"]},
{emoji: "⬇️", name: "Arrow Down", keywords: ["arrow down"]},
{emoji: "🔽", name: "Arrow Down Small", keywords: ["arrow down small"]},
{emoji: "▶️", name: "Arrow Forward", keywords: ["arrow forward"]},
{emoji: "⤵️", name: "Arrow Heading Down", keywords: ["arrow heading down"]},
{emoji: "⤴️", name: "Arrow Heading Up", keywords: ["arrow heading up"]},
{emoji: "⬅️", name: "Arrow Left", keywords: ["arrow left"]},
{emoji: "↙️", name: "Arrow Lower Left", keywords: ["arrow lower left"]},
{emoji: "↘️", name: "Arrow Lower Right", keywords: ["arrow lower right"]},
{emoji: "➡️", name: "Arrow Right", keywords: ["arrow right"]},
{emoji: "↪️", name: "Arrow Right Hook", keywords: ["arrow right hook"]},
{emoji: "⬆️", name: "Arrow Up", keywords: ["arrow up"]},
{emoji: "↕️", name: "Arrow Up Down", keywords: ["arrow up down"]},
{emoji: "🔼", name: "Arrow Up Small", keywords: ["arrow up small"]},
{emoji: "↖️", name: "Arrow Upper Left", keywords: ["arrow upper left"]},
{emoji: "↗️", name: "Arrow Upper Right", keywords: ["arrow upper right"]},
{emoji: "🔃", name: "Arrows Clockwise", keywords: ["arrows clockwise"]},
{emoji: "🔄", name: "Arrows Counterclockwise", keywords: ["arrows counterclockwise"]},
{emoji: "🚛", name: "Articulated Lorry", keywords: ["articulated lorry"]},
{emoji: "🏧", name: "Atm", keywords: ["atm"]},
{emoji: "🅱️", name: "B", keywords: ["b"]},
{emoji: "👶", name: "Baby", keywords: ["baby"]},
{emoji: "🍼", name: "Baby Bottle", keywords: ["baby bottle"]},
{emoji: "🐤", name: "Baby Chick", keywords: ["baby chick"]},
{emoji: "🚼", name: "Baby Symbol", keywords: ["baby symbol"]},
{emoji: "🛄", name: "Baggage Claim", keywords: ["baggage claim"]},
{emoji: "☑️", name: "Ballot Box With Check", keywords: ["ballot box with check"]},
{emoji: "🎍", name: "Bamboo", keywords: ["bamboo"]},
{emoji: "🍌", name: "Banana", keywords: ["banana"]},
{emoji: "‼️", name: "Bangbang", keywords: ["bangbang"]},
{emoji: "🏦", name: "Bank", keywords: ["bank"]},
{emoji: "📊", name: "Bar Chart", keywords: ["bar chart"]},
{emoji: "💈", name: "Barber", keywords: ["barber"]},
{emoji: "⚾", name: "Baseball", keywords: ["baseball"]},
{emoji: "🏀", name: "Basketball", keywords: ["basketball"]},
{emoji: "🛀", name: "Bath", keywords: ["bath"]},
{emoji: "🛁", name: "Bathtub", keywords: ["bathtub"]},
{emoji: "🔋", name: "Battery", keywords: ["battery"]},
{emoji: "🥩", name: "Beef", keywords: ["beef"]},
{emoji: "🪲", name: "Beetle", keywords: ["beetle"]},
{emoji: "🔰", name: "Beginner", keywords: ["beginner"]},
{emoji: "🍱", name: "Bento", keywords: ["bento"]},
{emoji: "🚴", name: "Bicyclist", keywords: ["bicyclist"]},
{emoji: "🚲", name: "Bike", keywords: ["bike"]},
{emoji: "👙", name: "Bikini", keywords: ["bikini"]},
{emoji: "⚫", name: "Black Circle", keywords: ["black circle"]},
{emoji: "✒️", name: "Black Nib", keywords: ["black nib"]},
{emoji: "🔲", name: "Black Square Button", keywords: ["black square button"]},
{emoji: "📘", name: "Blue Book", keywords: ["blue book"]},
{emoji: "🚙", name: "Blue Car", keywords: ["blue car"]},
{emoji: "⛵", name: "Boat", keywords: ["boat"]},
{emoji: "💣", name: "Bomb", keywords: ["bomb"]},
{emoji: "📑", name: "Bookmark Tabs", keywords: ["bookmark tabs"]},
{emoji: "👢", name: "Boot", keywords: ["boot"]},
{emoji: "🙇", name: "Bow", keywords: ["bow"]},
{emoji: "🎳", name: "Bowling", keywords: ["bowling"]},
{emoji: "👦", name: "Boy", keywords: ["boy"]},
{emoji: "🍞", name: "Bread", keywords: ["bread"]},
{emoji: "🌉", name: "Bridge At Night", keywords: ["bridge at night"]},
{emoji: "💼", name: "Briefcase", keywords: ["briefcase"]},
{emoji: "🚅", name: "Bullettrain Front", keywords: ["bullettrain front"]},
{emoji: "🚄", name: "Bullettrain Side", keywords: ["bullettrain side"]},
{emoji: "🚌", name: "Bus", keywords: ["bus"]},
{emoji: "🚏", name: "Busstop", keywords: ["busstop"]},
{emoji: "👤", name: "Bust In Silhouette", keywords: ["bust in silhouette"]},
{emoji: "👥", name: "Busts In Silhouette", keywords: ["busts in silhouette"]},
{emoji: "📆", name: "Calendar", keywords: ["calendar"]},
{emoji: "📲", name: "Calling", keywords: ["calling"]},
{emoji: "🐫", name: "Camel", keywords: ["camel"]},
{emoji: "♋", name: "Cancer", keywords: ["cancer"]},
{emoji: "🍬", name: "Candy", keywords: ["candy"]},
{emoji: "🔠", name: "Capital Abcd", keywords: ["capital abcd"]},
{emoji: "♑", name: "Capricorn", keywords: ["capricorn"]},
{emoji: "🚗", name: "Car", keywords: ["car"]},
{emoji: "📇", name: "Card Index", keywords: ["card index"]},
{emoji: "🎠", name: "Carousel Horse", keywords: ["carousel horse"]},
{emoji: "🐈", name: "Cat2", keywords: ["cat2"]},
{emoji: "💿", name: "Cd", keywords: ["cd"]},
{emoji: "💹", name: "Chart", keywords: ["chart"]},
{emoji: "📉", name: "Chart With Downwards Trend", keywords: ["chart with downwards trend"]},
{emoji: "📈", name: "Chart With Upwards Trend", keywords: ["chart with upwards trend"]},
{emoji: "✔", name: "Check", keywords: ["check"]},
{emoji: "🏁", name: "Checkered Flag", keywords: ["checkered flag"]},
{emoji: "🍒", name: "Cherries", keywords: ["cherries"]},
{emoji: "🌰", name: "Chestnut", keywords: ["chestnut"]},
{emoji: "🚸", name: "Children Crossing", keywords: ["children crossing"]},
{emoji: "🍫", name: "Chocolate Bar", keywords: ["chocolate bar"]},
{emoji: "🎄", name: "Christmas Tree", keywords: ["christmas tree"]},
{emoji: "⛪", name: "Church", keywords: ["church"]},
{emoji: "🎦", name: "Cinema", keywords: ["cinema"]},
{emoji: "🎪", name: "Circus Tent", keywords: ["circus tent"]},
{emoji: "🌇", name: "City Sunrise", keywords: ["city sunrise"]},
{emoji: "🌆", name: "City Sunset", keywords: ["city sunset"]},
{emoji: "🆑", name: "Cl", keywords: ["cl"]},
{emoji: "👏", name: "Clap", keywords: ["clap"]},
{emoji: "🕐", name: "Clock1", keywords: ["clock1"]},
{emoji: "🕙", name: "Clock10", keywords: ["clock10"]},
{emoji: "🕥", name: "Clock1030", keywords: ["clock1030"]},
{emoji: "🕚", name: "Clock11", keywords: ["clock11"]},
{emoji: "🕦", name: "Clock1130", keywords: ["clock1130"]},
{emoji: "🕛", name: "Clock12", keywords: ["clock12"]},
{emoji: "🕧", name: "Clock1230", keywords: ["clock1230"]},
{emoji: "🕜", name: "Clock130", keywords: ["clock130"]},
{emoji: "🕑", name: "Clock2", keywords: ["clock2"]},
{emoji: "🕝", name: "Clock230", keywords: ["clock230"]},
{emoji: "🕒", name: "Clock3", keywords: ["clock3"]},
{emoji: "🕞", name: "Clock330", keywords: ["clock330"]},
{emoji: "🕓", name: "Clock4", keywords: ["clock4"]},
{emoji: "🕟", name: "Clock430", keywords: ["clock430"]},
{emoji: "🕔", name: "Clock5", keywords: ["clock5"]},
{emoji: "🕠", name: "Clock530", keywords: ["clock530"]},
{emoji: "🕕", name: "Clock6", keywords: ["clock6"]},
{emoji: "🕡", name: "Clock630", keywords: ["clock630"]},
{emoji: "🕖", name: "Clock7", keywords: ["clock7"]},
{emoji: "🕢", name: "Clock730", keywords: ["clock730"]},
{emoji: "🕗", name: "Clock8", keywords: ["clock8"]},
{emoji: "🕣", name: "Clock830", keywords: ["clock830"]},
{emoji: "🕘", name: "Clock9", keywords: ["clock9"]},
{emoji: "🕤", name: "Clock930", keywords: ["clock930"]},
{emoji: "📕", name: "Closed Book", keywords: ["closed book"]},
{emoji: "🔐", name: "Closed Lock With Key", keywords: ["closed lock with key"]},
{emoji: "🌂", name: "Closed Umbrella", keywords: ["closed umbrella"]},
{emoji: "☁️", name: "Cloud", keywords: ["cloud"]},
{emoji: "♣️", name: "Clubs", keywords: ["clubs"]},
{emoji: "🇨🇳", name: "Cn", keywords: ["cn"]},
{emoji: "🍸", name: "Cocktail", keywords: ["cocktail"]},
{emoji: "㊗️", name: "Congratulations", keywords: ["congratulations"]},
{emoji: "🚧", name: "Construction", keywords: ["construction"]},
{emoji: "👷", name: "Construction Worker", keywords: ["construction worker"]},
{emoji: "🏪", name: "Convenience Store", keywords: ["convenience store"]},
{emoji: "🆒", name: "Cool", keywords: ["cool"]},
{emoji: "👮", name: "Cop", keywords: ["cop"]},
{emoji: "©️", name: "Copyright", keywords: ["copyright"]},
{emoji: "🌽", name: "Corn", keywords: ["corn"]},
{emoji: "👫", name: "Couple", keywords: ["couple"]},
{emoji: "💑", name: "Couple With Heart", keywords: ["couple with heart"]},
{emoji: "💏", name: "Couplekiss", keywords: ["couplekiss"]},
{emoji: "🐄", name: "Cow2", keywords: ["cow2"]},
{emoji: "💳", name: "Credit Card", keywords: ["credit card"]},
{emoji: "🐊", name: "Crocodile", keywords: ["crocodile"]},
{emoji: "🎌", name: "Crossed Flags", keywords: ["crossed flags"]},
{emoji: "😿", name: "Crying Cat Face", keywords: ["crying cat face"]},
{emoji: "🔮", name: "Crystal Ball", keywords: ["crystal ball"]},
{emoji: "➰", name: "Curly Loop", keywords: ["curly loop"]},
{emoji: "💱", name: "Currency Exchange", keywords: ["currency exchange"]},
{emoji: "🍛", name: "Curry", keywords: ["curry"]},
{emoji: "🍮", name: "Custard", keywords: ["custard"]},
{emoji: "🛃", name: "Customs", keywords: ["customs"]},
{emoji: "🌀", name: "Cyclone", keywords: ["cyclone"]},
{emoji: "💃", name: "Dancer", keywords: ["dancer"]},
{emoji: "👯", name: "Dancers", keywords: ["dancers"]},
{emoji: "🍡", name: "Dango", keywords: ["dango"]},
{emoji: "📅", name: "Date", keywords: ["date"]},
{emoji: "🇩🇪", name: "De", keywords: ["de"]},
{emoji: "🏬", name: "Department Store", keywords: ["department store"]},
{emoji: "💠", name: "Diamond Shape With A Dot Inside", keywords: ["diamond shape with a dot inside"]},
{emoji: "♦️", name: "Diamonds", keywords: ["diamonds"]},
{emoji: "🚯", name: "Do Not Litter", keywords: ["do not litter"]},
{emoji: "📄", name: "Document", keywords: ["document"]},
{emoji: "🐕", name: "Dog2", keywords: ["dog2"]},
{emoji: "💵", name: "Dollar", keywords: ["dollar"]},
{emoji: "🎎", name: "Dolls", keywords: ["dolls"]},
{emoji: "🚪", name: "Door", keywords: ["door"]},
{emoji: "🐉", name: "Dragon", keywords: ["dragon"]},
{emoji: "🐲", name: "Dragon Face", keywords: ["dragon face"]},
{emoji: "👗", name: "Dress", keywords: ["dress"]},
{emoji: "🐪", name: "Dromedary Camel", keywords: ["dromedary camel"]},
{emoji: "💧", name: "Droplet", keywords: ["droplet"]},
{emoji: "📀", name: "Dvd", keywords: ["dvd"]},
{emoji: "👂", name: "Ear", keywords: ["ear"]},
{emoji: "🌍", name: "Earth Africa", keywords: ["earth africa"]},
{emoji: "🌎", name: "Earth Americas", keywords: ["earth americas"]},
{emoji: "🌏", name: "Earth Asia", keywords: ["earth asia"]},
{emoji: "🥚", name: "Egg", keywords: ["egg"]},
{emoji: "🍆", name: "Eggplant", keywords: ["eggplant"]},
{emoji: "8⃣", name: "Eight", keywords: ["eight"]},
{emoji: "✴️", name: "Eight Pointed Black Star", keywords: ["eight pointed black star"]},
{emoji: "✳️", name: "Eight Spoked Asterisk", keywords: ["eight spoked asterisk"]},
{emoji: "🔌", name: "Electric Plug", keywords: ["electric plug"]},
{emoji: "🐘", name: "Elephant", keywords: ["elephant"]},
{emoji: "📧", name: "Email", keywords: ["email"]},
{emoji: "🔚", name: "End", keywords: ["end"]},
{emoji: "✉️", name: "Envelope", keywords: ["envelope"]},
{emoji: "🇪🇸", name: "Es", keywords: ["es"]},
{emoji: "💶", name: "Euro", keywords: ["euro"]},
{emoji: "🏰", name: "European Castle", keywords: ["european castle"]},
{emoji: "🏤", name: "European Post Office", keywords: ["european post office"]},
{emoji: "👓", name: "Eyeglasses", keywords: ["eyeglasses"]},
{emoji: "👀", name: "Eyes", keywords: ["eyes"]},
{emoji: "🏭", name: "Factory", keywords: ["factory"]},
{emoji: "👪", name: "Family", keywords: ["family"]},
{emoji: "⏩", name: "Fast Forward", keywords: ["fast forward"]},
{emoji: "📠", name: "Fax", keywords: ["fax"]},
{emoji: "🐾", name: "Feet", keywords: ["feet"]},
{emoji: "🎡", name: "Ferris Wheel", keywords: ["ferris wheel"]},
{emoji: "📁", name: "File Folder", keywords: ["file folder"]},
{emoji: "🚒", name: "Fire Engine", keywords: ["fire engine"]},
{emoji: "🎆", name: "Fireworks", keywords: ["fireworks"]},
{emoji: "🌓", name: "First Quarter Moon", keywords: ["first quarter moon"]},
{emoji: "🌛", name: "First Quarter Moon With Face", keywords: ["first quarter moon with face"]},
{emoji: "🍥", name: "Fish Cake", keywords: ["fish cake"]},
{emoji: "🎣", name: "Fishing Pole And Fish", keywords: ["fishing pole and fish"]},
{emoji: "5⃣", name: "Five", keywords: ["five"]},
{emoji: "🎏", name: "Flags", keywords: ["flags"]},
{emoji: "🔦", name: "Flashlight", keywords: ["flashlight"]},
{emoji: "💾", name: "Floppy Disk", keywords: ["floppy disk"]},
{emoji: "🎴", name: "Flower Playing Cards", keywords: ["flower playing cards"]},
{emoji: "🌁", name: "Foggy", keywords: ["foggy"]},
{emoji: "🏈", name: "Football", keywords: ["football"]},
{emoji: "🍴", name: "Fork And Knife", keywords: ["fork and knife"]},
{emoji: "⛲", name: "Fountain", keywords: ["fountain"]},
{emoji: "4⃣", name: "Four", keywords: ["four"]},
{emoji: "🇫🇷", name: "Fr", keywords: ["fr"]},
{emoji: "🆓", name: "Free", keywords: ["free"]},
{emoji: "🍤", name: "Fried Shrimp", keywords: ["fried shrimp"]},
{emoji: "🖕", name: "Fu", keywords: ["fu"]},
{emoji: "⛽", name: "Fuelpump", keywords: ["fuelpump"]},
{emoji: "🌕", name: "Full Moon", keywords: ["full moon"]},
{emoji: "🌝", name: "Full Moon With Face", keywords: ["full moon with face"]},
{emoji: "🇬🇧", name: "Gb", keywords: ["gb"]},
{emoji: "♊", name: "Gemini", keywords: ["gemini"]},
{emoji: "👻", name: "Ghost", keywords: ["ghost"]},
{emoji: "👧", name: "Girl", keywords: ["girl"]},
{emoji: "🌐", name: "Globe With Meridians", keywords: ["globe with meridians"]},
{emoji: "🐐", name: "Goat", keywords: ["goat"]},
{emoji: "⛳", name: "Golf", keywords: ["golf"]},
{emoji: "🍇", name: "Grapes", keywords: ["grapes"]},
{emoji: "🍏", name: "Green Apple", keywords: ["green apple"]},
{emoji: "📗", name: "Green Book", keywords: ["green book"]},
{emoji: "❕", name: "Grey Exclamation", keywords: ["grey exclamation"]},
{emoji: "❔", name: "Grey Question", keywords: ["grey question"]},
{emoji: "💂", name: "Guardsman", keywords: ["guardsman"]},
{emoji: "🎸", name: "Guitar", keywords: ["guitar"]},
{emoji: "🔫", name: "Gun", keywords: ["gun"]},
{emoji: "💇", name: "Haircut", keywords: ["haircut"]},
{emoji: "🔨", name: "Hammer", keywords: ["hammer"]},
{emoji: "👜", name: "Handbag", keywords: ["handbag"]},
{emoji: "💩", name: "Hankey", keywords: ["hankey"]},
{emoji: "#️⃣", name: "Hash", keywords: ["hash"]},
{emoji: "🐥", name: "Hatched Chick", keywords: ["hatched chick"]},
{emoji: "🐣", name: "Hatching Chick", keywords: ["hatching chick"]},
{emoji: "🎧", name: "Headphones", keywords: ["headphones"]},
{emoji: "💟", name: "Heart Decoration", keywords: ["heart decoration"]},
{emoji: "😻", name: "Heart Eyes Cat", keywords: ["heart eyes cat"]},
{emoji: "♥️", name: "Hearts", keywords: ["hearts"]},
{emoji: "✔️", name: "Heavy Check Mark", keywords: ["heavy check mark"]},
{emoji: "➗", name: "Heavy Division Sign", keywords: ["heavy division sign"]},
{emoji: "💲", name: "Heavy Dollar Sign", keywords: ["heavy dollar sign"]},
{emoji: "", name: "Heavy Minus Sign", keywords: ["heavy minus sign"]},
{emoji: "✖️", name: "Heavy Multiplication X", keywords: ["heavy multiplication x"]},
{emoji: "", name: "Heavy Plus Sign", keywords: ["heavy plus sign"]},
{emoji: "🚁", name: "Helicopter", keywords: ["helicopter"]},
{emoji: "🔆", name: "High Brightness", keywords: ["high brightness"]},
{emoji: "👠", name: "High Heel", keywords: ["high heel"]},
{emoji: "🔪", name: "Hocho", keywords: ["hocho"]},
{emoji: "🍯", name: "Honey Pot", keywords: ["honey pot"]},
{emoji: "🏇", name: "Horse Racing", keywords: ["horse racing"]},
{emoji: "🏥", name: "Hospital", keywords: ["hospital"]},
{emoji: "🏨", name: "Hotel", keywords: ["hotel"]},
{emoji: "♨️", name: "Hotsprings", keywords: ["hotsprings"]},
{emoji: "⌛", name: "Hourglass", keywords: ["hourglass"]},
{emoji: "⏳", name: "Hourglass Flowing Sand", keywords: ["hourglass flowing sand"]},
{emoji: "🏠", name: "House", keywords: ["house"]},
{emoji: "🏡", name: "House With Garden", keywords: ["house with garden"]},
{emoji: "🆔", name: "Id", keywords: ["id"]},
{emoji: "🉐", name: "Ideograph Advantage", keywords: ["ideograph advantage"]},
{emoji: "👿", name: "Imp", keywords: ["imp"]},
{emoji: "📥", name: "Inbox Tray", keywords: ["inbox tray"]},
{emoji: "📨", name: "Incoming Envelope", keywords: ["incoming envelope"]},
{emoji: "💁", name: "Information Desk Person", keywords: ["information desk person"]},
{emoji: "", name: "Information Source", keywords: ["information source"]},
{emoji: "⁉️", name: "Interrobang", keywords: ["interrobang"]},
{emoji: "🇮🇹", name: "It", keywords: ["it"]},
{emoji: "🏮", name: "Izakaya Lantern", keywords: ["izakaya lantern"]},
{emoji: "🎃", name: "Jack O Lantern", keywords: ["jack o lantern"]},
{emoji: "🗾", name: "Japan", keywords: ["japan"]},
{emoji: "🏯", name: "Japanese Castle", keywords: ["japanese castle"]},
{emoji: "👺", name: "Japanese Goblin", keywords: ["japanese goblin"]},
{emoji: "👹", name: "Japanese Ogre", keywords: ["japanese ogre"]},
{emoji: "👖", name: "Jeans", keywords: ["jeans"]},
{emoji: "😹", name: "Joy Cat", keywords: ["joy cat"]},
{emoji: "🇯🇵", name: "Jp", keywords: ["jp"]},
{emoji: "🔑", name: "Key", keywords: ["key"]},
{emoji: "🔟", name: "Keycap Ten", keywords: ["keycap ten"]},
{emoji: "👘", name: "Kimono", keywords: ["kimono"]},
{emoji: "💋", name: "Kiss", keywords: ["kiss"]},
{emoji: "😽", name: "Kissing Cat", keywords: ["kissing cat"]},
{emoji: "🈁", name: "Koko", keywords: ["koko"]},
{emoji: "🇰🇷", name: "Kr", keywords: ["kr"]},
{emoji: "🔵", name: "Large Blue Circle", keywords: ["large blue circle"]},
{emoji: "🔷", name: "Large Blue Diamond", keywords: ["large blue diamond"]},
{emoji: "🔶", name: "Large Orange Diamond", keywords: ["large orange diamond"]},
{emoji: "🌗", name: "Last Quarter Moon", keywords: ["last quarter moon"]},
{emoji: "🌜", name: "Last Quarter Moon With Face", keywords: ["last quarter moon with face"]},
{emoji: "📒", name: "Ledger", keywords: ["ledger"]},
{emoji: "🛅", name: "Left Luggage", keywords: ["left luggage"]},
{emoji: "↔️", name: "Left Right Arrow", keywords: ["left right arrow"]},
{emoji: "↩️", name: "Leftwards Arrow With Hook", keywords: ["leftwards arrow with hook"]},
{emoji: "🍋", name: "Lemon", keywords: ["lemon"]},
{emoji: "♌", name: "Leo", keywords: ["leo"]},
{emoji: "🐆", name: "Leopard", keywords: ["leopard"]},
{emoji: "♎", name: "Libra", keywords: ["libra"]},
{emoji: "🚈", name: "Light Rail", keywords: ["light rail"]},
{emoji: "🔗", name: "Link", keywords: ["link"]},
{emoji: "👄", name: "Lips", keywords: ["lips"]},
{emoji: "💄", name: "Lipstick", keywords: ["lipstick"]},
{emoji: "🔒", name: "Lock", keywords: ["lock"]},
{emoji: "🔏", name: "Lock With Ink Pen", keywords: ["lock with ink pen"]},
{emoji: "🍭", name: "Lollipop", keywords: ["lollipop"]},
{emoji: "➿", name: "Loop", keywords: ["loop"]},
{emoji: "📢", name: "Loudspeaker", keywords: ["loudspeaker"]},
{emoji: "🏩", name: "Love Hotel", keywords: ["love hotel"]},
{emoji: "💌", name: "Love Letter", keywords: ["love letter"]},
{emoji: "🔅", name: "Low Brightness", keywords: ["low brightness"]},
{emoji: "ⓜ️", name: "M", keywords: ["m"]},
{emoji: "🀄", name: "Mahjong", keywords: ["mahjong"]},
{emoji: "📫", name: "Mailbox", keywords: ["mailbox"]},
{emoji: "📪", name: "Mailbox Closed", keywords: ["mailbox closed"]},
{emoji: "📬", name: "Mailbox With Mail", keywords: ["mailbox with mail"]},
{emoji: "📭", name: "Mailbox With No Mail", keywords: ["mailbox with no mail"]},
{emoji: "👨", name: "Man", keywords: ["man"]},
{emoji: "👲", name: "Man With Gua Pi Mao", keywords: ["man with gua pi mao"]},
{emoji: "👳", name: "Man With Turban", keywords: ["man with turban"]},
{emoji: "🍁", name: "Maple Leaf", keywords: ["maple leaf"]},
{emoji: "♂️", name: "Masculine", keywords: ["masculine"]},
{emoji: "💆", name: "Massage", keywords: ["massage"]},
{emoji: "🍖", name: "Meat On Bone", keywords: ["meat on bone"]},
{emoji: "📣", name: "Mega", keywords: ["mega"]},
{emoji: "🍈", name: "Melon", keywords: ["melon"]},
{emoji: "🚹", name: "Mens", keywords: ["mens"]},
{emoji: "🚇", name: "Metro", keywords: ["metro"]},
{emoji: "🎤", name: "Microphone", keywords: ["microphone"]},
{emoji: "🔬", name: "Microscope", keywords: ["microscope"]},
{emoji: "🌌", name: "Milky Way", keywords: ["milky way"]},
{emoji: "🚐", name: "Minibus", keywords: ["minibus"]},
{emoji: "💽", name: "Minidisc", keywords: ["minidisc"]},
{emoji: "📴", name: "Mobile Phone Off", keywords: ["mobile phone off"]},
{emoji: "💸", name: "Money With Wings", keywords: ["money with wings"]},
{emoji: "💰", name: "Moneybag", keywords: ["moneybag"]},
{emoji: "🐒", name: "Monkey", keywords: ["monkey"]},
{emoji: "🚝", name: "Monorail", keywords: ["monorail"]},
{emoji: "🗻", name: "Mount Fuji", keywords: ["mount fuji"]},
{emoji: "🚵", name: "Mountain Bicyclist", keywords: ["mountain bicyclist"]},
{emoji: "🚠", name: "Mountain Cableway", keywords: ["mountain cableway"]},
{emoji: "🚞", name: "Mountain Railway", keywords: ["mountain railway"]},
{emoji: "🐁", name: "Mouse2", keywords: ["mouse2"]},
{emoji: "🎥", name: "Movie Camera", keywords: ["movie camera"]},
{emoji: "🗿", name: "Moyai", keywords: ["moyai"]},
{emoji: "💪", name: "Muscle", keywords: ["muscle"]},
{emoji: "🍄", name: "Mushroom", keywords: ["mushroom"]},
{emoji: "🎹", name: "Musical Keyboard", keywords: ["musical keyboard"]},
{emoji: "🎼", name: "Musical Score", keywords: ["musical score"]},
{emoji: "🔇", name: "Mute", keywords: ["mute"]},
{emoji: "💅", name: "Nail Care", keywords: ["nail care"]},
{emoji: "📛", name: "Name Badge", keywords: ["name badge"]},
{emoji: "👔", name: "Necktie", keywords: ["necktie"]},
{emoji: "❎", name: "Negative Squared Cross Mark", keywords: ["negative squared cross mark"]},
{emoji: "🆕", name: "New", keywords: ["new"]},
{emoji: "🌑", name: "New Moon", keywords: ["new moon"]},
{emoji: "🌚", name: "New Moon With Face", keywords: ["new moon with face"]},
{emoji: "📰", name: "Newspaper", keywords: ["newspaper"]},
{emoji: "🆖", name: "Ng", keywords: ["ng"]},
{emoji: "9⃣", name: "Nine", keywords: ["nine"]},
{emoji: "🚳", name: "No Bicycles", keywords: ["no bicycles"]},
{emoji: "⛔", name: "No Entry", keywords: ["no entry"]},
{emoji: "🚫", name: "No Entry Sign", keywords: ["no entry sign"]},
{emoji: "🙅", name: "No Good", keywords: ["no good"]},
{emoji: "📵", name: "No Mobile Phones", keywords: ["no mobile phones"]},
{emoji: "🚷", name: "No Pedestrians", keywords: ["no pedestrians"]},
{emoji: "🚭", name: "No Smoking", keywords: ["no smoking"]},
{emoji: "🚱", name: "Non-Potable Water", keywords: ["non-potable water"]},
{emoji: "👃", name: "Nose", keywords: ["nose"]},
{emoji: "📓", name: "Notebook", keywords: ["notebook"]},
{emoji: "📔", name: "Notebook With Decorative Cover", keywords: ["notebook with decorative cover"]},
{emoji: "🔩", name: "Nut And Bolt", keywords: ["nut and bolt"]},
{emoji: "⭕", name: "O", keywords: ["o"]},
{emoji: "🅾️", name: "O2", keywords: ["o2"]},
{emoji: "🌊", name: "Ocean", keywords: ["ocean"]},
{emoji: "🍢", name: "Oden", keywords: ["oden"]},
{emoji: "🏢", name: "Office", keywords: ["office"]},
{emoji: "🆗", name: "Ok", keywords: ["ok"]},
{emoji: "♀️", name: "Ok Woman", keywords: ["ok woman"]},
{emoji: "👴", name: "Older Man", keywords: ["older man"]},
{emoji: "👵", name: "Older Woman", keywords: ["older woman"]},
{emoji: "🔛", name: "On", keywords: ["on"]},
{emoji: "🚘", name: "Oncoming Automobile", keywords: ["oncoming automobile"]},
{emoji: "🚍", name: "Oncoming Bus", keywords: ["oncoming bus"]},
{emoji: "🚔", name: "Oncoming Police Car", keywords: ["oncoming police car"]},
{emoji: "🚖", name: "Oncoming Taxi", keywords: ["oncoming taxi"]},
{emoji: "1⃣", name: "One", keywords: ["one"]},
{emoji: "📂", name: "Open File Folder", keywords: ["open file folder"]},
{emoji: "👐", name: "Open Hands", keywords: ["open hands"]},
{emoji: "⛎", name: "Ophiuchus", keywords: ["ophiuchus"]},
{emoji: "📙", name: "Orange Book", keywords: ["orange book"]},
{emoji: "📤", name: "Outbox Tray", keywords: ["outbox tray"]},
{emoji: "🐂", name: "Ox", keywords: ["ox", "gnu"]},
{emoji: "📦", name: "Package", keywords: ["package"]},
{emoji: "📃", name: "Page With Curl", keywords: ["page with curl"]},
{emoji: "📟", name: "Pager", keywords: ["pager"]},
{emoji: "📎", name: "Paperclip", keywords: ["paperclip"]},
{emoji: "🅿️", name: "Parking", keywords: ["parking"]},
{emoji: "〽️", name: "Part Alternation Mark", keywords: ["part alternation mark"]},
{emoji: "⛅", name: "Partly Sunny", keywords: ["partly sunny"]},
{emoji: "🛂", name: "Passport Control", keywords: ["passport control"]},
{emoji: "🍑", name: "Peach", keywords: ["peach"]},
{emoji: "🍐", name: "Pear", keywords: ["pear"]},
{emoji: "🎭", name: "Performing Arts", keywords: ["performing arts"]},
{emoji: "🐽", name: "Pig Nose", keywords: ["pig nose"]},
{emoji: "🐖", name: "Pig2", keywords: ["pig2"]},
{emoji: "💊", name: "Pill", keywords: ["pill"]},
{emoji: "🍍", name: "Pineapple", keywords: ["pineapple"]},
{emoji: "♓", name: "Pisces", keywords: ["pisces"]},
{emoji: "⚙", name: "Plugins", keywords: ["plugins"]},
{emoji: "🚓", name: "Police Car", keywords: ["police car"]},
{emoji: "🐩", name: "Poodle", keywords: ["poodle"]},
{emoji: "🏣", name: "Post Office", keywords: ["post office"]},
{emoji: "📯", name: "Postal Horn", keywords: ["postal horn"]},
{emoji: "📮", name: "Postbox", keywords: ["postbox"]},
{emoji: "🚰", name: "Potable Water", keywords: ["potable water"]},
{emoji: "👝", name: "Pouch", keywords: ["pouch"]},
{emoji: "🍗", name: "Poultry Leg", keywords: ["poultry leg"]},
{emoji: "💷", name: "Pound", keywords: ["pound"]},
{emoji: "😾", name: "Pouting Cat", keywords: ["pouting cat"]},
{emoji: "🙏", name: "Pray", keywords: ["pray"]},
{emoji: "👸", name: "Princess", keywords: ["princess"]},
{emoji: "👛", name: "Purse", keywords: ["purse"]},
{emoji: "🚮", name: "Put Litter In Its Place", keywords: ["put litter in its place"]},
{emoji: "🐇", name: "Rabbit2", keywords: ["rabbit2"]},
{emoji: "🐎", name: "Racehorse", keywords: ["racehorse"]},
{emoji: "📻", name: "Radio", keywords: ["radio"]},
{emoji: "🔘", name: "Radio Button", keywords: ["radio button"]},
{emoji: "🚃", name: "Railway Car", keywords: ["railway car"]},
{emoji: "🙌", name: "Raised Hands", keywords: ["raised hands"]},
{emoji: "🙋", name: "Raising Hand", keywords: ["raising hand"]},
{emoji: "🐏", name: "Ram", keywords: ["ram"]},
{emoji: "🍜", name: "Ramen", keywords: ["ramen"]},
{emoji: "🐀", name: "Rat", keywords: ["rat"]},
{emoji: "♻️", name: "Recycle", keywords: ["recycle"]},
{emoji: "🔴", name: "Red Circle", keywords: ["red circle"]},
{emoji: "®️", name: "Registered", keywords: ["registered"]},
{emoji: "☺️", name: "Relaxed", keywords: ["relaxed"]},
{emoji: "😌", name: "Relieved", keywords: ["relieved"]},
{emoji: "🔁", name: "Repeat", keywords: ["repeat"]},
{emoji: "🔂", name: "Repeat One", keywords: ["repeat one"]},
{emoji: "🚻", name: "Restroom", keywords: ["restroom"]},
{emoji: "⏪", name: "Rewind", keywords: ["rewind"]},
{emoji: "🎀", name: "Ribbon", keywords: ["ribbon"]},
{emoji: "🍚", name: "Rice", keywords: ["rice"]},
{emoji: "🍙", name: "Rice Ball", keywords: ["rice ball"]},
{emoji: "🍘", name: "Rice Cracker", keywords: ["rice cracker"]},
{emoji: "🎑", name: "Rice Scene", keywords: ["rice scene"]},
{emoji: "💍", name: "Ring", keywords: ["ring"]},
{emoji: "🎢", name: "Roller Coaster", keywords: ["roller coaster"]},
{emoji: "🐓", name: "Rooster", keywords: ["rooster"]},
{emoji: "🚨", name: "Rotating Light", keywords: ["rotating light"]},
{emoji: "🚣", name: "Rowboat", keywords: ["rowboat"]},
{emoji: "🇷🇺", name: "Ru", keywords: ["ru"]},
{emoji: "🏉", name: "Rugby Football", keywords: ["rugby football"]},
{emoji: "🏃", name: "Runner", keywords: ["runner"]},
{emoji: "🎽", name: "Running Shirt With Sash", keywords: ["running shirt with sash"]},
{emoji: "🈂️", name: "Sa", keywords: ["sa"]},
{emoji: "♐", name: "Sagittarius", keywords: ["sagittarius"]},
{emoji: "🍶", name: "Sake", keywords: ["sake"]},
{emoji: "👡", name: "Sandal", keywords: ["sandal"]},
{emoji: "🙆", name: "Santa", keywords: ["santa"]},
{emoji: "🎅", name: "Santa", keywords: ["santa"]},
{emoji: "👰", name: "Santa Wo", keywords: ["santa wo"]},
{emoji: "📡", name: "Satellite", keywords: ["satellite"]},
{emoji: "🎷", name: "Saxophone", keywords: ["saxophone"]},
{emoji: "🏫", name: "School", keywords: ["school"]},
{emoji: "🎒", name: "School Satchel", keywords: ["school satchel"]},
{emoji: "✂️", name: "Scissors", keywords: ["scissors"]},
{emoji: "♏", name: "Scorpius", keywords: ["scorpius"]},
{emoji: "🙀", name: "Scream Cat", keywords: ["scream cat"]},
{emoji: "📜", name: "Scroll", keywords: ["scroll"]},
{emoji: "💺", name: "Seat", keywords: ["seat"]},
{emoji: "㊙️", name: "Secret", keywords: ["secret"]},
{emoji: "7⃣", name: "Seven", keywords: ["seven"]},
{emoji: "🍧", name: "Shaved Ice", keywords: ["shaved ice"]},
{emoji: "🐑", name: "Sheep", keywords: ["sheep"]},
{emoji: "🐚", name: "Shell", keywords: ["shell"]},
{emoji: "🚢", name: "Ship", keywords: ["ship"]},
{emoji: "👕", name: "Shirt", keywords: ["shirt"]},
{emoji: "👞", name: "Shoe", keywords: ["shoe"]},
{emoji: "🚿", name: "Shower", keywords: ["shower"]},
{emoji: "📶", name: "Signal Strength", keywords: ["signal strength"]},
{emoji: "6⃣", name: "Six", keywords: ["six"]},
{emoji: "🔯", name: "Six Pointed Star", keywords: ["six pointed star"]},
{emoji: "🎿", name: "Ski", keywords: ["ski"]},
{emoji: "💀", name: "Skull", keywords: ["skull"]},
{emoji: "🎰", name: "Slot Machine", keywords: ["slot machine"]},
{emoji: "🔹", name: "Small Blue Diamond", keywords: ["small blue diamond"]},
{emoji: "🔸", name: "Small Orange Diamond", keywords: ["small orange diamond"]},
{emoji: "🔺", name: "Small Red Triangle", keywords: ["small red triangle"]},
{emoji: "🔻", name: "Small Red Triangle Down", keywords: ["small red triangle down"]},
{emoji: "😸", name: "Smile Cat", keywords: ["smile cat"]},
{emoji: "😺", name: "Smiley Cat", keywords: ["smiley cat"]},
{emoji: "😈", name: "Smiling Imp", keywords: ["smiling imp"]},
{emoji: "😼", name: "Smirk Cat", keywords: ["smirk cat"]},
{emoji: "🚬", name: "Smoking", keywords: ["smoking"]},
{emoji: "🏂", name: "Snowboarder", keywords: ["snowboarder"]},
{emoji: "❄️", name: "Snowflake", keywords: ["snowflake"]},
{emoji: "⛄", name: "Snowman", keywords: ["snowman"]},
{emoji: "⚽", name: "Soccer", keywords: ["soccer"]},
{emoji: "🔜", name: "Soon", keywords: ["soon"]},
{emoji: "🆘", name: "Sos", keywords: ["sos"]},
{emoji: "🔉", name: "Sound", keywords: ["sound"]},
{emoji: "👾", name: "Space Invader", keywords: ["space invader"]},
{emoji: "♠️", name: "Spades", keywords: ["spades"]},
{emoji: "🍝", name: "Spaghetti", keywords: ["spaghetti"]},
{emoji: "🎇", name: "Sparkler", keywords: ["sparkler"]},
{emoji: "🔈", name: "Speaker", keywords: ["speaker"]},
{emoji: "💬", name: "Speech Balloon", keywords: ["speech balloon"]},
{emoji: "🚤", name: "Speedboat", keywords: ["speedboat"]},
{emoji: "🌠", name: "Stars", keywords: ["stars"]},
{emoji: "🚉", name: "Station", keywords: ["station"]},
{emoji: "🗽", name: "Statue Of Liberty", keywords: ["statue of liberty"]},
{emoji: "🚂", name: "Steam Locomotive", keywords: ["steam locomotive"]},
{emoji: "🍲", name: "Stew", keywords: ["stew"]},
{emoji: "📏", name: "Straight Ruler", keywords: ["straight ruler"]},
{emoji: "🍓", name: "Strawberry", keywords: ["strawberry"]},
{emoji: "🌞", name: "Sun With Face", keywords: ["sun with face"]},
{emoji: "🌅", name: "Sunrise", keywords: ["sunrise"]},
{emoji: "🌄", name: "Sunrise Over Mountains", keywords: ["sunrise over mountains"]},
{emoji: "🏄", name: "Surfer", keywords: ["surfer"]},
{emoji: "🍣", name: "Sushi", keywords: ["sushi"]},
{emoji: "🚟", name: "Suspension Railway", keywords: ["suspension railway"]},
{emoji: "🍠", name: "Sweet Potato", keywords: ["sweet potato"]},
{emoji: "🏊", name: "Swimmer", keywords: ["swimmer"]},
{emoji: "🔣", name: "Symbols", keywords: ["symbols"]},
{emoji: "💉", name: "Syringe", keywords: ["syringe"]},
{emoji: "🎋", name: "Tanabata Tree", keywords: ["tanabata tree"]},
{emoji: "🍊", name: "Tangerine", keywords: ["tangerine"]},
{emoji: "♉", name: "Taurus", keywords: ["taurus"]},
{emoji: "🚕", name: "Taxi", keywords: ["taxi"]},
{emoji: "🍵", name: "Tea", keywords: ["tea"]},
{emoji: "🔭", name: "Telescope", keywords: ["telescope"]},
{emoji: "🎾", name: "Tennis", keywords: ["tennis"]},
{emoji: "⛺", name: "Tent", keywords: ["tent"]},
{emoji: "💭", name: "Thought Balloon", keywords: ["thought balloon"]},
{emoji: "3⃣", name: "Three", keywords: ["three"]},
{emoji: "🎫", name: "Ticket", keywords: ["ticket"]},
{emoji: "🐅", name: "Tiger2", keywords: ["tiger2"]},
{emoji: "™️", name: "Tm", keywords: ["tm"]},
{emoji: "🚽", name: "Toilet", keywords: ["toilet"]},
{emoji: "🗼", name: "Tokyo Tower", keywords: ["tokyo tower"]},
{emoji: "🍅", name: "Tomato", keywords: ["tomato"]},
{emoji: "👅", name: "Tongue", keywords: ["tongue"]},
{emoji: "🔝", name: "Top", keywords: ["top"]},
{emoji: "🎩", name: "Tophat", keywords: ["tophat"]},
{emoji: "🚜", name: "Tractor", keywords: ["tractor"]},
{emoji: "🚥", name: "Traffic Light", keywords: ["traffic light"]},
{emoji: "🚋", name: "Train", keywords: ["train"]},
{emoji: "🚆", name: "Train2", keywords: ["train2"]},
{emoji: "🚊", name: "Tram", keywords: ["tram"]},
{emoji: "🚩", name: "Triangular Flag On Post", keywords: ["triangular flag on post"]},
{emoji: "📐", name: "Triangular Ruler", keywords: ["triangular ruler"]},
{emoji: "🔱", name: "Trident", keywords: ["trident"]},
{emoji: "🚎", name: "Trolleybus", keywords: ["trolleybus"]},
{emoji: "🍹", name: "Tropical Drink", keywords: ["tropical drink"]},
{emoji: "🚚", name: "Truck", keywords: ["truck"]},
{emoji: "🎺", name: "Trumpet", keywords: ["trumpet"]},
{emoji: "📺", name: "Tv", keywords: ["tv"]},
{emoji: "🔀", name: "Twisted Rightwards Arrows", keywords: ["twisted rightwards arrows"]},
{emoji: "2⃣", name: "Two", keywords: ["two"]},
{emoji: "👬", name: "Two Men Holding Hands", keywords: ["two men holding hands"]},
{emoji: "👭", name: "Two Women Holding Hands", keywords: ["two women holding hands"]},
{emoji: "🈹", name: "U5272", keywords: ["u5272"]},
{emoji: "🈴", name: "U5408", keywords: ["u5408"]},
{emoji: "🈺", name: "U55B6", keywords: ["u55b6"]},
{emoji: "🈯", name: "U6307", keywords: ["u6307"]},
{emoji: "🈷️", name: "U6708", keywords: ["u6708"]},
{emoji: "🈶", name: "U6709", keywords: ["u6709"]},
{emoji: "🈵", name: "U6E80", keywords: ["u6e80"]},
{emoji: "🈚", name: "U7121", keywords: ["u7121"]},
{emoji: "🈸", name: "U7533", keywords: ["u7533"]},
{emoji: "🈲", name: "U7981", keywords: ["u7981"]},
{emoji: "🈳", name: "U7A7A", keywords: ["u7a7a"]},
{emoji: "☔", name: "Umbrella", keywords: ["umbrella"]},
{emoji: "🔞", name: "Underage", keywords: ["underage"]},
{emoji: "🔓", name: "Unlock", keywords: ["unlock"]},
{emoji: "🆙", name: "Up", keywords: ["up"]},
{emoji: "🇺🇸", name: "Us", keywords: ["us"]},
{emoji: "🚦", name: "Vertical Traffic Light", keywords: ["vertical traffic light"]},
{emoji: "📼", name: "Vhs", keywords: ["vhs"]},
{emoji: "📳", name: "Vibration Mode", keywords: ["vibration mode"]},
{emoji: "📹", name: "Video Camera", keywords: ["video camera"]},
{emoji: "🎻", name: "Violin", keywords: ["violin"]},
{emoji: "♍", name: "Virgo", keywords: ["virgo"]},
{emoji: "🌋", name: "Volcano", keywords: ["volcano"]},
{emoji: "🆚", name: "Vs", keywords: ["vs"]},
{emoji: "🚶", name: "Walking", keywords: ["walking"]},
{emoji: "🌘", name: "Waning Crescent Moon", keywords: ["waning crescent moon"]},
{emoji: "🌖", name: "Waning Gibbous Moon", keywords: ["waning gibbous moon"]},
{emoji: "⌚", name: "Watch", keywords: ["watch"]},
{emoji: "🐃", name: "Water Buffalo", keywords: ["water buffalo"]},
{emoji: "🍉", name: "Watermelon", keywords: ["watermelon"]},
{emoji: "👋", name: "Wave", keywords: ["wave"]},
{emoji: "〰️", name: "Wavy Dash", keywords: ["wavy dash"]},
{emoji: "🌒", name: "Waxing Crescent Moon", keywords: ["waxing crescent moon"]},
{emoji: "🌔", name: "Waxing Gibbous Moon", keywords: ["waxing gibbous moon"]},
{emoji: "🚾", name: "Wc", keywords: ["wc"]},
{emoji: "💒", name: "Wedding", keywords: ["wedding"]},
{emoji: "♿", name: "Wheelchair", keywords: ["wheelchair"]},
{emoji: "⚪", name: "White Circle", keywords: ["white circle"]},
{emoji: "💮", name: "White Flower", keywords: ["white flower"]},
{emoji: "🔳", name: "White Square Button", keywords: ["white square button"]},
{emoji: "🎐", name: "Wind Chime", keywords: ["wind chime"]},
{emoji: "👩", name: "Woman", keywords: ["woman"]},
{emoji: "👚", name: "Womans Clothes", keywords: ["womans clothes"]},
{emoji: "👒", name: "Womans Hat", keywords: ["womans hat"]},
{emoji: "🚺", name: "Womens", keywords: ["womens"]},
{emoji: "🔧", name: "Wrench", keywords: ["wrench"]},
{emoji: "💴", name: "Yen", keywords: ["yen"]},
{emoji: "0⃣", name: "Zero", keywords: ["zero"]},
{emoji: "💤", name: "Zzz", keywords: ["zzz"]}
]
property var unicodeCharacters: [
{char: "©", name: "Copyright Sign", keywords: ["copyright", "legal"]},
{char: "®", name: "Registered Sign", keywords: ["registered", "trademark", "legal"]},
{char: "™", name: "Trade Mark Sign", keywords: ["trademark", "tm", "legal"]},
{char: "°", name: "Degree Sign", keywords: ["degree", "temperature"]},
{char: "±", name: "Plus-Minus Sign", keywords: ["plus minus", "math"]},
{char: "×", name: "Multiplication Sign", keywords: ["multiply", "times", "math"]},
{char: "÷", name: "Division Sign", keywords: ["divide", "math"]},
{char: "≠", name: "Not Equal To", keywords: ["not equal", "math"]},
{char: "≈", name: "Almost Equal To", keywords: ["approximately", "about", "math"]},
{char: "≤", name: "Less Than or Equal To", keywords: ["less than equal", "math"]},
{char: "≥", name: "Greater Than or Equal To", keywords: ["greater than equal", "math"]},
{char: "∞", name: "Infinity", keywords: ["infinity", "infinite", "math"]},
{char: "∑", name: "N-Ary Summation", keywords: ["sum", "sigma", "math"]},
{char: "√", name: "Square Root", keywords: ["square root", "radical", "math"]},
{char: "∫", name: "Integral", keywords: ["integral", "calculus", "math"]},
{char: "∂", name: "Partial Differential", keywords: ["partial", "derivative", "math"]},
{char: "∆", name: "Increment", keywords: ["delta", "change", "math"]},
{char: "π", name: "Greek Small Letter Pi", keywords: ["pi", "math", "greek"]},
{char: "α", name: "Greek Small Letter Alpha", keywords: ["alpha", "greek"]},
{char: "β", name: "Greek Small Letter Beta", keywords: ["beta", "greek"]},
{char: "γ", name: "Greek Small Letter Gamma", keywords: ["gamma", "greek"]},
{char: "δ", name: "Greek Small Letter Delta", keywords: ["delta", "greek"]},
{char: "ε", name: "Greek Small Letter Epsilon", keywords: ["epsilon", "greek"]},
{char: "θ", name: "Greek Small Letter Theta", keywords: ["theta", "greek"]},
{char: "λ", name: "Greek Small Letter Lambda", keywords: ["lambda", "greek"]},
{char: "μ", name: "Greek Small Letter Mu", keywords: ["mu", "micro", "greek"]},
{char: "σ", name: "Greek Small Letter Sigma", keywords: ["sigma", "greek"]},
{char: "Ω", name: "Greek Capital Letter Omega", keywords: ["omega", "greek"]},
{char: "←", name: "Leftwards Arrow", keywords: ["arrow", "left"]},
{char: "→", name: "Rightwards Arrow", keywords: ["arrow", "right"]},
{char: "↑", name: "Upwards Arrow", keywords: ["arrow", "up"]},
{char: "↓", name: "Downwards Arrow", keywords: ["arrow", "down"]},
{char: "↔", name: "Left Right Arrow", keywords: ["arrow", "bidirectional"]},
{char: "⇐", name: "Leftwards Double Arrow", keywords: ["double arrow", "left"]},
{char: "⇒", name: "Rightwards Double Arrow", keywords: ["double arrow", "right"]},
{char: "⇔", name: "Left Right Double Arrow", keywords: ["double arrow", "bidirectional"]},
{char: "•", name: "Bullet", keywords: ["bullet", "dot", "point"]},
{char: "◦", name: "White Bullet", keywords: ["bullet", "dot", "point"]},
{char: "‣", name: "Triangular Bullet", keywords: ["bullet", "triangle"]},
{char: "", name: "Hyphen Bullet", keywords: ["bullet", "dash"]},
{char: "…", name: "Horizontal Ellipsis", keywords: ["ellipsis", "dot dot dot"]},
{char: "", name: "En Dash", keywords: ["dash", "hyphen"]},
{char: "—", name: "Em Dash", keywords: ["dash", "long dash"]},
{char: "¡", name: "Inverted Exclamation Mark", keywords: ["exclamation", "spanish"]},
{char: "¿", name: "Inverted Question Mark", keywords: ["question", "spanish"]},
{char: "§", name: "Section Sign", keywords: ["section", "paragraph"]},
{char: "¶", name: "Pilcrow Sign", keywords: ["paragraph", "pilcrow"]},
{char: "†", name: "Dagger", keywords: ["dagger", "footnote"]},
{char: "‡", name: "Double Dagger", keywords: ["double dagger", "footnote"]},
{char: "‰", name: "Per Mille Sign", keywords: ["per mille", "percent"]},
{char: "€", name: "Euro Sign", keywords: ["euro", "currency", "money"]},
{char: "£", name: "Pound Sign", keywords: ["pound", "currency", "money"]},
{char: "¥", name: "Yen Sign", keywords: ["yen", "currency", "money"]},
{char: "¢", name: "Cent Sign", keywords: ["cent", "currency", "money"]},
{char: "₹", name: "Indian Rupee Sign", keywords: ["rupee", "currency", "money"]},
{char: "₽", name: "Ruble Sign", keywords: ["ruble", "currency", "money"]},
{char: "₩", name: "Won Sign", keywords: ["won", "currency", "money"]},
{char: "¤", name: "Currency Sign", keywords: ["currency", "money"]},
{char: "★", name: "Black Star", keywords: ["star", "favorite"]},
{char: "☆", name: "White Star", keywords: ["star", "favorite"]},
{char: "♠", name: "Black Spade Suit", keywords: ["spade", "card", "suit"]},
{char: "♣", name: "Black Club Suit", keywords: ["club", "card", "suit"]},
{char: "♥", name: "Black Heart Suit", keywords: ["heart", "card", "suit"]},
{char: "♦", name: "Black Diamond Suit", keywords: ["diamond", "card", "suit"]},
{char: "♪", name: "Eighth Note", keywords: ["music", "note"]},
{char: "♫", name: "Beamed Eighth Notes", keywords: ["music", "notes"]},
{char: "♬", name: "Beamed Sixteenth Notes", keywords: ["music", "notes"]},
{char: "♭", name: "Music Flat Sign", keywords: ["flat", "music"]},
{char: "♮", name: "Music Natural Sign", keywords: ["natural", "music"]},
{char: "♯", name: "Music Sharp Sign", keywords: ["sharp", "music"]},
{char: "✓", name: "Check Mark", keywords: ["check", "tick", "yes"]},
{char: "✗", name: "Ballot X", keywords: ["x", "cross", "no"]},
{char: "✘", name: "Heavy Ballot X", keywords: ["x", "cross", "no"]},
{char: "☐", name: "Ballot Box", keywords: ["checkbox", "box"]},
{char: "☑", name: "Ballot Box with Check", keywords: ["checkbox", "checked"]},
{char: "☒", name: "Ballot Box with X", keywords: ["checkbox", "unchecked"]},
{char: "⚠", name: "Warning Sign", keywords: ["warning", "caution"]},
{char: "☢", name: "Radioactive Sign", keywords: ["radioactive", "hazard"]},
{char: "☣", name: "Biohazard Sign", keywords: ["biohazard", "hazard"]},
{char: "⚡", name: "High Voltage Sign", keywords: ["lightning", "electric", "voltage"]},
{char: "☀", name: "Black Sun with Rays", keywords: ["sun", "sunny"]},
{char: "☁", name: "Cloud", keywords: ["cloud", "weather"]},
{char: "☂", name: "Umbrella", keywords: ["umbrella", "rain"]},
{char: "☃", name: "Snowman", keywords: ["snowman", "snow", "winter"]},
{char: "☄", name: "Comet", keywords: ["comet", "space"]},
{char: "☎", name: "Black Telephone", keywords: ["phone", "telephone"]},
{char: "☏", name: "White Telephone", keywords: ["phone", "telephone"]},
{char: "✉", name: "Envelope", keywords: ["email", "mail", "letter"]},
{char: "✏", name: "Pencil", keywords: ["pencil", "write"]},
{char: "✂", name: "Black Scissors", keywords: ["scissors", "cut"]},
{char: "♻", name: "Black Universal Recycling Symbol", keywords: ["recycle", "recycling"]},
{char: "♿", name: "Wheelchair Symbol", keywords: ["wheelchair", "accessibility"]},
{char: "⚕", name: "Staff of Aesculapius", keywords: ["medical", "medicine"]},
{char: "☮", name: "Peace Symbol", keywords: ["peace"]},
{char: "☯", name: "Yin Yang", keywords: ["yin yang", "balance"]},
{char: "☸", name: "Wheel of Dharma", keywords: ["dharma", "buddhism"]},
{char: "✝", name: "Latin Cross", keywords: ["cross", "christianity"]},
{char: "☪", name: "Star and Crescent", keywords: ["islam", "crescent"]},
{char: "✡", name: "Star of David", keywords: ["star of david", "judaism"]},
{char: "☦", name: "Orthodox Cross", keywords: ["cross", "orthodox"]},
{char: "♂", name: "Male Sign", keywords: ["male", "gender"]},
{char: "♀", name: "Female Sign", keywords: ["female", "gender"]},
{char: "⚧", name: "Transgender Symbol", keywords: ["transgender", "gender"]},
{char: "⚲", name: "Neuter", keywords: ["neuter", "gender"]},
{char: "⚥", name: "Male and Female Sign", keywords: ["hermaphrodite", "gender"]},
{char: "☠", name: "Skull and Crossbones", keywords: ["skull", "death", "danger"]},
{char: "⚰", name: "Coffin", keywords: ["coffin", "death"]},
{char: "⚱", name: "Funeral Urn", keywords: ["urn", "death"]},
{char: "♨", name: "Hot Springs", keywords: ["hot springs", "onsen"]},
{char: "🝔", name: "Alchemical Symbol for Air", keywords: ["air", "alchemy"]},
{char: "🜂", name: "Alchemical Symbol for Fire", keywords: ["fire", "alchemy"]},
{char: "🜄", name: "Alchemical Symbol for Water", keywords: ["water", "alchemy"]},
{char: "🜃", name: "Alchemical Symbol for Earth", keywords: ["earth", "alchemy"]}
]
property var nerdfontGlyphs: []
Component.onCompleted: {
if (pluginService) {
trigger = pluginService.loadPluginData("emojiLauncher", "trigger", ":")
}
loadBundledData()
}
function loadBundledData() {
mergeEntries(emojiDatabase, CatalogData.getEmojiEntries(), "emoji")
mergeEntries(unicodeCharacters, CatalogData.getUnicodeEntries(), "char")
const glyphs = CatalogData.getNerdFontEntries()
if (glyphs.length > 0) {
nerdfontGlyphs = glyphs
}
itemsChanged()
}
function mergeEntries(target, additions, keyField) {
if (!Array.isArray(target) || !Array.isArray(additions) || additions.length === 0) {
return
}
const seen = {}
for (let i = 0; i < target.length; i++) {
const key = target[i][keyField]
if (key) {
seen[key] = target[i]
}
}
for (let i = 0; i < additions.length; i++) {
const entry = additions[i]
if (!entry) {
continue
}
const key = entry[keyField]
if (!key) {
continue
}
const existing = seen[key]
if (existing) {
const incomingName = entry.name || ""
const existingName = existing.name || ""
if (incomingName.length > existingName.length) {
existing.name = incomingName
}
const existingKeywords = Array.isArray(existing.keywords) ? existing.keywords : []
const incomingKeywords = Array.isArray(entry.keywords) ? entry.keywords : []
const keywordSet = {}
function normalizeKeyword(keyword) {
if (!keyword || typeof keyword !== "string") {
return ""
}
return keyword.toLowerCase()
}
for (let j = 0; j < existingKeywords.length; j++) {
const normalized = normalizeKeyword(existingKeywords[j])
if (normalized) {
existingKeywords[j] = normalized
keywordSet[normalized] = true
}
}
for (let j = 0; j < incomingKeywords.length; j++) {
const normalized = normalizeKeyword(incomingKeywords[j])
if (normalized && !keywordSet[normalized]) {
existingKeywords.push(normalized)
keywordSet[normalized] = true
}
}
existing.keywords = existingKeywords
} else {
target.push(entry)
seen[key] = entry
}
}
}
function getItems(query) {
const items = []
const lowerQuery = query ? query.toLowerCase() : ""
for (let i = 0; i < emojiDatabase.length; i++) {
const emoji = emojiDatabase[i]
if (!query ||
emoji.name.toLowerCase().includes(lowerQuery) ||
emoji.emoji.includes(query) ||
emoji.keywords.some(k => k.includes(lowerQuery))) {
items.push({
name: emoji.name,
comment: emoji.keywords.join(", "),
action: "copy:" + emoji.emoji,
icon: "unicode:" + emoji.emoji,
categories: ["Emoji & Unicode Launcher"]
})
}
}
for (let i = 0; i < unicodeCharacters.length; i++) {
const unicode = unicodeCharacters[i]
if (!query ||
unicode.name.toLowerCase().includes(lowerQuery) ||
unicode.char.includes(query) ||
unicode.keywords.some(k => k.includes(lowerQuery))) {
items.push({
name: unicode.name,
comment: unicode.keywords.join(", "),
action: "copy:" + unicode.char,
icon: "unicode:" + unicode.char,
categories: ["Emoji & Unicode Launcher"]
})
}
}
for (let i = 0; i < nerdfontGlyphs.length; i++) {
const glyph = nerdfontGlyphs[i]
if (!query ||
glyph.name.toLowerCase().includes(lowerQuery) ||
glyph.char.includes(query) ||
glyph.keywords.some(k => k.includes(lowerQuery))) {
items.push({
name: glyph.name + " (Nerd Font)",
comment: glyph.keywords.join(", "),
action: "copy:" + glyph.char,
icon: "unicode:" + glyph.char,
categories: ["Emoji & Unicode Launcher"]
})
}
}
return items.slice(0, 50)
}
function executeItem(item) {
if (!item || !item.action) {
console.warn("EmojiLauncher: Invalid item or action")
return
}
const actionParts = item.action.split(":")
const actionType = actionParts[0]
const actionData = actionParts.slice(1).join(":")
if (actionType === "copy") {
Quickshell.execDetached(["sh", "-c", "echo -n '" + actionData + "' | wl-copy"])
if (typeof ToastService !== "undefined") {
ToastService.showInfo("Copied " + actionData + " to clipboard")
}
}
}
onTriggerChanged: {
if (pluginService) {
pluginService.savePluginData("emojiLauncher", "trigger", trigger)
}
itemsChanged()
}
}