├── src ├── __init__.py ├── extractors │ ├── __init__.py │ ├── extractor.py │ ├── blockfactory.py │ ├── nerdfontextractor.py │ ├── weathericonsextractor.py │ ├── htmlcharacterextractor.py │ ├── kaomojiextractor.py │ ├── fileiconsextractor.py │ ├── gitmojiextractor.py │ ├── __main__.py │ ├── fontawesome6extractor.py │ └── blockextractor.py └── picker │ ├── typer │ ├── __init__.py │ ├── noop.py │ ├── cliclick.py │ ├── wtype.py │ └── typer.py │ ├── selector │ └── __init__.py │ ├── clipboarder │ ├── __init__.py │ ├── noop.py │ ├── pbcopy.py │ ├── clipboarder.py │ ├── xsel.py │ └── wl.py │ ├── data │ ├── lisu_supplement.csv │ ├── additional │ │ └── emojis_smileys_emotion.csv │ ├── shorthand_format_controls.csv │ ├── specials.csv │ ├── emojis_component.csv │ ├── sharada_supplement.csv │ ├── optical_character_recognition.csv │ ├── small_kana_extension.csv │ ├── sundanese_supplement.csv │ ├── ancient_symbols.csv │ ├── common_indic_number_forms.csv │ ├── syriac_supplement.csv │ ├── devanagari_extended-a.csv │ ├── cyrillic_extended-c.csv │ ├── buhid.csv │ ├── ideographic_symbols_and_punctuation.csv │ ├── variation_selectors.csv │ ├── tagbanwa.csv │ ├── katakana_phonetic_extensions.csv │ ├── vertical_forms.csv │ ├── kana_extended-b.csv │ ├── mayan_numerals.csv │ ├── mongolian_supplement.csv │ ├── supplemental_arrows-a.csv │ ├── tagalog.csv │ ├── hanunoo.csv │ ├── kaktovik_numerals.csv │ ├── combining_half_marks.csv │ ├── kanbun.csv │ ├── unified_canadian_aboriginal_syllabics_extended-a.csv │ ├── makasar.csv │ ├── elymaic.csv │ ├── currency_symbols.csv │ ├── lydian.csv │ ├── lycian.csv │ ├── small_form_variants.csv │ ├── sidetic.csv │ ├── hatran.csv │ ├── sinhala_archaic_numbers.csv │ ├── toto.csv │ ├── ogham.csv │ ├── gothic.csv │ ├── meetei_mayek_extensions.csv │ ├── myanmar_extended-c.csv │ ├── mandaic.csv │ ├── buginese.csv │ ├── ethiopic_supplement.csv │ ├── tai_le.csv │ ├── cjk_strokes.csv │ ├── bopomofo_extended.csv │ ├── ugaritic.csv │ ├── counting_rod_numerals.csv │ ├── chorasmian.csv │ ├── old_uyghur.csv │ ├── phoenician.csv │ ├── rumi_numeral_symbols.csv │ ├── miscellaneous_symbols_supplement.csv │ ├── rejang.csv │ ├── arabic_extended-c.csv │ ├── mro.csv │ ├── ethiopic_extended-a.csv │ ├── ethiopic_extended-b.csv │ ├── ideographic_description_characters.csv │ ├── multani.csv │ ├── coptic_epact_numbers.csv │ ├── khmer_symbols.csv │ ├── palmyrene.csv │ ├── block_elements.csv │ ├── elbasan.csv │ ├── osmanya.csv │ ├── bassa_vah.csv │ ├── mahajani.csv │ ├── hangul_jamo_extended-a.csv │ ├── myanmar_extended-b.csv │ ├── myanmar_extended-a.csv │ ├── bopomofo.csv │ ├── kana_extended-a.csv │ ├── sora_sompeng.csv │ ├── psalter_pahlavi.csv │ ├── lisu.csv │ ├── ol_onal.csv │ ├── old_italic.csv │ ├── devanagari_extended.csv │ ├── inscriptional_pahlavi.csv │ ├── imperial_aramaic.csv │ ├── carian.csv │ ├── cyrillic_extended-a.csv │ ├── sunuwar.csv │ ├── yi_radicals.csv │ ├── old_north_arabian.csv │ ├── kayah_li.csv │ ├── old_south_arabian.csv │ ├── nag_mundari.csv │ ├── superscripts_and_subscripts.csv │ ├── ol_chiki.csv │ ├── nabataean.csv │ ├── combining_diacritical_marks_for_symbols.csv │ ├── shavian.csv │ ├── todhri.csv │ ├── georgian_supplement.csv │ ├── latin_extended-c.csv │ ├── yezidi.csv │ ├── meroitic_hieroglyphs.csv │ ├── inscriptional_parthian.csv │ ├── old_permic.csv │ ├── thaana.csv │ ├── control_pictures.csv │ ├── syloti_nagri.csv │ ├── sogdian.csv │ ├── tai_yo.csv │ ├── old_sogdian.csv │ ├── old_persian.csv │ ├── wancho.csv │ ├── modifier_tone_letters.csv │ ├── dogra.csv │ ├── mahjong_tiles.csv │ ├── cjk_compatibility_forms.csv │ ├── batak.csv │ ├── phags-pa.csv │ ├── nko.csv │ ├── cypriot_syllabary.csv │ ├── phaistos_disc.csv │ ├── tolong_siki.csv │ ├── glagolitic_supplement.csv │ ├── vedic_extensions.csv │ ├── ahom.csv │ ├── kirat_rai.csv │ ├── tamil_supplement.csv │ ├── miscellaneous_mathematical_symbols-a.csv │ ├── takri.csv │ ├── khojki.csv │ ├── limbu.csv │ ├── tamil.csv │ ├── manichaean.csv │ ├── tifinagh.csv │ ├── hanifi_rohingya.csv │ ├── avestan.csv │ ├── kaithi.csv │ ├── ornamental_dingbats.csv │ ├── meetei_mayek.csv │ ├── chakma.csv │ ├── sundanese.csv │ ├── aegean_numbers.csv │ ├── latin_extended-g.csv │ ├── beria_erfe.csv │ ├── egyptian_hieroglyph_format_controls.csv │ ├── gurung_khema.csv │ ├── cyrillic_supplement.csv │ ├── pau_cin_hau.csv │ └── number_forms.csv │ ├── __init__.py │ ├── __main__.py │ ├── abstractionhelper.py │ ├── contrib │ ├── grid.rasi │ └── grid-icons-only.rasi │ ├── paths.py │ ├── frecent.py │ ├── models.py │ ├── action.py │ └── recent.py ├── screenshot.png ├── screenshot-grid.png ├── .gitignore ├── .github ├── ISSUE_TEMPLATE │ └── config.yml ├── workflows │ ├── checks.yaml │ └── release.yaml └── DISCUSSION_TEMPLATE │ └── font-problems.yml ├── LICENSE └── pyproject.toml /src/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/extractors/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/picker/typer/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/picker/selector/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/picker/clipboarder/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/picker/data/lisu_supplement.csv: -------------------------------------------------------------------------------- 1 | 𑾰 Lisu Letter Yha 2 | -------------------------------------------------------------------------------- /screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fdw/rofimoji/HEAD/screenshot.png -------------------------------------------------------------------------------- /src/picker/data/additional/emojis_smileys_emotion.csv: -------------------------------------------------------------------------------- 1 | 😈 demon, devil, imp 2 | -------------------------------------------------------------------------------- /screenshot-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/fdw/rofimoji/HEAD/screenshot-grid.png -------------------------------------------------------------------------------- /src/picker/__init__.py: -------------------------------------------------------------------------------- 1 | from importlib import metadata 2 | 3 | __version__ = metadata.version("rofimoji") 4 | 5 | del metadata 6 | -------------------------------------------------------------------------------- /src/extractors/extractor.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | 3 | 4 | class Extractor: 5 | async def extract_to(self, target: Path) -> None: 6 | pass 7 | -------------------------------------------------------------------------------- /src/picker/data/shorthand_format_controls.csv: -------------------------------------------------------------------------------- 1 | 𛲠 Shorthand Format Letter Overlap 2 | 𛲡 Shorthand Format Continuing Overlap 3 | 𛲢 Shorthand Format Down Step 4 | 𛲣 Shorthand Format Up Step 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__/ 2 | *.py[cod] 3 | .envrc 4 | .direnv 5 | .idea 6 | emoji-picker.iml 7 | .dist 8 | rofimoji.egg-info 9 | dist 10 | build 11 | src/picker/data/copyme.py 12 | venv/ 13 | -------------------------------------------------------------------------------- /src/picker/data/specials.csv: -------------------------------------------------------------------------------- 1 |  Interlinear Annotation Anchor 2 |  Interlinear Annotation Separator 3 |  Interlinear Annotation Terminator 4 |  Object Replacement Character 5 | � Replacement Character 6 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: true 2 | contact_links: 3 | - name: Characters not showing 4 | url: https://github.com/fdw/rofimoji/discussions/categories/font-problems 5 | about: If the characters aren't showing in your selector 6 | -------------------------------------------------------------------------------- /src/picker/data/emojis_component.csv: -------------------------------------------------------------------------------- 1 | 🦰 red hair (ginger, red hair, redhead) 2 | 🦱 curly hair (afro, curly, curly hair, ringlets) 3 | 🦳 white hair (gray, hair, old, white) 4 | 🦲 bald (bald, chemotherapy, hairless, no hair, shaven) 5 | -------------------------------------------------------------------------------- /src/picker/data/sharada_supplement.csv: -------------------------------------------------------------------------------- 1 | 𑭠 Sharada Vowel Sign Oe 2 | 𑭡 Sharada Vowel Sign Ooe 3 | 𑭢 Sharada Vowel Sign Ue 4 | 𑭣 Sharada Vowel Sign Uue 5 | 𑭤 Sharada Vowel Sign Short E 6 | 𑭥 Sharada Vowel Sign Short O 7 | 𑭦 Sharada Vowel Sign Candra E 8 | 𑭧 Sharada Vowel Sign Candra O 9 | -------------------------------------------------------------------------------- /src/picker/data/optical_character_recognition.csv: -------------------------------------------------------------------------------- 1 | ⑀ Ocr Hook 2 | ⑁ Ocr Chair 3 | ⑂ Ocr Fork 4 | ⑃ Ocr Inverted Fork 5 | ⑄ Ocr Belt Buckle 6 | ⑅ Ocr Bow Tie 7 | ⑆ Ocr Branch Bank Identification 8 | ⑇ Ocr Amount Of Check 9 | ⑈ Ocr Dash 10 | ⑉ Ocr Customer Account Number 11 | ⑊ Ocr Double Backslash 12 | -------------------------------------------------------------------------------- /src/picker/data/small_kana_extension.csv: -------------------------------------------------------------------------------- 1 | 𛄲 Hiragana Letter Small Ko 2 | 𛅐 Hiragana Letter Small Wi 3 | 𛅑 Hiragana Letter Small We 4 | 𛅒 Hiragana Letter Small Wo 5 | 𛅕 Katakana Letter Small Ko 6 | 𛅤 Katakana Letter Small Wi 7 | 𛅥 Katakana Letter Small We 8 | 𛅦 Katakana Letter Small Wo 9 | 𛅧 Katakana Letter Small N 10 | -------------------------------------------------------------------------------- /src/picker/__main__.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from .mode import ModeRofimoji 4 | from .standalone import StandaloneRofimoji 5 | 6 | 7 | def main(): 8 | if "ROFI_RETV" not in os.environ: 9 | StandaloneRofimoji().standalone() 10 | else: 11 | ModeRofimoji().mode() 12 | 13 | 14 | if __name__ == "__main__": 15 | main() 16 | -------------------------------------------------------------------------------- /src/picker/abstractionhelper.py: -------------------------------------------------------------------------------- 1 | import os 2 | import platform 3 | import shutil 4 | 5 | 6 | def is_installed(executable: str) -> bool: 7 | return shutil.which(executable) is not None 8 | 9 | 10 | def is_macos() -> bool: 11 | return platform.system() == "Darwin" 12 | 13 | 14 | def is_wayland() -> bool: 15 | return "WAYLAND_DISPLAY" in os.environ 16 | -------------------------------------------------------------------------------- /src/picker/data/sundanese_supplement.csv: -------------------------------------------------------------------------------- 1 | ᳀ Sundanese Punctuation Bindu Surya 2 | ᳁ Sundanese Punctuation Bindu Panglong 3 | ᳂ Sundanese Punctuation Bindu Purnama 4 | ᳃ Sundanese Punctuation Bindu Cakra 5 | ᳄ Sundanese Punctuation Bindu Leu Satanga 6 | ᳅ Sundanese Punctuation Bindu Ka Satanga 7 | ᳆ Sundanese Punctuation Bindu Da Satanga 8 | ᳇ Sundanese Punctuation Bindu Ba Satanga 9 | -------------------------------------------------------------------------------- /src/picker/data/ancient_symbols.csv: -------------------------------------------------------------------------------- 1 | 𐆐 Roman Sextans Sign 2 | 𐆑 Roman Uncia Sign 3 | 𐆒 Roman Semuncia Sign 4 | 𐆓 Roman Sextula Sign 5 | 𐆔 Roman Dimidia Sextula Sign 6 | 𐆕 Roman Siliqua Sign 7 | 𐆖 Roman Denarius Sign 8 | 𐆗 Roman Quinarius Sign 9 | 𐆘 Roman Sestertius Sign 10 | 𐆙 Roman Dupondius Sign 11 | 𐆚 Roman As Sign 12 | 𐆛 Roman Centurial Sign 13 | 𐆜 Ascia Symbol 14 | 𐆠 Greek Symbol Tau Rho 15 | -------------------------------------------------------------------------------- /src/picker/data/common_indic_number_forms.csv: -------------------------------------------------------------------------------- 1 | ꠰ North Indic Fraction One Quarter 2 | ꠱ North Indic Fraction One Half 3 | ꠲ North Indic Fraction Three Quarters 4 | ꠳ North Indic Fraction One Sixteenth 5 | ꠴ North Indic Fraction One Eighth 6 | ꠵ North Indic Fraction Three Sixteenths 7 | ꠶ North Indic Quarter Mark 8 | ꠷ North Indic Placeholder Mark 9 | ꠸ North Indic Rupee Mark 10 | ꠹ North Indic Quantity Mark 11 | -------------------------------------------------------------------------------- /src/picker/data/syriac_supplement.csv: -------------------------------------------------------------------------------- 1 | ‎ࡠ Syriac Letter Malayalam Nga 2 | ‎ࡡ Syriac Letter Malayalam Ja 3 | ‎ࡢ Syriac Letter Malayalam Nya 4 | ‎ࡣ Syriac Letter Malayalam Tta 5 | ‎ࡤ Syriac Letter Malayalam Nna 6 | ‎ࡥ Syriac Letter Malayalam Nnna 7 | ‎ࡦ Syriac Letter Malayalam Bha 8 | ‎ࡧ Syriac Letter Malayalam Ra 9 | ‎ࡨ Syriac Letter Malayalam Lla 10 | ‎ࡩ Syriac Letter Malayalam Llla 11 | ‎ࡪ Syriac Letter Malayalam Ssa 12 | -------------------------------------------------------------------------------- /src/picker/data/devanagari_extended-a.csv: -------------------------------------------------------------------------------- 1 | 𑬀 Devanagari Head Mark 2 | 𑬁 Devanagari Head Mark With Headstroke 3 | 𑬂 Devanagari Sign Bhale 4 | 𑬃 Devanagari Sign Bhale With Hook 5 | 𑬄 Devanagari Sign Extended Bhale 6 | 𑬅 Devanagari Sign Extended Bhale With Hook 7 | 𑬆 Devanagari Sign Western Five-Like Bhale 8 | 𑬇 Devanagari Sign Western Nine-Like Bhale 9 | 𑬈 Devanagari Sign Reversed Nine-Like Bhale 10 | 𑬉 Devanagari Sign Mindu 11 | -------------------------------------------------------------------------------- /src/picker/data/cyrillic_extended-c.csv: -------------------------------------------------------------------------------- 1 | ᲀ Cyrillic Small Letter Rounded Ve 2 | ᲁ Cyrillic Small Letter Long-Legged De 3 | ᲂ Cyrillic Small Letter Narrow O 4 | ᲃ Cyrillic Small Letter Wide Es 5 | ᲄ Cyrillic Small Letter Tall Te 6 | ᲅ Cyrillic Small Letter Three-Legged Te 7 | ᲆ Cyrillic Small Letter Tall Hard Sign 8 | ᲇ Cyrillic Small Letter Tall Yat 9 | ᲈ Cyrillic Small Letter Unblended Uk 10 | Ᲊ Cyrillic Capital Letter Tje 11 | ᲊ Cyrillic Small Letter Tje 12 | -------------------------------------------------------------------------------- /src/picker/data/buhid.csv: -------------------------------------------------------------------------------- 1 | ᝀ Buhid Letter A 2 | ᝁ Buhid Letter I 3 | ᝂ Buhid Letter U 4 | ᝃ Buhid Letter Ka 5 | ᝄ Buhid Letter Ga 6 | ᝅ Buhid Letter Nga 7 | ᝆ Buhid Letter Ta 8 | ᝇ Buhid Letter Da 9 | ᝈ Buhid Letter Na 10 | ᝉ Buhid Letter Pa 11 | ᝊ Buhid Letter Ba 12 | ᝋ Buhid Letter Ma 13 | ᝌ Buhid Letter Ya 14 | ᝍ Buhid Letter Ra 15 | ᝎ Buhid Letter La 16 | ᝏ Buhid Letter Wa 17 | ᝐ Buhid Letter Sa 18 | ᝑ Buhid Letter Ha 19 | ᝒ Buhid Vowel Sign I 20 | ᝓ Buhid Vowel Sign U 21 | -------------------------------------------------------------------------------- /src/picker/data/ideographic_symbols_and_punctuation.csv: -------------------------------------------------------------------------------- 1 | 𖿠 Tangut Iteration Mark 2 | 𖿡 Nushu Iteration Mark 3 | 𖿢 Old Chinese Hook Mark 4 | 𖿣 Old Chinese Iteration Mark 5 | 𖿤 Khitan Small Script Filler 6 | 𖿰 Vietnamese Alternate Reading Mark Ca 7 | 𖿱 Vietnamese Alternate Reading Mark Nhay 8 | 𖿲 Chinese Small Simplified Er 9 | 𖿳 Chinese Small Traditional Er 10 | 𖿴 Yangqin Sign Slow One Beat 11 | 𖿵 Yangqin Sign Slow Three Half Beats 12 | 𖿶 Yangqin Sign Slow Two Beats 13 | -------------------------------------------------------------------------------- /src/picker/data/variation_selectors.csv: -------------------------------------------------------------------------------- 1 | ︀ Variation Selector-1 2 | ︁ Variation Selector-2 3 | ︂ Variation Selector-3 4 | ︃ Variation Selector-4 5 | ︄ Variation Selector-5 6 | ︅ Variation Selector-6 7 | ︆ Variation Selector-7 8 | ︇ Variation Selector-8 9 | ︈ Variation Selector-9 10 | ︉ Variation Selector-10 11 | ︊ Variation Selector-11 12 | ︋ Variation Selector-12 13 | ︌ Variation Selector-13 14 | ︍ Variation Selector-14 15 | ︎ Variation Selector-15 16 | ️ Variation Selector-16 17 | -------------------------------------------------------------------------------- /src/picker/data/tagbanwa.csv: -------------------------------------------------------------------------------- 1 | ᝠ Tagbanwa Letter A 2 | ᝡ Tagbanwa Letter I 3 | ᝢ Tagbanwa Letter U 4 | ᝣ Tagbanwa Letter Ka 5 | ᝤ Tagbanwa Letter Ga 6 | ᝥ Tagbanwa Letter Nga 7 | ᝦ Tagbanwa Letter Ta 8 | ᝧ Tagbanwa Letter Da 9 | ᝨ Tagbanwa Letter Na 10 | ᝩ Tagbanwa Letter Pa 11 | ᝪ Tagbanwa Letter Ba 12 | ᝫ Tagbanwa Letter Ma 13 | ᝬ Tagbanwa Letter Ya 14 | ᝮ Tagbanwa Letter La 15 | ᝯ Tagbanwa Letter Wa 16 | ᝰ Tagbanwa Letter Sa 17 | ᝲ Tagbanwa Vowel Sign I 18 | ᝳ Tagbanwa Vowel Sign U 19 | -------------------------------------------------------------------------------- /src/picker/data/katakana_phonetic_extensions.csv: -------------------------------------------------------------------------------- 1 | ㇰ Katakana Letter Small Ku 2 | ㇱ Katakana Letter Small Si 3 | ㇲ Katakana Letter Small Su 4 | ㇳ Katakana Letter Small To 5 | ㇴ Katakana Letter Small Nu 6 | ㇵ Katakana Letter Small Ha 7 | ㇶ Katakana Letter Small Hi 8 | ㇷ Katakana Letter Small Hu 9 | ㇸ Katakana Letter Small He 10 | ㇹ Katakana Letter Small Ho 11 | ㇺ Katakana Letter Small Mu 12 | ㇻ Katakana Letter Small Ra 13 | ㇼ Katakana Letter Small Ri 14 | ㇽ Katakana Letter Small Ru 15 | ㇾ Katakana Letter Small Re 16 | ㇿ Katakana Letter Small Ro 17 | -------------------------------------------------------------------------------- /src/picker/data/vertical_forms.csv: -------------------------------------------------------------------------------- 1 | ︐ Presentation Form For Vertical Comma 2 | ︑ Presentation Form For Vertical Ideographic Comma 3 | ︒ Presentation Form For Vertical Ideographic Full Stop 4 | ︓ Presentation Form For Vertical Colon 5 | ︔ Presentation Form For Vertical Semicolon 6 | ︕ Presentation Form For Vertical Exclamation Mark 7 | ︖ Presentation Form For Vertical Question Mark 8 | ︗ Presentation Form For Vertical Left White Lenticular Bracket 9 | ︘ Presentation Form For Vertical Right White Lenticular Brakcet 10 | ︙ Presentation Form For Vertical Horizontal Ellipsis 11 | -------------------------------------------------------------------------------- /src/picker/data/kana_extended-b.csv: -------------------------------------------------------------------------------- 1 | 𚿰 Katakana Letter Minnan Tone-2 2 | 𚿱 Katakana Letter Minnan Tone-3 3 | 𚿲 Katakana Letter Minnan Tone-4 4 | 𚿳 Katakana Letter Minnan Tone-5 5 | 𚿵 Katakana Letter Minnan Tone-7 6 | 𚿶 Katakana Letter Minnan Tone-8 7 | 𚿷 Katakana Letter Minnan Nasalized Tone-1 8 | 𚿸 Katakana Letter Minnan Nasalized Tone-2 9 | 𚿹 Katakana Letter Minnan Nasalized Tone-3 10 | 𚿺 Katakana Letter Minnan Nasalized Tone-4 11 | 𚿻 Katakana Letter Minnan Nasalized Tone-5 12 | 𚿽 Katakana Letter Minnan Nasalized Tone-7 13 | 𚿾 Katakana Letter Minnan Nasalized Tone-8 14 | -------------------------------------------------------------------------------- /src/picker/data/mayan_numerals.csv: -------------------------------------------------------------------------------- 1 | 𝋠 Mayan Numeral Zero 2 | 𝋡 Mayan Numeral One 3 | 𝋢 Mayan Numeral Two 4 | 𝋣 Mayan Numeral Three 5 | 𝋤 Mayan Numeral Four 6 | 𝋥 Mayan Numeral Five 7 | 𝋦 Mayan Numeral Six 8 | 𝋧 Mayan Numeral Seven 9 | 𝋨 Mayan Numeral Eight 10 | 𝋩 Mayan Numeral Nine 11 | 𝋪 Mayan Numeral Ten 12 | 𝋫 Mayan Numeral Eleven 13 | 𝋬 Mayan Numeral Twelve 14 | 𝋭 Mayan Numeral Thirteen 15 | 𝋮 Mayan Numeral Fourteen 16 | 𝋯 Mayan Numeral Fifteen 17 | 𝋰 Mayan Numeral Sixteen 18 | 𝋱 Mayan Numeral Seventeen 19 | 𝋲 Mayan Numeral Eighteen 20 | 𝋳 Mayan Numeral Nineteen 21 | -------------------------------------------------------------------------------- /src/picker/data/mongolian_supplement.csv: -------------------------------------------------------------------------------- 1 | 𑙠 Mongolian Birga With Ornament 2 | 𑙡 Mongolian Rotated Birga 3 | 𑙢 Mongolian Double Birga With Ornament 4 | 𑙣 Mongolian Triple Birga With Ornament 5 | 𑙤 Mongolian Birga With Double Ornament 6 | 𑙥 Mongolian Rotated Birga With Ornament 7 | 𑙦 Mongolian Rotated Birga With Double Ornament 8 | 𑙧 Mongolian Inverted Birga 9 | 𑙨 Mongolian Inverted Birga With Double Ornament 10 | 𑙩 Mongolian Swirl Birga 11 | 𑙪 Mongolian Swirl Birga With Ornament 12 | 𑙫 Mongolian Swirl Birga With Double Ornament 13 | 𑙬 Mongolian Turned Swirl Birga With Double Ornament 14 | -------------------------------------------------------------------------------- /src/picker/data/supplemental_arrows-a.csv: -------------------------------------------------------------------------------- 1 | ⟰ Upwards Quadruple Arrow 2 | ⟱ Downwards Quadruple Arrow 3 | ⟲ Anticlockwise Gapped Circle Arrow 4 | ⟳ Clockwise Gapped Circle Arrow 5 | ⟴ Right Arrow With Circled Plus 6 | ⟵ Long Leftwards Arrow 7 | ⟶ Long Rightwards Arrow 8 | ⟷ Long Left Right Arrow 9 | ⟸ Long Leftwards Double Arrow 10 | ⟹ Long Rightwards Double Arrow 11 | ⟺ Long Left Right Double Arrow 12 | ⟻ Long Leftwards Arrow From Bar 13 | ⟼ Long Rightwards Arrow From Bar 14 | ⟽ Long Leftwards Double Arrow From Bar 15 | ⟾ Long Rightwards Double Arrow From Bar 16 | ⟿ Long Rightwards Squiggle Arrow 17 | -------------------------------------------------------------------------------- /src/picker/data/tagalog.csv: -------------------------------------------------------------------------------- 1 | ᜀ Tagalog Letter A 2 | ᜁ Tagalog Letter I 3 | ᜂ Tagalog Letter U 4 | ᜃ Tagalog Letter Ka 5 | ᜄ Tagalog Letter Ga 6 | ᜅ Tagalog Letter Nga 7 | ᜆ Tagalog Letter Ta 8 | ᜇ Tagalog Letter Da 9 | ᜈ Tagalog Letter Na 10 | ᜉ Tagalog Letter Pa 11 | ᜊ Tagalog Letter Ba 12 | ᜋ Tagalog Letter Ma 13 | ᜌ Tagalog Letter Ya 14 | ᜍ Tagalog Letter Ra 15 | ᜎ Tagalog Letter La 16 | ᜏ Tagalog Letter Wa 17 | ᜐ Tagalog Letter Sa 18 | ᜑ Tagalog Letter Ha 19 | ᜒ Tagalog Vowel Sign I 20 | ᜓ Tagalog Vowel Sign U 21 | ᜔ Tagalog Sign Virama 22 | ᜕ Tagalog Sign Pamudpod 23 | ᜟ Tagalog Letter Archaic Ra 24 | -------------------------------------------------------------------------------- /src/picker/contrib/grid.rasi: -------------------------------------------------------------------------------- 1 | @import "config" 2 | 3 | textbox { 4 | vertical-align: 0.5; 5 | horizontal-align: 0.5; 6 | } 7 | 8 | listview { 9 | columns: 9; 10 | lines: 7; 11 | cycle: true; 12 | dynamic: true; 13 | layout: vertical; 14 | flow: horizontal; 15 | reverse: false; 16 | fixed-height: true; 17 | fixed-columns: true; 18 | } 19 | 20 | element { 21 | orientation: vertical; 22 | } 23 | 24 | element-text { 25 | vertical-align: 0.5; 26 | horizontal-align: 0.5; 27 | font: "FiraCode Nerd Font 24"; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /src/picker/data/hanunoo.csv: -------------------------------------------------------------------------------- 1 | ᜠ Hanunoo Letter A 2 | ᜡ Hanunoo Letter I 3 | ᜢ Hanunoo Letter U 4 | ᜣ Hanunoo Letter Ka 5 | ᜤ Hanunoo Letter Ga 6 | ᜥ Hanunoo Letter Nga 7 | ᜦ Hanunoo Letter Ta 8 | ᜧ Hanunoo Letter Da 9 | ᜨ Hanunoo Letter Na 10 | ᜩ Hanunoo Letter Pa 11 | ᜪ Hanunoo Letter Ba 12 | ᜫ Hanunoo Letter Ma 13 | ᜬ Hanunoo Letter Ya 14 | ᜭ Hanunoo Letter Ra 15 | ᜮ Hanunoo Letter La 16 | ᜯ Hanunoo Letter Wa 17 | ᜰ Hanunoo Letter Sa 18 | ᜱ Hanunoo Letter Ha 19 | ᜲ Hanunoo Vowel Sign I 20 | ᜳ Hanunoo Vowel Sign U 21 | ᜴ Hanunoo Sign Pamudpod 22 | ᜵ Philippine Single Punctuation 23 | ᜶ Philippine Double Punctuation 24 | -------------------------------------------------------------------------------- /src/picker/contrib/grid-icons-only.rasi: -------------------------------------------------------------------------------- 1 | @import "config" 2 | 3 | configuration { 4 | show-icons: true; 5 | } 6 | 7 | textbox { 8 | vertical-align: 0.5; 9 | horizontal-align: 0.5; 10 | } 11 | 12 | listview { 13 | columns: 9; 14 | lines: 7; 15 | cycle: true; 16 | dynamic: true; 17 | layout: vertical; 18 | flow: horizontal; 19 | reverse: false; 20 | fixed-height: true; 21 | fixed-columns: true; 22 | } 23 | 24 | element { 25 | orientation: vertical; 26 | } 27 | 28 | element-icon { 29 | size: 64px; 30 | } 31 | 32 | element-text { 33 | enabled: false; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /src/picker/data/kaktovik_numerals.csv: -------------------------------------------------------------------------------- 1 | 𝋀 Kaktovik Numeral Zero 2 | 𝋁 Kaktovik Numeral One 3 | 𝋂 Kaktovik Numeral Two 4 | 𝋃 Kaktovik Numeral Three 5 | 𝋄 Kaktovik Numeral Four 6 | 𝋅 Kaktovik Numeral Five 7 | 𝋆 Kaktovik Numeral Six 8 | 𝋇 Kaktovik Numeral Seven 9 | 𝋈 Kaktovik Numeral Eight 10 | 𝋉 Kaktovik Numeral Nine 11 | 𝋊 Kaktovik Numeral Ten 12 | 𝋋 Kaktovik Numeral Eleven 13 | 𝋌 Kaktovik Numeral Twelve 14 | 𝋍 Kaktovik Numeral Thirteen 15 | 𝋎 Kaktovik Numeral Fourteen 16 | 𝋏 Kaktovik Numeral Fifteen 17 | 𝋐 Kaktovik Numeral Sixteen 18 | 𝋑 Kaktovik Numeral Seventeen 19 | 𝋒 Kaktovik Numeral Eighteen 20 | 𝋓 Kaktovik Numeral Nineteen 21 | -------------------------------------------------------------------------------- /src/picker/data/combining_half_marks.csv: -------------------------------------------------------------------------------- 1 | ︠ Combining Ligature Left Half 2 | ︡ Combining Ligature Right Half 3 | ︢ Combining Double Tilde Left Half 4 | ︣ Combining Double Tilde Right Half 5 | ︤ Combining Macron Left Half 6 | ︥ Combining Macron Right Half 7 | ︦ Combining Conjoining Macron 8 | ︧ Combining Ligature Left Half Below 9 | ︨ Combining Ligature Right Half Below 10 | ︩ Combining Tilde Left Half Below 11 | ︪ Combining Tilde Right Half Below 12 | ︫ Combining Macron Left Half Below 13 | ︬ Combining Macron Right Half Below 14 | ︭ Combining Conjoining Macron Below 15 | ︮ Combining Cyrillic Titlo Left Half 16 | ︯ Combining Cyrillic Titlo Right Half 17 | -------------------------------------------------------------------------------- /src/picker/data/kanbun.csv: -------------------------------------------------------------------------------- 1 | ㆐ Ideographic Annotation Linking Mark 2 | ㆑ Ideographic Annotation Reverse Mark 3 | ㆒ Ideographic Annotation One Mark 4 | ㆓ Ideographic Annotation Two Mark 5 | ㆔ Ideographic Annotation Three Mark 6 | ㆕ Ideographic Annotation Four Mark 7 | ㆖ Ideographic Annotation Top Mark 8 | ㆗ Ideographic Annotation Middle Mark 9 | ㆘ Ideographic Annotation Bottom Mark 10 | ㆙ Ideographic Annotation First Mark 11 | ㆚ Ideographic Annotation Second Mark 12 | ㆛ Ideographic Annotation Third Mark 13 | ㆜ Ideographic Annotation Fourth Mark 14 | ㆝ Ideographic Annotation Heaven Mark 15 | ㆞ Ideographic Annotation Earth Mark 16 | ㆟ Ideographic Annotation Man Mark 17 | -------------------------------------------------------------------------------- /src/picker/data/unified_canadian_aboriginal_syllabics_extended-a.csv: -------------------------------------------------------------------------------- 1 | 𑪰 Canadian Syllabics Nattilik Hi 2 | 𑪱 Canadian Syllabics Nattilik Hii 3 | 𑪲 Canadian Syllabics Nattilik Ho 4 | 𑪳 Canadian Syllabics Nattilik Hoo 5 | 𑪴 Canadian Syllabics Nattilik Ha 6 | 𑪵 Canadian Syllabics Nattilik Haa 7 | 𑪶 Canadian Syllabics Nattilik Shri 8 | 𑪷 Canadian Syllabics Nattilik Shrii 9 | 𑪸 Canadian Syllabics Nattilik Shro 10 | 𑪹 Canadian Syllabics Nattilik Shroo 11 | 𑪺 Canadian Syllabics Nattilik Shra 12 | 𑪻 Canadian Syllabics Nattilik Shraa 13 | 𑪼 Canadian Syllabics Spe 14 | 𑪽 Canadian Syllabics Spi 15 | 𑪾 Canadian Syllabics Spo 16 | 𑪿 Canadian Syllabics Spa 17 | -------------------------------------------------------------------------------- /src/picker/data/makasar.csv: -------------------------------------------------------------------------------- 1 | 𑻠 Makasar Letter Ka 2 | 𑻡 Makasar Letter Ga 3 | 𑻢 Makasar Letter Nga 4 | 𑻣 Makasar Letter Pa 5 | 𑻤 Makasar Letter Ba 6 | 𑻥 Makasar Letter Ma 7 | 𑻦 Makasar Letter Ta 8 | 𑻧 Makasar Letter Da 9 | 𑻨 Makasar Letter Na 10 | 𑻩 Makasar Letter Ca 11 | 𑻪 Makasar Letter Ja 12 | 𑻫 Makasar Letter Nya 13 | 𑻬 Makasar Letter Ya 14 | 𑻭 Makasar Letter Ra 15 | 𑻮 Makasar Letter La 16 | 𑻯 Makasar Letter Va 17 | 𑻰 Makasar Letter Sa 18 | 𑻱 Makasar Letter A 19 | 𑻲 Makasar Angka 20 | 𑻳 Makasar Vowel Sign I 21 | 𑻴 Makasar Vowel Sign U 22 | 𑻵 Makasar Vowel Sign E 23 | 𑻶 Makasar Vowel Sign O 24 | 𑻷 Makasar Passimbang 25 | 𑻸 Makasar End Of Section 26 | -------------------------------------------------------------------------------- /src/picker/data/elymaic.csv: -------------------------------------------------------------------------------- 1 | ‎𐿠 Elymaic Letter Aleph 2 | ‎𐿡 Elymaic Letter Beth 3 | ‎𐿢 Elymaic Letter Gimel 4 | ‎𐿣 Elymaic Letter Daleth 5 | ‎𐿤 Elymaic Letter He 6 | ‎𐿥 Elymaic Letter Waw 7 | ‎𐿦 Elymaic Letter Zayin 8 | ‎𐿧 Elymaic Letter Heth 9 | ‎𐿨 Elymaic Letter Teth 10 | ‎𐿩 Elymaic Letter Yodh 11 | ‎𐿪 Elymaic Letter Kaph 12 | ‎𐿫 Elymaic Letter Lamedh 13 | ‎𐿬 Elymaic Letter Mem 14 | ‎𐿭 Elymaic Letter Nun 15 | ‎𐿮 Elymaic Letter Samekh 16 | ‎𐿯 Elymaic Letter Ayin 17 | ‎𐿰 Elymaic Letter Pe 18 | ‎𐿱 Elymaic Letter Sadhe 19 | ‎𐿲 Elymaic Letter Qoph 20 | ‎𐿳 Elymaic Letter Resh 21 | ‎𐿴 Elymaic Letter Shin 22 | ‎𐿵 Elymaic Letter Taw 23 | ‎𐿶 Elymaic Ligature Zayin-Yodh 24 | -------------------------------------------------------------------------------- /src/picker/data/currency_symbols.csv: -------------------------------------------------------------------------------- 1 | ₠ Euro-Currency Sign 2 | ₡ Colon Sign 3 | ₢ Cruzeiro Sign 4 | ₣ French Franc Sign 5 | ₤ Lira Sign 6 | ₥ Mill Sign 7 | ₦ Naira Sign 8 | ₧ Peseta Sign 9 | ₨ Rupee Sign 10 | ₩ Won Sign 11 | ₪ New Sheqel Sign 12 | ₫ Dong Sign 13 | € Euro Sign 14 | ₭ Kip Sign 15 | ₮ Tugrik Sign 16 | ₯ Drachma Sign 17 | ₰ German Penny Sign 18 | ₱ Peso Sign 19 | ₲ Guarani Sign 20 | ₳ Austral Sign 21 | ₴ Hryvnia Sign 22 | ₵ Cedi Sign 23 | ₶ Livre Tournois Sign 24 | ₷ Spesmilo Sign 25 | ₸ Tenge Sign 26 | ₹ Indian Rupee Sign 27 | ₺ Turkish Lira Sign 28 | ₻ Nordic Mark Sign 29 | ₼ Manat Sign 30 | ₽ Ruble Sign 31 | ₾ Lari Sign 32 | ₿ Bitcoin Sign 33 | ⃀ Som Sign 34 | ⃁ Saudi Riyal Sign 35 | -------------------------------------------------------------------------------- /src/picker/data/lydian.csv: -------------------------------------------------------------------------------- 1 | ‎𐤠 Lydian Letter A 2 | ‎𐤡 Lydian Letter B 3 | ‎𐤢 Lydian Letter G 4 | ‎𐤣 Lydian Letter D 5 | ‎𐤤 Lydian Letter E 6 | ‎𐤥 Lydian Letter V 7 | ‎𐤦 Lydian Letter I 8 | ‎𐤧 Lydian Letter Y 9 | ‎𐤨 Lydian Letter K 10 | ‎𐤩 Lydian Letter L 11 | ‎𐤪 Lydian Letter M 12 | ‎𐤫 Lydian Letter N 13 | ‎𐤬 Lydian Letter O 14 | ‎𐤭 Lydian Letter R 15 | ‎𐤮 Lydian Letter Ss 16 | ‎𐤯 Lydian Letter T 17 | ‎𐤰 Lydian Letter U 18 | ‎𐤱 Lydian Letter F 19 | ‎𐤲 Lydian Letter Q 20 | ‎𐤳 Lydian Letter S 21 | ‎𐤴 Lydian Letter Tt 22 | ‎𐤵 Lydian Letter An 23 | ‎𐤶 Lydian Letter En 24 | ‎𐤷 Lydian Letter Ly 25 | ‎𐤸 Lydian Letter Nn 26 | ‎𐤹 Lydian Letter C 27 | ‎𐤿 Lydian Triangular Mark 28 | -------------------------------------------------------------------------------- /src/picker/data/lycian.csv: -------------------------------------------------------------------------------- 1 | 𐊀 Lycian Letter A 2 | 𐊁 Lycian Letter E 3 | 𐊂 Lycian Letter B 4 | 𐊃 Lycian Letter Bh 5 | 𐊄 Lycian Letter G 6 | 𐊅 Lycian Letter D 7 | 𐊆 Lycian Letter I 8 | 𐊇 Lycian Letter W 9 | 𐊈 Lycian Letter Z 10 | 𐊉 Lycian Letter Th 11 | 𐊊 Lycian Letter J 12 | 𐊋 Lycian Letter K 13 | 𐊌 Lycian Letter Q 14 | 𐊍 Lycian Letter L 15 | 𐊎 Lycian Letter M 16 | 𐊏 Lycian Letter N 17 | 𐊐 Lycian Letter Mm 18 | 𐊑 Lycian Letter Nn 19 | 𐊒 Lycian Letter U 20 | 𐊓 Lycian Letter P 21 | 𐊔 Lycian Letter Kk 22 | 𐊕 Lycian Letter R 23 | 𐊖 Lycian Letter S 24 | 𐊗 Lycian Letter T 25 | 𐊘 Lycian Letter Tt 26 | 𐊙 Lycian Letter An 27 | 𐊚 Lycian Letter En 28 | 𐊛 Lycian Letter H 29 | 𐊜 Lycian Letter X 30 | -------------------------------------------------------------------------------- /src/picker/data/small_form_variants.csv: -------------------------------------------------------------------------------- 1 | ﹐ Small Comma 2 | ﹑ Small Ideographic Comma 3 | ﹒ Small Full Stop 4 | ﹔ Small Semicolon 5 | ﹕ Small Colon 6 | ﹖ Small Question Mark 7 | ﹗ Small Exclamation Mark 8 | ﹘ Small Em Dash 9 | ﹙ Small Left Parenthesis 10 | ﹚ Small Right Parenthesis 11 | ﹛ Small Left Curly Bracket 12 | ﹜ Small Right Curly Bracket 13 | ﹝ Small Left Tortoise Shell Bracket 14 | ﹞ Small Right Tortoise Shell Bracket 15 | ﹟ Small Number Sign 16 | ﹠ Small Ampersand 17 | ﹡ Small Asterisk 18 | ﹢ Small Plus Sign 19 | ﹣ Small Hyphen-Minus 20 | ﹤ Small Less-Than Sign 21 | ﹥ Small Greater-Than Sign 22 | ﹦ Small Equals Sign 23 | ﹨ Small Reverse Solidus 24 | ﹩ Small Dollar Sign 25 | ﹪ Small Percent Sign 26 | ﹫ Small Commercial At 27 | -------------------------------------------------------------------------------- /src/picker/data/sidetic.csv: -------------------------------------------------------------------------------- 1 | ‎𐥀 Sidetic Letter N01 2 | ‎𐥁 Sidetic Letter N02 3 | ‎𐥂 Sidetic Letter N03 4 | ‎𐥃 Sidetic Letter N04 5 | ‎𐥄 Sidetic Letter N05 6 | ‎𐥅 Sidetic Letter N06 7 | ‎𐥆 Sidetic Letter N07 8 | ‎𐥇 Sidetic Letter N08 9 | ‎𐥈 Sidetic Letter N09 10 | ‎𐥉 Sidetic Letter N10 11 | ‎𐥊 Sidetic Letter N11 12 | ‎𐥋 Sidetic Letter N12 13 | ‎𐥌 Sidetic Letter N13 14 | ‎𐥍 Sidetic Letter N14 15 | ‎𐥎 Sidetic Letter N15 16 | ‎𐥏 Sidetic Letter N16 17 | ‎𐥐 Sidetic Letter N17 18 | ‎𐥑 Sidetic Letter N18 19 | ‎𐥒 Sidetic Letter N19 20 | ‎𐥓 Sidetic Letter N20 21 | ‎𐥔 Sidetic Letter N21 22 | ‎𐥕 Sidetic Letter N22 23 | ‎𐥖 Sidetic Letter N23 24 | ‎𐥗 Sidetic Letter N24 25 | ‎𐥘 Sidetic Letter N25 26 | ‎𐥙 Sidetic Letter N26 27 | -------------------------------------------------------------------------------- /src/picker/data/hatran.csv: -------------------------------------------------------------------------------- 1 | ‎𐣠 Hatran Letter Aleph 2 | ‎𐣡 Hatran Letter Beth 3 | ‎𐣢 Hatran Letter Gimel 4 | ‎𐣣 Hatran Letter Daleth-Resh 5 | ‎𐣤 Hatran Letter He 6 | ‎𐣥 Hatran Letter Waw 7 | ‎𐣦 Hatran Letter Zayn 8 | ‎𐣧 Hatran Letter Heth 9 | ‎𐣨 Hatran Letter Teth 10 | ‎𐣩 Hatran Letter Yodh 11 | ‎𐣪 Hatran Letter Kaph 12 | ‎𐣫 Hatran Letter Lamedh 13 | ‎𐣬 Hatran Letter Mem 14 | ‎𐣭 Hatran Letter Nun 15 | ‎𐣮 Hatran Letter Samekh 16 | ‎𐣯 Hatran Letter Ayn 17 | ‎𐣰 Hatran Letter Pe 18 | ‎𐣱 Hatran Letter Sadhe 19 | ‎𐣲 Hatran Letter Qoph 20 | ‎𐣴 Hatran Letter Shin 21 | ‎𐣵 Hatran Letter Taw 22 | ‎𐣻 Hatran Number One 23 | ‎𐣼 Hatran Number Five 24 | ‎𐣽 Hatran Number Ten 25 | ‎𐣾 Hatran Number Twenty 26 | ‎𐣿 Hatran Number One Hundred 27 | -------------------------------------------------------------------------------- /.github/workflows/checks.yaml: -------------------------------------------------------------------------------- 1 | name: Python Checks 2 | 3 | on: 4 | push: 5 | branches: [ "main" ] 6 | pull_request: 7 | 8 | jobs: 9 | check: 10 | runs-on: ubuntu-latest 11 | strategy: 12 | matrix: 13 | python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] 14 | steps: 15 | - uses: actions/checkout@v4 16 | 17 | - name: Set up Python and uv 18 | uses: astral-sh/setup-uv@v5 19 | with: 20 | python-version: ${{ matrix.python-version }} 21 | enable-cache: true 22 | cache-dependency-glob: "uv.lock" 23 | github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} 24 | 25 | - name: Build 26 | run: uv build 27 | 28 | - name: Run ruff 29 | run: uv run ruff check 30 | -------------------------------------------------------------------------------- /src/picker/data/sinhala_archaic_numbers.csv: -------------------------------------------------------------------------------- 1 | 𑇡 Sinhala Archaic Digit One 2 | 𑇢 Sinhala Archaic Digit Two 3 | 𑇣 Sinhala Archaic Digit Three 4 | 𑇤 Sinhala Archaic Digit Four 5 | 𑇥 Sinhala Archaic Digit Five 6 | 𑇦 Sinhala Archaic Digit Six 7 | 𑇧 Sinhala Archaic Digit Seven 8 | 𑇨 Sinhala Archaic Digit Eight 9 | 𑇩 Sinhala Archaic Digit Nine 10 | 𑇪 Sinhala Archaic Number Ten 11 | 𑇫 Sinhala Archaic Number Twenty 12 | 𑇬 Sinhala Archaic Number Thirty 13 | 𑇭 Sinhala Archaic Number Forty 14 | 𑇮 Sinhala Archaic Number Fifty 15 | 𑇯 Sinhala Archaic Number Sixty 16 | 𑇰 Sinhala Archaic Number Seventy 17 | 𑇱 Sinhala Archaic Number Eighty 18 | 𑇲 Sinhala Archaic Number Ninety 19 | 𑇳 Sinhala Archaic Number One Hundred 20 | 𑇴 Sinhala Archaic Number One Thousand 21 | -------------------------------------------------------------------------------- /src/picker/data/toto.csv: -------------------------------------------------------------------------------- 1 | 𞊐 Toto Letter Pa 2 | 𞊑 Toto Letter Ba 3 | 𞊒 Toto Letter Ta 4 | 𞊓 Toto Letter Da 5 | 𞊔 Toto Letter Ka 6 | 𞊕 Toto Letter Ga 7 | 𞊖 Toto Letter Ma 8 | 𞊗 Toto Letter Na 9 | 𞊘 Toto Letter Nga 10 | 𞊙 Toto Letter Sa 11 | 𞊚 Toto Letter Cha 12 | 𞊛 Toto Letter Ya 13 | 𞊜 Toto Letter Wa 14 | 𞊝 Toto Letter Ja 15 | 𞊞 Toto Letter Ha 16 | 𞊟 Toto Letter Ra 17 | 𞊠 Toto Letter La 18 | 𞊡 Toto Letter I 19 | 𞊢 Toto Letter Breathy I 20 | 𞊣 Toto Letter Iu 21 | 𞊤 Toto Letter Breathy Iu 22 | 𞊥 Toto Letter U 23 | 𞊦 Toto Letter E 24 | 𞊧 Toto Letter Breathy E 25 | 𞊨 Toto Letter Eo 26 | 𞊩 Toto Letter Breathy Eo 27 | 𞊪 Toto Letter O 28 | 𞊫 Toto Letter Ae 29 | 𞊬 Toto Letter Breathy Ae 30 | 𞊭 Toto Letter A 31 | 𞊮 Toto Sign Rising Tone 32 | -------------------------------------------------------------------------------- /src/picker/data/ogham.csv: -------------------------------------------------------------------------------- 1 |   Ogham Space Mark 2 | ᚁ Ogham Letter Beith 3 | ᚂ Ogham Letter Luis 4 | ᚃ Ogham Letter Fearn 5 | ᚄ Ogham Letter Sail 6 | ᚅ Ogham Letter Nion 7 | ᚆ Ogham Letter Uath 8 | ᚇ Ogham Letter Dair 9 | ᚈ Ogham Letter Tinne 10 | ᚉ Ogham Letter Coll 11 | ᚊ Ogham Letter Ceirt 12 | ᚋ Ogham Letter Muin 13 | ᚌ Ogham Letter Gort 14 | ᚍ Ogham Letter Ngeadal 15 | ᚎ Ogham Letter Straif 16 | ᚏ Ogham Letter Ruis 17 | ᚐ Ogham Letter Ailm 18 | ᚑ Ogham Letter Onn 19 | ᚒ Ogham Letter Ur 20 | ᚓ Ogham Letter Eadhadh 21 | ᚔ Ogham Letter Iodhadh 22 | ᚕ Ogham Letter Eabhadh 23 | ᚖ Ogham Letter Or 24 | ᚗ Ogham Letter Uilleann 25 | ᚘ Ogham Letter Ifin 26 | ᚙ Ogham Letter Eamhancholl 27 | ᚚ Ogham Letter Peith 28 | ᚛ Ogham Feather Mark 29 | ᚜ Ogham Reversed Feather Mark 30 | -------------------------------------------------------------------------------- /src/picker/data/gothic.csv: -------------------------------------------------------------------------------- 1 | 𐌰 Gothic Letter Ahsa 2 | 𐌱 Gothic Letter Bairkan 3 | 𐌲 Gothic Letter Giba 4 | 𐌳 Gothic Letter Dags 5 | 𐌴 Gothic Letter Aihvus 6 | 𐌵 Gothic Letter Qairthra 7 | 𐌶 Gothic Letter Iuja 8 | 𐌷 Gothic Letter Hagl 9 | 𐌸 Gothic Letter Thiuth 10 | 𐌹 Gothic Letter Eis 11 | 𐌺 Gothic Letter Kusma 12 | 𐌻 Gothic Letter Lagus 13 | 𐌼 Gothic Letter Manna 14 | 𐌽 Gothic Letter Nauths 15 | 𐌾 Gothic Letter Jer 16 | 𐌿 Gothic Letter Urus 17 | 𐍀 Gothic Letter Pairthra 18 | 𐍁 Gothic Letter Ninety 19 | 𐍂 Gothic Letter Raida 20 | 𐍃 Gothic Letter Sauil 21 | 𐍄 Gothic Letter Teiws 22 | 𐍅 Gothic Letter Winja 23 | 𐍆 Gothic Letter Faihu 24 | 𐍇 Gothic Letter Iggws 25 | 𐍈 Gothic Letter Hwair 26 | 𐍉 Gothic Letter Othal 27 | 𐍊 Gothic Letter Nine Hundred 28 | -------------------------------------------------------------------------------- /src/picker/data/meetei_mayek_extensions.csv: -------------------------------------------------------------------------------- 1 | ꫠ Meetei Mayek Letter E 2 | ꫡ Meetei Mayek Letter O 3 | ꫢ Meetei Mayek Letter Cha 4 | ꫣ Meetei Mayek Letter Nya 5 | ꫤ Meetei Mayek Letter Tta 6 | ꫥ Meetei Mayek Letter Ttha 7 | ꫦ Meetei Mayek Letter Dda 8 | ꫧ Meetei Mayek Letter Ddha 9 | ꫨ Meetei Mayek Letter Nna 10 | ꫩ Meetei Mayek Letter Sha 11 | ꫪ Meetei Mayek Letter Ssa 12 | ꫫ Meetei Mayek Vowel Sign Ii 13 | ꫬ Meetei Mayek Vowel Sign Uu 14 | ꫭ Meetei Mayek Vowel Sign Aai 15 | ꫮ Meetei Mayek Vowel Sign Au 16 | ꫯ Meetei Mayek Vowel Sign Aau 17 | ꫰ Meetei Mayek Cheikhan 18 | ꫱ Meetei Mayek Ahang Khudam 19 | ꫲ Meetei Mayek Anji 20 | ꫳ Meetei Mayek Syllable Repetition Mark 21 | ꫴ Meetei Mayek Word Repetition Mark 22 | ꫵ Meetei Mayek Vowel Sign Visarga 23 | ꫶ Meetei Mayek Virama 24 | -------------------------------------------------------------------------------- /src/picker/paths.py: -------------------------------------------------------------------------------- 1 | import os 2 | from pathlib import Path 3 | 4 | config_home = Path(os.environ.get("XDG_CONFIG_HOME", "~/.config")).expanduser() 5 | config_global = [Path(dir) for dir in os.environ.get("XDG_CONFIG_DIRS", "/etc/xdg").split(":")] 6 | data_home = Path(os.environ.get("XDG_DATA_HOME", "~/.local/share")).expanduser() 7 | cache_home = Path(os.environ.get("XDG_CACHE_HOME", "~/.cache")).expanduser() 8 | 9 | config_file_locations = [str(directory / "rofimoji.rc") for directory in [config_home] + config_global] 10 | recents_file_location = data_home / "rofimoji" / "recent" 11 | frecency_file_location = data_home / "rofimoji" / "frecency" 12 | custom_additional_files_location = data_home / "rofimoji" / "data" 13 | 14 | cache_file_location = cache_home / "rofimoji" 15 | -------------------------------------------------------------------------------- /src/picker/data/myanmar_extended-c.csv: -------------------------------------------------------------------------------- 1 | 𑛐 Myanmar Pao Digit Zero 2 | 𑛑 Myanmar Pao Digit One 3 | 𑛒 Myanmar Pao Digit Two 4 | 𑛓 Myanmar Pao Digit Three 5 | 𑛔 Myanmar Pao Digit Four 6 | 𑛕 Myanmar Pao Digit Five 7 | 𑛖 Myanmar Pao Digit Six 8 | 𑛗 Myanmar Pao Digit Seven 9 | 𑛘 Myanmar Pao Digit Eight 10 | 𑛙 Myanmar Pao Digit Nine 11 | 𑛚 Myanmar Eastern Pwo Karen Digit Zero 12 | 𑛛 Myanmar Eastern Pwo Karen Digit One 13 | 𑛜 Myanmar Eastern Pwo Karen Digit Two 14 | 𑛝 Myanmar Eastern Pwo Karen Digit Three 15 | 𑛞 Myanmar Eastern Pwo Karen Digit Four 16 | 𑛟 Myanmar Eastern Pwo Karen Digit Five 17 | 𑛠 Myanmar Eastern Pwo Karen Digit Six 18 | 𑛡 Myanmar Eastern Pwo Karen Digit Seven 19 | 𑛢 Myanmar Eastern Pwo Karen Digit Eight 20 | 𑛣 Myanmar Eastern Pwo Karen Digit Nine 21 | -------------------------------------------------------------------------------- /src/picker/clipboarder/noop.py: -------------------------------------------------------------------------------- 1 | from ..typer.typer import Typer 2 | from .clipboarder import Clipboarder 3 | 4 | 5 | class NoopClipboarder(Clipboarder): 6 | @staticmethod 7 | def supported() -> bool: 8 | return True 9 | 10 | @staticmethod 11 | def name() -> str: 12 | return "noop" 13 | 14 | def copy_characters_to_clipboard(self, characters: str) -> None: 15 | raise NoClipboarderFoundException() 16 | 17 | def copy_paste_characters(self, characters: str, active_window: str, typer: Typer) -> None: 18 | raise NoClipboarderFoundException() 19 | 20 | 21 | class NoClipboarderFoundException(Exception): 22 | def __str__(self) -> str: 23 | return "Could not find a valid way to copy to clipboard. Please check the required dependencies." 24 | -------------------------------------------------------------------------------- /src/picker/data/mandaic.csv: -------------------------------------------------------------------------------- 1 | ‎ࡀ Mandaic Letter Halqa 2 | ‎ࡁ Mandaic Letter Ab 3 | ‎ࡂ Mandaic Letter Ag 4 | ‎ࡃ Mandaic Letter Ad 5 | ‎ࡄ Mandaic Letter Ah 6 | ‎ࡅ Mandaic Letter Ushenna 7 | ‎ࡆ Mandaic Letter Az 8 | ‎ࡇ Mandaic Letter It 9 | ‎ࡈ Mandaic Letter Att 10 | ‎ࡉ Mandaic Letter Aksa 11 | ‎ࡊ Mandaic Letter Ak 12 | ‎ࡋ Mandaic Letter Al 13 | ‎ࡌ Mandaic Letter Am 14 | ‎ࡍ Mandaic Letter An 15 | ‎ࡎ Mandaic Letter As 16 | ‎ࡏ Mandaic Letter In 17 | ‎ࡐ Mandaic Letter Ap 18 | ‎ࡑ Mandaic Letter Asz 19 | ‎ࡒ Mandaic Letter Aq 20 | ‎ࡓ Mandaic Letter Ar 21 | ‎ࡔ Mandaic Letter Ash 22 | ‎ࡕ Mandaic Letter At 23 | ‎ࡖ Mandaic Letter Dushenna 24 | ‎ࡗ Mandaic Letter Kad 25 | ‎ࡘ Mandaic Letter Ain 26 | ࡙ Mandaic Affrication Mark 27 | ࡚ Mandaic Vocalization Mark 28 | ࡛ Mandaic Gemination Mark 29 | ‎࡞ Mandaic Punctuation 30 | -------------------------------------------------------------------------------- /src/picker/data/buginese.csv: -------------------------------------------------------------------------------- 1 | ᨀ Buginese Letter Ka 2 | ᨁ Buginese Letter Ga 3 | ᨂ Buginese Letter Nga 4 | ᨃ Buginese Letter Ngka 5 | ᨄ Buginese Letter Pa 6 | ᨅ Buginese Letter Ba 7 | ᨆ Buginese Letter Ma 8 | ᨇ Buginese Letter Mpa 9 | ᨈ Buginese Letter Ta 10 | ᨉ Buginese Letter Da 11 | ᨊ Buginese Letter Na 12 | ᨋ Buginese Letter Nra 13 | ᨌ Buginese Letter Ca 14 | ᨍ Buginese Letter Ja 15 | ᨎ Buginese Letter Nya 16 | ᨏ Buginese Letter Nyca 17 | ᨐ Buginese Letter Ya 18 | ᨑ Buginese Letter Ra 19 | ᨒ Buginese Letter La 20 | ᨓ Buginese Letter Va 21 | ᨔ Buginese Letter Sa 22 | ᨕ Buginese Letter A 23 | ᨖ Buginese Letter Ha 24 | ᨗ Buginese Vowel Sign I 25 | ᨘ Buginese Vowel Sign U 26 | ᨙ Buginese Vowel Sign E 27 | ᨚ Buginese Vowel Sign O 28 | ᨛ Buginese Vowel Sign Ae 29 | ᨞ Buginese Pallawa 30 | ᨟ Buginese End Of Section 31 | -------------------------------------------------------------------------------- /src/picker/data/ethiopic_supplement.csv: -------------------------------------------------------------------------------- 1 | ᎀ Ethiopic Syllable Sebatbeit Mwa 2 | ᎁ Ethiopic Syllable Mwi 3 | ᎂ Ethiopic Syllable Mwee 4 | ᎃ Ethiopic Syllable Mwe 5 | ᎄ Ethiopic Syllable Sebatbeit Bwa 6 | ᎅ Ethiopic Syllable Bwi 7 | ᎆ Ethiopic Syllable Bwee 8 | ᎇ Ethiopic Syllable Bwe 9 | ᎈ Ethiopic Syllable Sebatbeit Fwa 10 | ᎉ Ethiopic Syllable Fwi 11 | ᎊ Ethiopic Syllable Fwee 12 | ᎋ Ethiopic Syllable Fwe 13 | ᎌ Ethiopic Syllable Sebatbeit Pwa 14 | ᎍ Ethiopic Syllable Pwi 15 | ᎎ Ethiopic Syllable Pwee 16 | ᎏ Ethiopic Syllable Pwe 17 | ᎐ Ethiopic Tonal Mark Yizet 18 | ᎑ Ethiopic Tonal Mark Deret 19 | ᎒ Ethiopic Tonal Mark Rikrik 20 | ᎓ Ethiopic Tonal Mark Short Rikrik 21 | ᎔ Ethiopic Tonal Mark Difat 22 | ᎕ Ethiopic Tonal Mark Kenat 23 | ᎖ Ethiopic Tonal Mark Chiret 24 | ᎗ Ethiopic Tonal Mark Hidet 25 | ᎘ Ethiopic Tonal Mark Deret-Hidet 26 | ᎙ Ethiopic Tonal Mark Kurt 27 | -------------------------------------------------------------------------------- /src/picker/data/tai_le.csv: -------------------------------------------------------------------------------- 1 | ᥐ Tai Le Letter Ka 2 | ᥑ Tai Le Letter Xa 3 | ᥒ Tai Le Letter Nga 4 | ᥓ Tai Le Letter Tsa 5 | ᥔ Tai Le Letter Sa 6 | ᥕ Tai Le Letter Ya 7 | ᥖ Tai Le Letter Ta 8 | ᥗ Tai Le Letter Tha 9 | ᥘ Tai Le Letter La 10 | ᥙ Tai Le Letter Pa 11 | ᥚ Tai Le Letter Pha 12 | ᥛ Tai Le Letter Ma 13 | ᥜ Tai Le Letter Fa 14 | ᥝ Tai Le Letter Va 15 | ᥞ Tai Le Letter Ha 16 | ᥟ Tai Le Letter Qa 17 | ᥠ Tai Le Letter Kha 18 | ᥡ Tai Le Letter Tsha 19 | ᥢ Tai Le Letter Na 20 | ᥣ Tai Le Letter A 21 | ᥤ Tai Le Letter I 22 | ᥥ Tai Le Letter Ee 23 | ᥦ Tai Le Letter Eh 24 | ᥧ Tai Le Letter U 25 | ᥨ Tai Le Letter Oo 26 | ᥩ Tai Le Letter O 27 | ᥪ Tai Le Letter Ue 28 | ᥫ Tai Le Letter E 29 | ᥬ Tai Le Letter Aue 30 | ᥭ Tai Le Letter Ai 31 | ᥰ Tai Le Letter Tone-2 32 | ᥱ Tai Le Letter Tone-3 33 | ᥲ Tai Le Letter Tone-4 34 | ᥳ Tai Le Letter Tone-5 35 | ᥴ Tai Le Letter Tone-6 36 | -------------------------------------------------------------------------------- /src/picker/data/cjk_strokes.csv: -------------------------------------------------------------------------------- 1 | ㇀ Cjk Stroke T 2 | ㇁ Cjk Stroke Wg 3 | ㇂ Cjk Stroke Xg 4 | ㇃ Cjk Stroke Bxg 5 | ㇄ Cjk Stroke Sw 6 | ㇅ Cjk Stroke Hzz 7 | ㇆ Cjk Stroke Hzg 8 | ㇇ Cjk Stroke Hp 9 | ㇈ Cjk Stroke Hzwg 10 | ㇉ Cjk Stroke Szwg 11 | ㇊ Cjk Stroke Hzt 12 | ㇋ Cjk Stroke Hzzp 13 | ㇌ Cjk Stroke Hpwg 14 | ㇍ Cjk Stroke Hzw 15 | ㇎ Cjk Stroke Hzzz 16 | ㇏ Cjk Stroke N 17 | ㇐ Cjk Stroke H 18 | ㇑ Cjk Stroke S 19 | ㇒ Cjk Stroke P 20 | ㇓ Cjk Stroke Sp 21 | ㇔ Cjk Stroke D 22 | ㇕ Cjk Stroke Hz 23 | ㇖ Cjk Stroke Hg 24 | ㇗ Cjk Stroke Sz 25 | ㇘ Cjk Stroke Swz 26 | ㇙ Cjk Stroke St 27 | ㇚ Cjk Stroke Sg 28 | ㇛ Cjk Stroke Pd 29 | ㇜ Cjk Stroke Pz 30 | ㇝ Cjk Stroke Tn 31 | ㇞ Cjk Stroke Szz 32 | ㇟ Cjk Stroke Swg 33 | ㇠ Cjk Stroke Hxwg 34 | ㇡ Cjk Stroke Hzzzg 35 | ㇢ Cjk Stroke Pg 36 | ㇣ Cjk Stroke Q 37 | ㇤ Cjk Stroke Hxg 38 | ㇥ Cjk Stroke Szp 39 | ㇯ Ideographic Description Character Subtraction 40 | -------------------------------------------------------------------------------- /src/picker/data/bopomofo_extended.csv: -------------------------------------------------------------------------------- 1 | ㆠ Bopomofo Letter Bu 2 | ㆡ Bopomofo Letter Zi 3 | ㆢ Bopomofo Letter Ji 4 | ㆣ Bopomofo Letter Gu 5 | ㆤ Bopomofo Letter Ee 6 | ㆥ Bopomofo Letter Enn 7 | ㆦ Bopomofo Letter Oo 8 | ㆧ Bopomofo Letter Onn 9 | ㆨ Bopomofo Letter Ir 10 | ㆩ Bopomofo Letter Ann 11 | ㆪ Bopomofo Letter Inn 12 | ㆫ Bopomofo Letter Unn 13 | ㆬ Bopomofo Letter Im 14 | ㆭ Bopomofo Letter Ngg 15 | ㆮ Bopomofo Letter Ainn 16 | ㆯ Bopomofo Letter Aunn 17 | ㆰ Bopomofo Letter Am 18 | ㆱ Bopomofo Letter Om 19 | ㆲ Bopomofo Letter Ong 20 | ㆳ Bopomofo Letter Innn 21 | ㆴ Bopomofo Final Letter P 22 | ㆵ Bopomofo Final Letter T 23 | ㆶ Bopomofo Final Letter K 24 | ㆷ Bopomofo Final Letter H 25 | ㆸ Bopomofo Letter Gh 26 | ㆹ Bopomofo Letter Lh 27 | ㆺ Bopomofo Letter Zy 28 | ㆻ Bopomofo Final Letter G 29 | ㆼ Bopomofo Letter Gw 30 | ㆽ Bopomofo Letter Kw 31 | ㆾ Bopomofo Letter Oe 32 | ㆿ Bopomofo Letter Ah 33 | -------------------------------------------------------------------------------- /src/picker/data/ugaritic.csv: -------------------------------------------------------------------------------- 1 | 𐎀 Ugaritic Letter Alpa 2 | 𐎁 Ugaritic Letter Beta 3 | 𐎂 Ugaritic Letter Gamla 4 | 𐎃 Ugaritic Letter Kha 5 | 𐎄 Ugaritic Letter Delta 6 | 𐎅 Ugaritic Letter Ho 7 | 𐎆 Ugaritic Letter Wo 8 | 𐎇 Ugaritic Letter Zeta 9 | 𐎈 Ugaritic Letter Hota 10 | 𐎉 Ugaritic Letter Tet 11 | 𐎊 Ugaritic Letter Yod 12 | 𐎋 Ugaritic Letter Kaf 13 | 𐎌 Ugaritic Letter Shin 14 | 𐎍 Ugaritic Letter Lamda 15 | 𐎎 Ugaritic Letter Mem 16 | 𐎏 Ugaritic Letter Dhal 17 | 𐎐 Ugaritic Letter Nun 18 | 𐎑 Ugaritic Letter Zu 19 | 𐎒 Ugaritic Letter Samka 20 | 𐎓 Ugaritic Letter Ain 21 | 𐎔 Ugaritic Letter Pu 22 | 𐎕 Ugaritic Letter Sade 23 | 𐎖 Ugaritic Letter Qopa 24 | 𐎗 Ugaritic Letter Rasha 25 | 𐎘 Ugaritic Letter Thanna 26 | 𐎙 Ugaritic Letter Ghain 27 | 𐎚 Ugaritic Letter To 28 | 𐎛 Ugaritic Letter I 29 | 𐎜 Ugaritic Letter U 30 | 𐎝 Ugaritic Letter Ssu 31 | 𐎟 Ugaritic Word Divider 32 | -------------------------------------------------------------------------------- /src/picker/data/counting_rod_numerals.csv: -------------------------------------------------------------------------------- 1 | 𝍠 Counting Rod Unit Digit One 2 | 𝍡 Counting Rod Unit Digit Two 3 | 𝍢 Counting Rod Unit Digit Three 4 | 𝍣 Counting Rod Unit Digit Four 5 | 𝍤 Counting Rod Unit Digit Five 6 | 𝍥 Counting Rod Unit Digit Six 7 | 𝍦 Counting Rod Unit Digit Seven 8 | 𝍧 Counting Rod Unit Digit Eight 9 | 𝍨 Counting Rod Unit Digit Nine 10 | 𝍩 Counting Rod Tens Digit One 11 | 𝍪 Counting Rod Tens Digit Two 12 | 𝍫 Counting Rod Tens Digit Three 13 | 𝍬 Counting Rod Tens Digit Four 14 | 𝍭 Counting Rod Tens Digit Five 15 | 𝍮 Counting Rod Tens Digit Six 16 | 𝍯 Counting Rod Tens Digit Seven 17 | 𝍰 Counting Rod Tens Digit Eight 18 | 𝍱 Counting Rod Tens Digit Nine 19 | 𝍲 Ideographic Tally Mark One 20 | 𝍳 Ideographic Tally Mark Two 21 | 𝍴 Ideographic Tally Mark Three 22 | 𝍵 Ideographic Tally Mark Four 23 | 𝍶 Ideographic Tally Mark Five 24 | 𝍷 Tally Mark One 25 | 𝍸 Tally Mark Five 26 | -------------------------------------------------------------------------------- /src/picker/data/chorasmian.csv: -------------------------------------------------------------------------------- 1 | ‎𐾰 Chorasmian Letter Aleph 2 | ‎𐾱 Chorasmian Letter Small Aleph 3 | ‎𐾲 Chorasmian Letter Beth 4 | ‎𐾳 Chorasmian Letter Gimel 5 | ‎𐾴 Chorasmian Letter Daleth 6 | ‎𐾵 Chorasmian Letter He 7 | ‎𐾶 Chorasmian Letter Waw 8 | ‎𐾷 Chorasmian Letter Curled Waw 9 | ‎𐾸 Chorasmian Letter Zayin 10 | ‎𐾹 Chorasmian Letter Heth 11 | ‎𐾺 Chorasmian Letter Yodh 12 | ‎𐾻 Chorasmian Letter Kaph 13 | ‎𐾼 Chorasmian Letter Lamedh 14 | ‎𐾽 Chorasmian Letter Mem 15 | ‎𐾾 Chorasmian Letter Nun 16 | ‎𐾿 Chorasmian Letter Samekh 17 | ‎𐿀 Chorasmian Letter Ayin 18 | ‎𐿁 Chorasmian Letter Pe 19 | ‎𐿂 Chorasmian Letter Resh 20 | ‎𐿃 Chorasmian Letter Shin 21 | ‎𐿄 Chorasmian Letter Taw 22 | ‎𐿅 Chorasmian Number One 23 | ‎𐿆 Chorasmian Number Two 24 | ‎𐿇 Chorasmian Number Three 25 | ‎𐿈 Chorasmian Number Four 26 | ‎𐿉 Chorasmian Number Ten 27 | ‎𐿊 Chorasmian Number Twenty 28 | ‎𐿋 Chorasmian Number One Hundred 29 | -------------------------------------------------------------------------------- /src/picker/data/old_uyghur.csv: -------------------------------------------------------------------------------- 1 | ‎𐽰 Old Uyghur Letter Aleph 2 | ‎𐽱 Old Uyghur Letter Beth 3 | ‎𐽲 Old Uyghur Letter Gimel-Heth 4 | ‎𐽳 Old Uyghur Letter Waw 5 | ‎𐽴 Old Uyghur Letter Zayin 6 | ‎𐽵 Old Uyghur Letter Final Heth 7 | ‎𐽶 Old Uyghur Letter Yodh 8 | ‎𐽷 Old Uyghur Letter Kaph 9 | ‎𐽸 Old Uyghur Letter Lamedh 10 | ‎𐽹 Old Uyghur Letter Mem 11 | ‎𐽺 Old Uyghur Letter Nun 12 | ‎𐽻 Old Uyghur Letter Samekh 13 | ‎𐽼 Old Uyghur Letter Pe 14 | ‎𐽽 Old Uyghur Letter Sadhe 15 | ‎𐽾 Old Uyghur Letter Resh 16 | ‎𐽿 Old Uyghur Letter Shin 17 | ‎𐾀 Old Uyghur Letter Taw 18 | ‎𐾁 Old Uyghur Letter Lesh 19 | 𐾂 Old Uyghur Combining Dot Above 20 | 𐾃 Old Uyghur Combining Dot Below 21 | 𐾄 Old Uyghur Combining Two Dots Above 22 | 𐾅 Old Uyghur Combining Two Dots Below 23 | ‎𐾆 Old Uyghur Punctuation Bar 24 | ‎𐾇 Old Uyghur Punctuation Two Bars 25 | ‎𐾈 Old Uyghur Punctuation Two Dots 26 | ‎𐾉 Old Uyghur Punctuation Four Dots 27 | -------------------------------------------------------------------------------- /src/picker/data/phoenician.csv: -------------------------------------------------------------------------------- 1 | ‎𐤀 Phoenician Letter Alf 2 | ‎𐤁 Phoenician Letter Bet 3 | ‎𐤂 Phoenician Letter Gaml 4 | ‎𐤃 Phoenician Letter Delt 5 | ‎𐤄 Phoenician Letter He 6 | ‎𐤅 Phoenician Letter Wau 7 | ‎𐤆 Phoenician Letter Zai 8 | ‎𐤇 Phoenician Letter Het 9 | ‎𐤈 Phoenician Letter Tet 10 | ‎𐤉 Phoenician Letter Yod 11 | ‎𐤊 Phoenician Letter Kaf 12 | ‎𐤋 Phoenician Letter Lamd 13 | ‎𐤌 Phoenician Letter Mem 14 | ‎𐤍 Phoenician Letter Nun 15 | ‎𐤎 Phoenician Letter Semk 16 | ‎𐤏 Phoenician Letter Ain 17 | ‎𐤐 Phoenician Letter Pe 18 | ‎𐤑 Phoenician Letter Sade 19 | ‎𐤒 Phoenician Letter Qof 20 | ‎𐤓 Phoenician Letter Rosh 21 | ‎𐤔 Phoenician Letter Shin 22 | ‎𐤕 Phoenician Letter Tau 23 | ‎𐤖 Phoenician Number One 24 | ‎𐤗 Phoenician Number Ten 25 | ‎𐤘 Phoenician Number Twenty 26 | ‎𐤙 Phoenician Number One Hundred 27 | ‎𐤚 Phoenician Number Two 28 | ‎𐤛 Phoenician Number Three 29 | 𐤟 Phoenician Word Separator 30 | -------------------------------------------------------------------------------- /src/picker/data/rumi_numeral_symbols.csv: -------------------------------------------------------------------------------- 1 | ‎𐹠 Rumi Digit One 2 | ‎𐹡 Rumi Digit Two 3 | ‎𐹢 Rumi Digit Three 4 | ‎𐹣 Rumi Digit Four 5 | ‎𐹤 Rumi Digit Five 6 | ‎𐹥 Rumi Digit Six 7 | ‎𐹦 Rumi Digit Seven 8 | ‎𐹧 Rumi Digit Eight 9 | ‎𐹨 Rumi Digit Nine 10 | ‎𐹩 Rumi Number Ten 11 | ‎𐹪 Rumi Number Twenty 12 | ‎𐹫 Rumi Number Thirty 13 | ‎𐹬 Rumi Number Forty 14 | ‎𐹭 Rumi Number Fifty 15 | ‎𐹮 Rumi Number Sixty 16 | ‎𐹯 Rumi Number Seventy 17 | ‎𐹰 Rumi Number Eighty 18 | ‎𐹱 Rumi Number Ninety 19 | ‎𐹲 Rumi Number One Hundred 20 | ‎𐹳 Rumi Number Two Hundred 21 | ‎𐹴 Rumi Number Three Hundred 22 | ‎𐹵 Rumi Number Four Hundred 23 | ‎𐹶 Rumi Number Five Hundred 24 | ‎𐹷 Rumi Number Six Hundred 25 | ‎𐹸 Rumi Number Seven Hundred 26 | ‎𐹹 Rumi Number Eight Hundred 27 | ‎𐹺 Rumi Number Nine Hundred 28 | ‎𐹻 Rumi Fraction One Half 29 | ‎𐹼 Rumi Fraction One Quarter 30 | ‎𐹽 Rumi Fraction One Third 31 | ‎𐹾 Rumi Fraction Two Thirds 32 | -------------------------------------------------------------------------------- /src/picker/typer/noop.py: -------------------------------------------------------------------------------- 1 | from typing import List 2 | 3 | from .typer import Typer 4 | 5 | 6 | class NoopTyper(Typer): 7 | @staticmethod 8 | def supported() -> bool: 9 | return True 10 | 11 | @staticmethod 12 | def name() -> str: 13 | return "noop" 14 | 15 | def get_active_window(self) -> str: 16 | return "" 17 | 18 | def type_characters(self, characters: str, active_window: str) -> None: 19 | raise NoTyperFoundException() 20 | 21 | def insert_from_clipboard(self, active_window: str) -> None: 22 | raise NoTyperFoundException() 23 | 24 | def type_numerical(self, codepoints: List[int], active_window: str) -> None: 25 | raise NoTyperFoundException() 26 | 27 | 28 | class NoTyperFoundException(Exception): 29 | def __str__(self) -> str: 30 | return "Could not find a valid way to type characters. Please check the required dependencies." 31 | -------------------------------------------------------------------------------- /src/picker/data/miscellaneous_symbols_supplement.csv: -------------------------------------------------------------------------------- 1 | 𜻀 Hebe 2 | 𜻁 Iris 3 | 𜻂 Flora 4 | 𜻃 Metis 5 | 𜻄 Parthenope 6 | 𜻅 Victoria 7 | 𜻆 Egeria 8 | 𜻇 Irene 9 | 𜻈 Eunomia 10 | 𜻉 Psyche 11 | 𜻊 Thetis 12 | 𜻋 Melpomene 13 | 𜻌 Fortuna 14 | 𜻍 Astronomical Symbol For Asteroid Proserpina 15 | 𜻎 Bellona 16 | 𜻏 Amphitrite 17 | 𜻐 Leukothea 18 | 𜻠 Geomantic Figure Populus 19 | 𜻡 Geomantic Figure Tristitia 20 | 𜻢 Geomantic Figure Albus 21 | 𜻣 Geomantic Figure Fortuna Major 22 | 𜻤 Geomantic Figure Rubeus 23 | 𜻥 Geomantic Figure Acquisitio 24 | 𜻦 Geomantic Figure Conjunctio 25 | 𜻧 Geomantic Figure Caput Draconis 26 | 𜻨 Geomantic Figure Laetitia 27 | 𜻩 Geomantic Figure Carcer 28 | 𜻪 Geomantic Figure Amissio 29 | 𜻫 Geomantic Figure Puella 30 | 𜻬 Geomantic Figure Fortuna Minor 31 | 𜻭 Geomantic Figure Puer 32 | 𜻮 Geomantic Figure Cauda Draconis 33 | 𜻯 Geomantic Figure Via 34 | 𜻰 Medium Small White Circle With Horizontal Bar 35 | -------------------------------------------------------------------------------- /src/picker/data/rejang.csv: -------------------------------------------------------------------------------- 1 | ꤰ Rejang Letter Ka 2 | ꤱ Rejang Letter Ga 3 | ꤲ Rejang Letter Nga 4 | ꤳ Rejang Letter Ta 5 | ꤴ Rejang Letter Da 6 | ꤵ Rejang Letter Na 7 | ꤶ Rejang Letter Pa 8 | ꤷ Rejang Letter Ba 9 | ꤸ Rejang Letter Ma 10 | ꤹ Rejang Letter Ca 11 | ꤺ Rejang Letter Ja 12 | ꤻ Rejang Letter Nya 13 | ꤼ Rejang Letter Sa 14 | ꤽ Rejang Letter Ra 15 | ꤾ Rejang Letter La 16 | ꤿ Rejang Letter Ya 17 | ꥀ Rejang Letter Wa 18 | ꥁ Rejang Letter Ha 19 | ꥂ Rejang Letter Mba 20 | ꥃ Rejang Letter Ngga 21 | ꥄ Rejang Letter Nda 22 | ꥅ Rejang Letter Nyja 23 | ꥆ Rejang Letter A 24 | ꥇ Rejang Vowel Sign I 25 | ꥈ Rejang Vowel Sign U 26 | ꥉ Rejang Vowel Sign E 27 | ꥊ Rejang Vowel Sign Ai 28 | ꥋ Rejang Vowel Sign O 29 | ꥌ Rejang Vowel Sign Au 30 | ꥍ Rejang Vowel Sign Eu 31 | ꥎ Rejang Vowel Sign Ea 32 | ꥏ Rejang Consonant Sign Ng 33 | ꥐ Rejang Consonant Sign N 34 | ꥑ Rejang Consonant Sign R 35 | ꥒ Rejang Consonant Sign H 36 | ꥓ Rejang Virama 37 | ꥟ Rejang Section Mark 38 | -------------------------------------------------------------------------------- /src/picker/data/arabic_extended-c.csv: -------------------------------------------------------------------------------- 1 | ‎𐻂 Arabic Letter Dal With Two Dots Vertically Below 2 | ‎𐻃 Arabic Letter Tah With Two Dots Vertically Below 3 | ‎𐻄 Arabic Letter Kaf With Two Dots Vertically Below 4 | ‎𐻅 Arabic Small Yeh Barree With Two Dots Below 5 | ‎𐻆 Arabic Letter Thin Noon 6 | ‎𐻇 Arabic Letter Yeh With Four Dots Below 7 | 𐻐 Arabic Biblical End Of Verse 8 | 𐻑 Arabic Ligature Alayhaa As-Salaatu Was-Salaam 9 | 𐻒 Arabic Ligature Alayhim As-Salaatu Was-Salaam 10 | 𐻓 Arabic Ligature Alayhimaa As-Salaatu Was-Salaam 11 | 𐻔 Arabic Ligature Qaddasa Allaahu Sirrah 12 | 𐻕 Arabic Ligature Quddisa Sirruhum 13 | 𐻖 Arabic Ligature Quddisa Sirruhumaa 14 | 𐻗 Arabic Ligature Quddisat Asraaruhum 15 | 𐻘 Arabic Ligature Nawwara Allaahu Marqadah 16 | 𐻺 Arabic Double Vertical Bar Below 17 | 𐻻 Arabic Small Low Noon 18 | 𐻼 Arabic Combining Alef Overlay 19 | 𐻽 Arabic Small Low Word Sakta 20 | 𐻾 Arabic Small Low Word Qasr 21 | 𐻿 Arabic Small Low Word Madda 22 | -------------------------------------------------------------------------------- /src/picker/data/mro.csv: -------------------------------------------------------------------------------- 1 | 𖩀 Mro Letter Ta 2 | 𖩁 Mro Letter Ngi 3 | 𖩂 Mro Letter Yo 4 | 𖩃 Mro Letter Mim 5 | 𖩄 Mro Letter Ba 6 | 𖩅 Mro Letter Da 7 | 𖩆 Mro Letter A 8 | 𖩇 Mro Letter Phi 9 | 𖩈 Mro Letter Khai 10 | 𖩉 Mro Letter Hao 11 | 𖩊 Mro Letter Dai 12 | 𖩋 Mro Letter Chu 13 | 𖩌 Mro Letter Keaae 14 | 𖩍 Mro Letter Ol 15 | 𖩎 Mro Letter Maem 16 | 𖩏 Mro Letter Nin 17 | 𖩐 Mro Letter Pa 18 | 𖩑 Mro Letter Oo 19 | 𖩒 Mro Letter O 20 | 𖩓 Mro Letter Ro 21 | 𖩔 Mro Letter Shi 22 | 𖩕 Mro Letter Thea 23 | 𖩖 Mro Letter Ea 24 | 𖩗 Mro Letter Wa 25 | 𖩘 Mro Letter E 26 | 𖩙 Mro Letter Ko 27 | 𖩚 Mro Letter Lan 28 | 𖩛 Mro Letter La 29 | 𖩜 Mro Letter Hai 30 | 𖩝 Mro Letter Ri 31 | 𖩞 Mro Letter Tek 32 | 𖩠 Mro Digit Zero 33 | 𖩡 Mro Digit One 34 | 𖩢 Mro Digit Two 35 | 𖩣 Mro Digit Three 36 | 𖩤 Mro Digit Four 37 | 𖩥 Mro Digit Five 38 | 𖩦 Mro Digit Six 39 | 𖩧 Mro Digit Seven 40 | 𖩨 Mro Digit Eight 41 | 𖩩 Mro Digit Nine 42 | 𖩮 Mro Danda 43 | 𖩯 Mro Double Danda 44 | -------------------------------------------------------------------------------- /src/picker/data/ethiopic_extended-a.csv: -------------------------------------------------------------------------------- 1 | ꬁ Ethiopic Syllable Tthu 2 | ꬂ Ethiopic Syllable Tthi 3 | ꬃ Ethiopic Syllable Tthaa 4 | ꬄ Ethiopic Syllable Tthee 5 | ꬅ Ethiopic Syllable Tthe 6 | ꬆ Ethiopic Syllable Ttho 7 | ꬉ Ethiopic Syllable Ddhu 8 | ꬊ Ethiopic Syllable Ddhi 9 | ꬋ Ethiopic Syllable Ddhaa 10 | ꬌ Ethiopic Syllable Ddhee 11 | ꬍ Ethiopic Syllable Ddhe 12 | ꬎ Ethiopic Syllable Ddho 13 | ꬑ Ethiopic Syllable Dzu 14 | ꬒ Ethiopic Syllable Dzi 15 | ꬓ Ethiopic Syllable Dzaa 16 | ꬔ Ethiopic Syllable Dzee 17 | ꬕ Ethiopic Syllable Dze 18 | ꬖ Ethiopic Syllable Dzo 19 | ꬠ Ethiopic Syllable Cchha 20 | ꬡ Ethiopic Syllable Cchhu 21 | ꬢ Ethiopic Syllable Cchhi 22 | ꬣ Ethiopic Syllable Cchhaa 23 | ꬤ Ethiopic Syllable Cchhee 24 | ꬥ Ethiopic Syllable Cchhe 25 | ꬦ Ethiopic Syllable Cchho 26 | ꬨ Ethiopic Syllable Bba 27 | ꬩ Ethiopic Syllable Bbu 28 | ꬪ Ethiopic Syllable Bbi 29 | ꬫ Ethiopic Syllable Bbaa 30 | ꬬ Ethiopic Syllable Bbee 31 | ꬭ Ethiopic Syllable Bbe 32 | ꬮ Ethiopic Syllable Bbo 33 | -------------------------------------------------------------------------------- /src/picker/typer/cliclick.py: -------------------------------------------------------------------------------- 1 | from subprocess import run 2 | from typing import List 3 | 4 | from ..abstractionhelper import is_installed 5 | from .typer import Typer 6 | 7 | 8 | class CliclickTyper(Typer): 9 | @staticmethod 10 | def supported() -> bool: 11 | return is_installed("cliclick") 12 | 13 | @staticmethod 14 | def name() -> str: 15 | return "cliclick" 16 | 17 | def get_active_window(self) -> str: 18 | return "" 19 | 20 | def type_characters(self, characters: str, active_window: str) -> None: 21 | pass 22 | 23 | 24 | def insert_from_clipboard(self, active_window: str) -> None: 25 | run( 26 | [ 27 | "cliclick", 28 | "-w 100", 29 | "kd:cmd", 30 | "t:v", 31 | "ku:cmd" 32 | ] 33 | ) 34 | 35 | def type_numerical(self, codepoints: List[int], active_window: str) -> None: 36 | pass 37 | -------------------------------------------------------------------------------- /src/picker/data/ethiopic_extended-b.csv: -------------------------------------------------------------------------------- 1 | 𞟠 Ethiopic Syllable Hhya 2 | 𞟡 Ethiopic Syllable Hhyu 3 | 𞟢 Ethiopic Syllable Hhyi 4 | 𞟣 Ethiopic Syllable Hhyaa 5 | 𞟤 Ethiopic Syllable Hhyee 6 | 𞟥 Ethiopic Syllable Hhye 7 | 𞟦 Ethiopic Syllable Hhyo 8 | 𞟨 Ethiopic Syllable Gurage Hhwa 9 | 𞟩 Ethiopic Syllable Hhwi 10 | 𞟪 Ethiopic Syllable Hhwee 11 | 𞟫 Ethiopic Syllable Hhwe 12 | 𞟭 Ethiopic Syllable Gurage Mwi 13 | 𞟮 Ethiopic Syllable Gurage Mwee 14 | 𞟰 Ethiopic Syllable Gurage Qwi 15 | 𞟱 Ethiopic Syllable Gurage Qwee 16 | 𞟲 Ethiopic Syllable Gurage Qwe 17 | 𞟳 Ethiopic Syllable Gurage Bwi 18 | 𞟴 Ethiopic Syllable Gurage Bwee 19 | 𞟵 Ethiopic Syllable Gurage Kwi 20 | 𞟶 Ethiopic Syllable Gurage Kwee 21 | 𞟷 Ethiopic Syllable Gurage Kwe 22 | 𞟸 Ethiopic Syllable Gurage Gwi 23 | 𞟹 Ethiopic Syllable Gurage Gwee 24 | 𞟺 Ethiopic Syllable Gurage Gwe 25 | 𞟻 Ethiopic Syllable Gurage Fwi 26 | 𞟼 Ethiopic Syllable Gurage Fwee 27 | 𞟽 Ethiopic Syllable Gurage Pwi 28 | 𞟾 Ethiopic Syllable Gurage Pwee 29 | -------------------------------------------------------------------------------- /src/picker/data/ideographic_description_characters.csv: -------------------------------------------------------------------------------- 1 | ⿰ Ideographic Description Character Left To Right 2 | ⿱ Ideographic Description Character Above To Below 3 | ⿲ Ideographic Description Character Left To Middle And Right 4 | ⿳ Ideographic Description Character Above To Middle And Below 5 | ⿴ Ideographic Description Character Full Surround 6 | ⿵ Ideographic Description Character Surround From Above 7 | ⿶ Ideographic Description Character Surround From Below 8 | ⿷ Ideographic Description Character Surround From Left 9 | ⿸ Ideographic Description Character Surround From Upper Left 10 | ⿹ Ideographic Description Character Surround From Upper Right 11 | ⿺ Ideographic Description Character Surround From Lower Left 12 | ⿻ Ideographic Description Character Overlaid 13 | ⿼ Ideographic Description Character Surround From Right 14 | ⿽ Ideographic Description Character Surround From Lower Right 15 | ⿾ Ideographic Description Character Horizontal Reflection 16 | ⿿ Ideographic Description Character Rotation 17 | -------------------------------------------------------------------------------- /src/picker/data/multani.csv: -------------------------------------------------------------------------------- 1 | 𑊀 Multani Letter A 2 | 𑊁 Multani Letter I 3 | 𑊂 Multani Letter U 4 | 𑊃 Multani Letter E 5 | 𑊄 Multani Letter Ka 6 | 𑊅 Multani Letter Kha 7 | 𑊆 Multani Letter Ga 8 | 𑊈 Multani Letter Gha 9 | 𑊊 Multani Letter Ca 10 | 𑊋 Multani Letter Cha 11 | 𑊌 Multani Letter Ja 12 | 𑊍 Multani Letter Jja 13 | 𑊏 Multani Letter Nya 14 | 𑊐 Multani Letter Tta 15 | 𑊑 Multani Letter Ttha 16 | 𑊒 Multani Letter Dda 17 | 𑊓 Multani Letter Ddda 18 | 𑊔 Multani Letter Ddha 19 | 𑊕 Multani Letter Nna 20 | 𑊖 Multani Letter Ta 21 | 𑊗 Multani Letter Tha 22 | 𑊘 Multani Letter Da 23 | 𑊙 Multani Letter Dha 24 | 𑊚 Multani Letter Na 25 | 𑊛 Multani Letter Pa 26 | 𑊜 Multani Letter Pha 27 | 𑊝 Multani Letter Ba 28 | 𑊟 Multani Letter Bha 29 | 𑊠 Multani Letter Ma 30 | 𑊡 Multani Letter Ya 31 | 𑊢 Multani Letter Ra 32 | 𑊣 Multani Letter La 33 | 𑊤 Multani Letter Va 34 | 𑊥 Multani Letter Sa 35 | 𑊦 Multani Letter Ha 36 | 𑊧 Multani Letter Rra 37 | 𑊨 Multani Letter Rha 38 | 𑊩 Multani Section Mark 39 | -------------------------------------------------------------------------------- /src/picker/data/coptic_epact_numbers.csv: -------------------------------------------------------------------------------- 1 | 𐋠 Coptic Epact Thousands Mark 2 | 𐋡 Coptic Epact Digit One 3 | 𐋢 Coptic Epact Digit Two 4 | 𐋣 Coptic Epact Digit Three 5 | 𐋤 Coptic Epact Digit Four 6 | 𐋥 Coptic Epact Digit Five 7 | 𐋦 Coptic Epact Digit Six 8 | 𐋧 Coptic Epact Digit Seven 9 | 𐋨 Coptic Epact Digit Eight 10 | 𐋩 Coptic Epact Digit Nine 11 | 𐋪 Coptic Epact Number Ten 12 | 𐋫 Coptic Epact Number Twenty 13 | 𐋬 Coptic Epact Number Thirty 14 | 𐋭 Coptic Epact Number Forty 15 | 𐋮 Coptic Epact Number Fifty 16 | 𐋯 Coptic Epact Number Sixty 17 | 𐋰 Coptic Epact Number Seventy 18 | 𐋱 Coptic Epact Number Eighty 19 | 𐋲 Coptic Epact Number Ninety 20 | 𐋳 Coptic Epact Number One Hundred 21 | 𐋴 Coptic Epact Number Two Hundred 22 | 𐋵 Coptic Epact Number Three Hundred 23 | 𐋶 Coptic Epact Number Four Hundred 24 | 𐋷 Coptic Epact Number Five Hundred 25 | 𐋸 Coptic Epact Number Six Hundred 26 | 𐋹 Coptic Epact Number Seven Hundred 27 | 𐋺 Coptic Epact Number Eight Hundred 28 | 𐋻 Coptic Epact Number Nine Hundred 29 | -------------------------------------------------------------------------------- /src/picker/data/khmer_symbols.csv: -------------------------------------------------------------------------------- 1 | ᧠ Khmer Symbol Pathamasat 2 | ᧡ Khmer Symbol Muoy Koet 3 | ᧢ Khmer Symbol Pii Koet 4 | ᧣ Khmer Symbol Bei Koet 5 | ᧤ Khmer Symbol Buon Koet 6 | ᧥ Khmer Symbol Pram Koet 7 | ᧦ Khmer Symbol Pram-Muoy Koet 8 | ᧧ Khmer Symbol Pram-Pii Koet 9 | ᧨ Khmer Symbol Pram-Bei Koet 10 | ᧩ Khmer Symbol Pram-Buon Koet 11 | ᧪ Khmer Symbol Dap Koet 12 | ᧫ Khmer Symbol Dap-Muoy Koet 13 | ᧬ Khmer Symbol Dap-Pii Koet 14 | ᧭ Khmer Symbol Dap-Bei Koet 15 | ᧮ Khmer Symbol Dap-Buon Koet 16 | ᧯ Khmer Symbol Dap-Pram Koet 17 | ᧰ Khmer Symbol Tuteyasat 18 | ᧱ Khmer Symbol Muoy Roc 19 | ᧲ Khmer Symbol Pii Roc 20 | ᧳ Khmer Symbol Bei Roc 21 | ᧴ Khmer Symbol Buon Roc 22 | ᧵ Khmer Symbol Pram Roc 23 | ᧶ Khmer Symbol Pram-Muoy Roc 24 | ᧷ Khmer Symbol Pram-Pii Roc 25 | ᧸ Khmer Symbol Pram-Bei Roc 26 | ᧹ Khmer Symbol Pram-Buon Roc 27 | ᧺ Khmer Symbol Dap Roc 28 | ᧻ Khmer Symbol Dap-Muoy Roc 29 | ᧼ Khmer Symbol Dap-Pii Roc 30 | ᧽ Khmer Symbol Dap-Bei Roc 31 | ᧾ Khmer Symbol Dap-Buon Roc 32 | ᧿ Khmer Symbol Dap-Pram Roc 33 | -------------------------------------------------------------------------------- /src/picker/data/palmyrene.csv: -------------------------------------------------------------------------------- 1 | ‎𐡠 Palmyrene Letter Aleph 2 | ‎𐡡 Palmyrene Letter Beth 3 | ‎𐡢 Palmyrene Letter Gimel 4 | ‎𐡣 Palmyrene Letter Daleth 5 | ‎𐡤 Palmyrene Letter He 6 | ‎𐡥 Palmyrene Letter Waw 7 | ‎𐡦 Palmyrene Letter Zayin 8 | ‎𐡧 Palmyrene Letter Heth 9 | ‎𐡨 Palmyrene Letter Teth 10 | ‎𐡩 Palmyrene Letter Yodh 11 | ‎𐡪 Palmyrene Letter Kaph 12 | ‎𐡫 Palmyrene Letter Lamedh 13 | ‎𐡬 Palmyrene Letter Mem 14 | ‎𐡭 Palmyrene Letter Final Nun 15 | ‎𐡮 Palmyrene Letter Nun 16 | ‎𐡯 Palmyrene Letter Samekh 17 | ‎𐡰 Palmyrene Letter Ayin 18 | ‎𐡱 Palmyrene Letter Pe 19 | ‎𐡲 Palmyrene Letter Sadhe 20 | ‎𐡳 Palmyrene Letter Qoph 21 | ‎𐡴 Palmyrene Letter Resh 22 | ‎𐡵 Palmyrene Letter Shin 23 | ‎𐡶 Palmyrene Letter Taw 24 | ‎𐡷 Palmyrene Left-Pointing Fleuron 25 | ‎𐡸 Palmyrene Right-Pointing Fleuron 26 | ‎𐡹 Palmyrene Number One 27 | ‎𐡺 Palmyrene Number Two 28 | ‎𐡻 Palmyrene Number Three 29 | ‎𐡼 Palmyrene Number Four 30 | ‎𐡽 Palmyrene Number Five 31 | ‎𐡾 Palmyrene Number Ten 32 | ‎𐡿 Palmyrene Number Twenty 33 | -------------------------------------------------------------------------------- /src/picker/data/block_elements.csv: -------------------------------------------------------------------------------- 1 | ▀ Upper Half Block 2 | ▁ Lower One Eighth Block 3 | ▂ Lower One Quarter Block 4 | ▃ Lower Three Eighths Block 5 | ▄ Lower Half Block 6 | ▅ Lower Five Eighths Block 7 | ▆ Lower Three Quarters Block 8 | ▇ Lower Seven Eighths Block 9 | █ Full Block 10 | ▉ Left Seven Eighths Block 11 | ▊ Left Three Quarters Block 12 | ▋ Left Five Eighths Block 13 | ▌ Left Half Block 14 | ▍ Left Three Eighths Block 15 | ▎ Left One Quarter Block 16 | ▏ Left One Eighth Block 17 | ▐ Right Half Block 18 | ░ Light Shade 19 | ▒ Medium Shade 20 | ▓ Dark Shade 21 | ▔ Upper One Eighth Block 22 | ▕ Right One Eighth Block 23 | ▖ Quadrant Lower Left 24 | ▗ Quadrant Lower Right 25 | ▘ Quadrant Upper Left 26 | ▙ Quadrant Upper Left And Lower Left And Lower Right 27 | ▚ Quadrant Upper Left And Lower Right 28 | ▛ Quadrant Upper Left And Upper Right And Lower Left 29 | ▜ Quadrant Upper Left And Upper Right And Lower Right 30 | ▝ Quadrant Upper Right 31 | ▞ Quadrant Upper Right And Lower Left 32 | ▟ Quadrant Upper Right And Lower Left And Lower Right 33 | -------------------------------------------------------------------------------- /src/picker/data/elbasan.csv: -------------------------------------------------------------------------------- 1 | 𐔀 Elbasan Letter A 2 | 𐔁 Elbasan Letter Be 3 | 𐔂 Elbasan Letter Ce 4 | 𐔃 Elbasan Letter Che 5 | 𐔄 Elbasan Letter De 6 | 𐔅 Elbasan Letter Nde 7 | 𐔆 Elbasan Letter Dhe 8 | 𐔇 Elbasan Letter Ei 9 | 𐔈 Elbasan Letter E 10 | 𐔉 Elbasan Letter Fe 11 | 𐔊 Elbasan Letter Ge 12 | 𐔋 Elbasan Letter Gje 13 | 𐔌 Elbasan Letter He 14 | 𐔍 Elbasan Letter I 15 | 𐔎 Elbasan Letter Je 16 | 𐔏 Elbasan Letter Ke 17 | 𐔐 Elbasan Letter Le 18 | 𐔑 Elbasan Letter Lle 19 | 𐔒 Elbasan Letter Me 20 | 𐔓 Elbasan Letter Ne 21 | 𐔔 Elbasan Letter Na 22 | 𐔕 Elbasan Letter Nje 23 | 𐔖 Elbasan Letter O 24 | 𐔗 Elbasan Letter Pe 25 | 𐔘 Elbasan Letter Qe 26 | 𐔙 Elbasan Letter Re 27 | 𐔚 Elbasan Letter Rre 28 | 𐔛 Elbasan Letter Se 29 | 𐔜 Elbasan Letter She 30 | 𐔝 Elbasan Letter Te 31 | 𐔞 Elbasan Letter The 32 | 𐔟 Elbasan Letter U 33 | 𐔠 Elbasan Letter Ve 34 | 𐔡 Elbasan Letter Xe 35 | 𐔢 Elbasan Letter Y 36 | 𐔣 Elbasan Letter Ze 37 | 𐔤 Elbasan Letter Zhe 38 | 𐔥 Elbasan Letter Ghe 39 | 𐔦 Elbasan Letter Ghamma 40 | 𐔧 Elbasan Letter Khe 41 | -------------------------------------------------------------------------------- /src/picker/clipboarder/pbcopy.py: -------------------------------------------------------------------------------- 1 | from subprocess import run 2 | 3 | from ..abstractionhelper import is_installed 4 | from ..typer.typer import Typer 5 | from .clipboarder import Clipboarder 6 | 7 | 8 | class PBCopyClipboarder(Clipboarder): 9 | @staticmethod 10 | def supported() -> bool: 11 | return is_installed("pbcopy") 12 | 13 | @staticmethod 14 | def name() -> str: 15 | return "pbcopy" 16 | 17 | def copy_characters_to_clipboard(self, characters: str) -> None: 18 | run(["pbcopy"], input=characters, encoding="utf-8") 19 | 20 | def copy_paste_characters(self, characters: str, active_window: str, typer: Typer) -> None: 21 | old_clipboard_content = run(args=["pbpaste"], capture_output=True, encoding="utf-8") 22 | 23 | run(args=["pbcopy"], input=characters, encoding="utf-8") 24 | 25 | typer.insert_from_clipboard(active_window) 26 | 27 | if old_clipboard_content.returncode == 0: 28 | run(args=["pbcopy"], input=old_clipboard_content.stdout, encoding="utf-8") 29 | -------------------------------------------------------------------------------- /src/picker/data/osmanya.csv: -------------------------------------------------------------------------------- 1 | 𐒀 Osmanya Letter Alef 2 | 𐒁 Osmanya Letter Ba 3 | 𐒂 Osmanya Letter Ta 4 | 𐒃 Osmanya Letter Ja 5 | 𐒄 Osmanya Letter Xa 6 | 𐒅 Osmanya Letter Kha 7 | 𐒆 Osmanya Letter Deel 8 | 𐒇 Osmanya Letter Ra 9 | 𐒈 Osmanya Letter Sa 10 | 𐒉 Osmanya Letter Shiin 11 | 𐒊 Osmanya Letter Dha 12 | 𐒋 Osmanya Letter Cayn 13 | 𐒌 Osmanya Letter Ga 14 | 𐒍 Osmanya Letter Fa 15 | 𐒎 Osmanya Letter Qaaf 16 | 𐒏 Osmanya Letter Kaaf 17 | 𐒐 Osmanya Letter Laan 18 | 𐒑 Osmanya Letter Miin 19 | 𐒒 Osmanya Letter Nuun 20 | 𐒓 Osmanya Letter Waw 21 | 𐒔 Osmanya Letter Ha 22 | 𐒕 Osmanya Letter Ya 23 | 𐒖 Osmanya Letter A 24 | 𐒗 Osmanya Letter E 25 | 𐒘 Osmanya Letter I 26 | 𐒙 Osmanya Letter O 27 | 𐒚 Osmanya Letter U 28 | 𐒛 Osmanya Letter Aa 29 | 𐒜 Osmanya Letter Ee 30 | 𐒝 Osmanya Letter Oo 31 | 𐒠 Osmanya Digit Zero 32 | 𐒡 Osmanya Digit One 33 | 𐒢 Osmanya Digit Two 34 | 𐒣 Osmanya Digit Three 35 | 𐒤 Osmanya Digit Four 36 | 𐒥 Osmanya Digit Five 37 | 𐒦 Osmanya Digit Six 38 | 𐒧 Osmanya Digit Seven 39 | 𐒨 Osmanya Digit Eight 40 | 𐒩 Osmanya Digit Nine 41 | -------------------------------------------------------------------------------- /src/picker/data/bassa_vah.csv: -------------------------------------------------------------------------------- 1 | 𖫐 Bassa Vah Letter Enni 2 | 𖫑 Bassa Vah Letter Ka 3 | 𖫒 Bassa Vah Letter Se 4 | 𖫓 Bassa Vah Letter Fa 5 | 𖫔 Bassa Vah Letter Mbe 6 | 𖫕 Bassa Vah Letter Yie 7 | 𖫖 Bassa Vah Letter Gah 8 | 𖫗 Bassa Vah Letter Dhii 9 | 𖫘 Bassa Vah Letter Kpah 10 | 𖫙 Bassa Vah Letter Jo 11 | 𖫚 Bassa Vah Letter Hwah 12 | 𖫛 Bassa Vah Letter Wa 13 | 𖫜 Bassa Vah Letter Zo 14 | 𖫝 Bassa Vah Letter Gbu 15 | 𖫞 Bassa Vah Letter Do 16 | 𖫟 Bassa Vah Letter Ce 17 | 𖫠 Bassa Vah Letter Uwu 18 | 𖫡 Bassa Vah Letter To 19 | 𖫢 Bassa Vah Letter Ba 20 | 𖫣 Bassa Vah Letter Vu 21 | 𖫤 Bassa Vah Letter Yein 22 | 𖫥 Bassa Vah Letter Pa 23 | 𖫦 Bassa Vah Letter Wadda 24 | 𖫧 Bassa Vah Letter A 25 | 𖫨 Bassa Vah Letter O 26 | 𖫩 Bassa Vah Letter Oo 27 | 𖫪 Bassa Vah Letter U 28 | 𖫫 Bassa Vah Letter Ee 29 | 𖫬 Bassa Vah Letter E 30 | 𖫭 Bassa Vah Letter I 31 | 𖫰 Bassa Vah Combining High Tone 32 | 𖫱 Bassa Vah Combining Low Tone 33 | 𖫲 Bassa Vah Combining Mid Tone 34 | 𖫳 Bassa Vah Combining Low-Mid Tone 35 | 𖫴 Bassa Vah Combining High-Low Tone 36 | 𖫵 Bassa Vah Full Stop 37 | -------------------------------------------------------------------------------- /src/picker/typer/wtype.py: -------------------------------------------------------------------------------- 1 | from subprocess import run 2 | from typing import List 3 | 4 | from ..abstractionhelper import is_installed, is_wayland 5 | from .typer import Typer 6 | 7 | 8 | class WTypeTyper(Typer): 9 | @staticmethod 10 | def supported() -> bool: 11 | return is_wayland() and is_installed("wtype") 12 | 13 | @staticmethod 14 | def name() -> str: 15 | return "wtype" 16 | 17 | def get_active_window(self) -> str: 18 | return "not possible with wtype" 19 | 20 | def type_characters(self, characters: str, active_window: str) -> None: 21 | run(["wtype", characters]) 22 | 23 | def insert_from_clipboard(self, active_window: str) -> None: 24 | run(["wtype", "-M", "shift", "-P", "Insert", "-p", "Insert", "-m", "shift"]) 25 | 26 | def type_numerical(self, codepoints: List[int], active_window: str) -> None: 27 | codepoint_list = " ".join([f"U{codepoint:x}" for codepoint in codepoints]) 28 | 29 | run(["wtype", "-M", "ctrl", "-M", "shift", codepoint_list, "-m", "ctrl", "-m", "shift"]) 30 | -------------------------------------------------------------------------------- /src/picker/data/mahajani.csv: -------------------------------------------------------------------------------- 1 | 𑅐 Mahajani Letter A 2 | 𑅑 Mahajani Letter I 3 | 𑅒 Mahajani Letter U 4 | 𑅓 Mahajani Letter E 5 | 𑅔 Mahajani Letter O 6 | 𑅕 Mahajani Letter Ka 7 | 𑅖 Mahajani Letter Kha 8 | 𑅗 Mahajani Letter Ga 9 | 𑅘 Mahajani Letter Gha 10 | 𑅙 Mahajani Letter Ca 11 | 𑅚 Mahajani Letter Cha 12 | 𑅛 Mahajani Letter Ja 13 | 𑅜 Mahajani Letter Jha 14 | 𑅝 Mahajani Letter Nya 15 | 𑅞 Mahajani Letter Tta 16 | 𑅟 Mahajani Letter Ttha 17 | 𑅠 Mahajani Letter Dda 18 | 𑅡 Mahajani Letter Ddha 19 | 𑅢 Mahajani Letter Nna 20 | 𑅣 Mahajani Letter Ta 21 | 𑅤 Mahajani Letter Tha 22 | 𑅥 Mahajani Letter Da 23 | 𑅦 Mahajani Letter Dha 24 | 𑅧 Mahajani Letter Na 25 | 𑅨 Mahajani Letter Pa 26 | 𑅩 Mahajani Letter Pha 27 | 𑅪 Mahajani Letter Ba 28 | 𑅫 Mahajani Letter Bha 29 | 𑅬 Mahajani Letter Ma 30 | 𑅭 Mahajani Letter Ra 31 | 𑅮 Mahajani Letter La 32 | 𑅯 Mahajani Letter Va 33 | 𑅰 Mahajani Letter Sa 34 | 𑅱 Mahajani Letter Ha 35 | 𑅲 Mahajani Letter Rra 36 | 𑅳 Mahajani Sign Nukta 37 | 𑅴 Mahajani Abbreviation Sign 38 | 𑅵 Mahajani Section Mark 39 | 𑅶 Mahajani Ligature Shri 40 | -------------------------------------------------------------------------------- /src/picker/data/hangul_jamo_extended-a.csv: -------------------------------------------------------------------------------- 1 | ꥠ Hangul Choseong Tikeut-Mieum 2 | ꥡ Hangul Choseong Tikeut-Pieup 3 | ꥢ Hangul Choseong Tikeut-Sios 4 | ꥣ Hangul Choseong Tikeut-Cieuc 5 | ꥤ Hangul Choseong Rieul-Kiyeok 6 | ꥥ Hangul Choseong Rieul-Ssangkiyeok 7 | ꥦ Hangul Choseong Rieul-Tikeut 8 | ꥧ Hangul Choseong Rieul-Ssangtikeut 9 | ꥨ Hangul Choseong Rieul-Mieum 10 | ꥩ Hangul Choseong Rieul-Pieup 11 | ꥪ Hangul Choseong Rieul-Ssangpieup 12 | ꥫ Hangul Choseong Rieul-Kapyeounpieup 13 | ꥬ Hangul Choseong Rieul-Sios 14 | ꥭ Hangul Choseong Rieul-Cieuc 15 | ꥮ Hangul Choseong Rieul-Khieukh 16 | ꥯ Hangul Choseong Mieum-Kiyeok 17 | ꥰ Hangul Choseong Mieum-Tikeut 18 | ꥱ Hangul Choseong Mieum-Sios 19 | ꥲ Hangul Choseong Pieup-Sios-Thieuth 20 | ꥳ Hangul Choseong Pieup-Khieukh 21 | ꥴ Hangul Choseong Pieup-Hieuh 22 | ꥵ Hangul Choseong Ssangsios-Pieup 23 | ꥶ Hangul Choseong Ieung-Rieul 24 | ꥷ Hangul Choseong Ieung-Hieuh 25 | ꥸ Hangul Choseong Ssangcieuc-Hieuh 26 | ꥹ Hangul Choseong Ssangthieuth 27 | ꥺ Hangul Choseong Phieuph-Hieuh 28 | ꥻ Hangul Choseong Hieuh-Sios 29 | ꥼ Hangul Choseong Ssangyeorinhieuh 30 | -------------------------------------------------------------------------------- /src/picker/data/myanmar_extended-b.csv: -------------------------------------------------------------------------------- 1 | ꧠ Myanmar Letter Shan Gha 2 | ꧡ Myanmar Letter Shan Cha 3 | ꧢ Myanmar Letter Shan Jha 4 | ꧣ Myanmar Letter Shan Nna 5 | ꧤ Myanmar Letter Shan Bha 6 | ꧥ Myanmar Sign Shan Saw 7 | ꧦ Myanmar Modifier Letter Shan Reduplication 8 | ꧧ Myanmar Letter Tai Laing Nya 9 | ꧨ Myanmar Letter Tai Laing Fa 10 | ꧩ Myanmar Letter Tai Laing Ga 11 | ꧪ Myanmar Letter Tai Laing Gha 12 | ꧫ Myanmar Letter Tai Laing Ja 13 | ꧬ Myanmar Letter Tai Laing Jha 14 | ꧭ Myanmar Letter Tai Laing Dda 15 | ꧮ Myanmar Letter Tai Laing Ddha 16 | ꧯ Myanmar Letter Tai Laing Nna 17 | ꧰ Myanmar Tai Laing Digit Zero 18 | ꧱ Myanmar Tai Laing Digit One 19 | ꧲ Myanmar Tai Laing Digit Two 20 | ꧳ Myanmar Tai Laing Digit Three 21 | ꧴ Myanmar Tai Laing Digit Four 22 | ꧵ Myanmar Tai Laing Digit Five 23 | ꧶ Myanmar Tai Laing Digit Six 24 | ꧷ Myanmar Tai Laing Digit Seven 25 | ꧸ Myanmar Tai Laing Digit Eight 26 | ꧹ Myanmar Tai Laing Digit Nine 27 | ꧺ Myanmar Letter Tai Laing Lla 28 | ꧻ Myanmar Letter Tai Laing Da 29 | ꧼ Myanmar Letter Tai Laing Dha 30 | ꧽ Myanmar Letter Tai Laing Ba 31 | ꧾ Myanmar Letter Tai Laing Bha 32 | -------------------------------------------------------------------------------- /src/picker/data/myanmar_extended-a.csv: -------------------------------------------------------------------------------- 1 | ꩠ Myanmar Letter Khamti Ga 2 | ꩡ Myanmar Letter Khamti Ca 3 | ꩢ Myanmar Letter Khamti Cha 4 | ꩣ Myanmar Letter Khamti Ja 5 | ꩤ Myanmar Letter Khamti Jha 6 | ꩥ Myanmar Letter Khamti Nya 7 | ꩦ Myanmar Letter Khamti Tta 8 | ꩧ Myanmar Letter Khamti Ttha 9 | ꩨ Myanmar Letter Khamti Dda 10 | ꩩ Myanmar Letter Khamti Ddha 11 | ꩪ Myanmar Letter Khamti Dha 12 | ꩫ Myanmar Letter Khamti Na 13 | ꩬ Myanmar Letter Khamti Sa 14 | ꩭ Myanmar Letter Khamti Ha 15 | ꩮ Myanmar Letter Khamti Hha 16 | ꩯ Myanmar Letter Khamti Fa 17 | ꩰ Myanmar Modifier Letter Khamti Reduplication 18 | ꩱ Myanmar Letter Khamti Xa 19 | ꩲ Myanmar Letter Khamti Za 20 | ꩳ Myanmar Letter Khamti Ra 21 | ꩴ Myanmar Logogram Khamti Oay 22 | ꩵ Myanmar Logogram Khamti Qn 23 | ꩶ Myanmar Logogram Khamti Hm 24 | ꩷ Myanmar Symbol Aiton Exclamation 25 | ꩸ Myanmar Symbol Aiton One 26 | ꩹ Myanmar Symbol Aiton Two 27 | ꩺ Myanmar Letter Aiton Ra 28 | ꩻ Myanmar Sign Pao Karen Tone 29 | ꩼ Myanmar Sign Tai Laing Tone-2 30 | ꩽ Myanmar Sign Tai Laing Tone-5 31 | ꩾ Myanmar Letter Shwe Palaung Cha 32 | ꩿ Myanmar Letter Shwe Palaung Sha 33 | -------------------------------------------------------------------------------- /src/extractors/blockfactory.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from typing import List 3 | 4 | from .characterfactory import Character, CharacterFactory 5 | 6 | 7 | @dataclass 8 | class Block: 9 | name: str 10 | characters: List[Character] 11 | 12 | 13 | class BlockFactory: 14 | __char_factory: CharacterFactory 15 | 16 | def __init__(self, character_factory: CharacterFactory): 17 | self.__char_factory = character_factory 18 | 19 | def build_block_from_range(self, name: str, range: str) -> Block: 20 | (start, end) = range.split("..") 21 | return self.__build_block(name, int(start.strip(), 16), int(end.strip(), 16)) 22 | 23 | def __build_block(self, name: str, start: int, end: int) -> Block: 24 | return Block(name.strip().title(), self.__fill_characters(start, end)) 25 | 26 | def __fill_characters(self, start: int, end: int) -> List[Character]: 27 | return [ 28 | char 29 | for char in (self.__char_factory.get_character(pos) for pos in range(start, end + 1)) 30 | if char is not None 31 | ] 32 | -------------------------------------------------------------------------------- /src/picker/data/bopomofo.csv: -------------------------------------------------------------------------------- 1 | ㄅ Bopomofo Letter B 2 | ㄆ Bopomofo Letter P 3 | ㄇ Bopomofo Letter M 4 | ㄈ Bopomofo Letter F 5 | ㄉ Bopomofo Letter D 6 | ㄊ Bopomofo Letter T 7 | ㄋ Bopomofo Letter N 8 | ㄌ Bopomofo Letter L 9 | ㄍ Bopomofo Letter G 10 | ㄎ Bopomofo Letter K 11 | ㄏ Bopomofo Letter H 12 | ㄐ Bopomofo Letter J 13 | ㄑ Bopomofo Letter Q 14 | ㄒ Bopomofo Letter X 15 | ㄓ Bopomofo Letter Zh 16 | ㄔ Bopomofo Letter Ch 17 | ㄕ Bopomofo Letter Sh 18 | ㄖ Bopomofo Letter R 19 | ㄗ Bopomofo Letter Z 20 | ㄘ Bopomofo Letter C 21 | ㄙ Bopomofo Letter S 22 | ㄚ Bopomofo Letter A 23 | ㄛ Bopomofo Letter O 24 | ㄜ Bopomofo Letter E 25 | ㄝ Bopomofo Letter Eh 26 | ㄞ Bopomofo Letter Ai 27 | ㄟ Bopomofo Letter Ei 28 | ㄠ Bopomofo Letter Au 29 | ㄡ Bopomofo Letter Ou 30 | ㄢ Bopomofo Letter An 31 | ㄣ Bopomofo Letter En 32 | ㄤ Bopomofo Letter Ang 33 | ㄥ Bopomofo Letter Eng 34 | ㄦ Bopomofo Letter Er 35 | ㄧ Bopomofo Letter I 36 | ㄨ Bopomofo Letter U 37 | ㄩ Bopomofo Letter Iu 38 | ㄪ Bopomofo Letter V 39 | ㄫ Bopomofo Letter Ng 40 | ㄬ Bopomofo Letter Gn 41 | ㄭ Bopomofo Letter Ih 42 | ㄮ Bopomofo Letter O With Dot Above 43 | ㄯ Bopomofo Letter Nn 44 | -------------------------------------------------------------------------------- /src/picker/data/kana_extended-a.csv: -------------------------------------------------------------------------------- 1 | 𛄀 Hentaigana Letter Re-3 2 | 𛄁 Hentaigana Letter Re-4 3 | 𛄂 Hentaigana Letter Ro-1 4 | 𛄃 Hentaigana Letter Ro-2 5 | 𛄄 Hentaigana Letter Ro-3 6 | 𛄅 Hentaigana Letter Ro-4 7 | 𛄆 Hentaigana Letter Ro-5 8 | 𛄇 Hentaigana Letter Ro-6 9 | 𛄈 Hentaigana Letter Wa-1 10 | 𛄉 Hentaigana Letter Wa-2 11 | 𛄊 Hentaigana Letter Wa-3 12 | 𛄋 Hentaigana Letter Wa-4 13 | 𛄌 Hentaigana Letter Wa-5 14 | 𛄍 Hentaigana Letter Wi-1 15 | 𛄎 Hentaigana Letter Wi-2 16 | 𛄏 Hentaigana Letter Wi-3 17 | 𛄐 Hentaigana Letter Wi-4 18 | 𛄑 Hentaigana Letter Wi-5 19 | 𛄒 Hentaigana Letter We-1 20 | 𛄓 Hentaigana Letter We-2 21 | 𛄔 Hentaigana Letter We-3 22 | 𛄕 Hentaigana Letter We-4 23 | 𛄖 Hentaigana Letter Wo-1 24 | 𛄗 Hentaigana Letter Wo-2 25 | 𛄘 Hentaigana Letter Wo-3 26 | 𛄙 Hentaigana Letter Wo-4 27 | 𛄚 Hentaigana Letter Wo-5 28 | 𛄛 Hentaigana Letter Wo-6 29 | 𛄜 Hentaigana Letter Wo-7 30 | 𛄝 Hentaigana Letter N-Mu-Mo-1 31 | 𛄞 Hentaigana Letter N-Mu-Mo-2 32 | 𛄟 Hiragana Letter Archaic Wu 33 | 𛄠 Katakana Letter Archaic Yi 34 | 𛄡 Katakana Letter Archaic Ye 35 | 𛄢 Katakana Letter Archaic Wu 36 | -------------------------------------------------------------------------------- /src/picker/data/sora_sompeng.csv: -------------------------------------------------------------------------------- 1 | 𑃐 Sora Sompeng Letter Sah 2 | 𑃑 Sora Sompeng Letter Tah 3 | 𑃒 Sora Sompeng Letter Bah 4 | 𑃓 Sora Sompeng Letter Cah 5 | 𑃔 Sora Sompeng Letter Dah 6 | 𑃕 Sora Sompeng Letter Gah 7 | 𑃖 Sora Sompeng Letter Mah 8 | 𑃗 Sora Sompeng Letter Ngah 9 | 𑃘 Sora Sompeng Letter Lah 10 | 𑃙 Sora Sompeng Letter Nah 11 | 𑃚 Sora Sompeng Letter Vah 12 | 𑃛 Sora Sompeng Letter Pah 13 | 𑃜 Sora Sompeng Letter Yah 14 | 𑃝 Sora Sompeng Letter Rah 15 | 𑃞 Sora Sompeng Letter Hah 16 | 𑃟 Sora Sompeng Letter Kah 17 | 𑃠 Sora Sompeng Letter Jah 18 | 𑃡 Sora Sompeng Letter Nyah 19 | 𑃢 Sora Sompeng Letter Ah 20 | 𑃣 Sora Sompeng Letter Eeh 21 | 𑃤 Sora Sompeng Letter Ih 22 | 𑃥 Sora Sompeng Letter Uh 23 | 𑃦 Sora Sompeng Letter Oh 24 | 𑃧 Sora Sompeng Letter Eh 25 | 𑃨 Sora Sompeng Letter Mae 26 | 𑃰 Sora Sompeng Digit Zero 27 | 𑃱 Sora Sompeng Digit One 28 | 𑃲 Sora Sompeng Digit Two 29 | 𑃳 Sora Sompeng Digit Three 30 | 𑃴 Sora Sompeng Digit Four 31 | 𑃵 Sora Sompeng Digit Five 32 | 𑃶 Sora Sompeng Digit Six 33 | 𑃷 Sora Sompeng Digit Seven 34 | 𑃸 Sora Sompeng Digit Eight 35 | 𑃹 Sora Sompeng Digit Nine 36 | -------------------------------------------------------------------------------- /src/picker/data/psalter_pahlavi.csv: -------------------------------------------------------------------------------- 1 | ‎𐮀 Psalter Pahlavi Letter Aleph 2 | ‎𐮁 Psalter Pahlavi Letter Beth 3 | ‎𐮂 Psalter Pahlavi Letter Gimel 4 | ‎𐮃 Psalter Pahlavi Letter Daleth 5 | ‎𐮄 Psalter Pahlavi Letter He 6 | ‎𐮅 Psalter Pahlavi Letter Waw-Ayin-Resh 7 | ‎𐮆 Psalter Pahlavi Letter Zayin 8 | ‎𐮇 Psalter Pahlavi Letter Heth 9 | ‎𐮈 Psalter Pahlavi Letter Yodh 10 | ‎𐮉 Psalter Pahlavi Letter Kaph 11 | ‎𐮊 Psalter Pahlavi Letter Lamedh 12 | ‎𐮋 Psalter Pahlavi Letter Mem-Qoph 13 | ‎𐮌 Psalter Pahlavi Letter Nun 14 | ‎𐮍 Psalter Pahlavi Letter Samekh 15 | ‎𐮎 Psalter Pahlavi Letter Pe 16 | ‎𐮏 Psalter Pahlavi Letter Sadhe 17 | ‎𐮐 Psalter Pahlavi Letter Shin 18 | ‎𐮑 Psalter Pahlavi Letter Taw 19 | ‎𐮙 Psalter Pahlavi Section Mark 20 | ‎𐮚 Psalter Pahlavi Turned Section Mark 21 | ‎𐮛 Psalter Pahlavi Four Dots With Cross 22 | ‎𐮜 Psalter Pahlavi Four Dots With Dot 23 | ‎𐮩 Psalter Pahlavi Number One 24 | ‎𐮪 Psalter Pahlavi Number Two 25 | ‎𐮫 Psalter Pahlavi Number Three 26 | ‎𐮬 Psalter Pahlavi Number Four 27 | ‎𐮭 Psalter Pahlavi Number Ten 28 | ‎𐮮 Psalter Pahlavi Number Twenty 29 | ‎𐮯 Psalter Pahlavi Number One Hundred 30 | -------------------------------------------------------------------------------- /src/picker/data/lisu.csv: -------------------------------------------------------------------------------- 1 | ꓐ Lisu Letter Ba 2 | ꓑ Lisu Letter Pa 3 | ꓒ Lisu Letter Pha 4 | ꓓ Lisu Letter Da 5 | ꓔ Lisu Letter Ta 6 | ꓕ Lisu Letter Tha 7 | ꓖ Lisu Letter Ga 8 | ꓗ Lisu Letter Ka 9 | ꓘ Lisu Letter Kha 10 | ꓙ Lisu Letter Ja 11 | ꓚ Lisu Letter Ca 12 | ꓛ Lisu Letter Cha 13 | ꓜ Lisu Letter Dza 14 | ꓝ Lisu Letter Tsa 15 | ꓞ Lisu Letter Tsha 16 | ꓟ Lisu Letter Ma 17 | ꓠ Lisu Letter Na 18 | ꓡ Lisu Letter La 19 | ꓢ Lisu Letter Sa 20 | ꓣ Lisu Letter Zha 21 | ꓤ Lisu Letter Za 22 | ꓥ Lisu Letter Nga 23 | ꓦ Lisu Letter Ha 24 | ꓧ Lisu Letter Xa 25 | ꓨ Lisu Letter Hha 26 | ꓩ Lisu Letter Fa 27 | ꓪ Lisu Letter Wa 28 | ꓫ Lisu Letter Sha 29 | ꓬ Lisu Letter Ya 30 | ꓭ Lisu Letter Gha 31 | ꓮ Lisu Letter A 32 | ꓯ Lisu Letter Ae 33 | ꓰ Lisu Letter E 34 | ꓱ Lisu Letter Eu 35 | ꓲ Lisu Letter I 36 | ꓳ Lisu Letter O 37 | ꓴ Lisu Letter U 38 | ꓵ Lisu Letter Ue 39 | ꓶ Lisu Letter Uh 40 | ꓷ Lisu Letter Oe 41 | ꓸ Lisu Letter Tone Mya Ti 42 | ꓹ Lisu Letter Tone Na Po 43 | ꓺ Lisu Letter Tone Mya Cya 44 | ꓻ Lisu Letter Tone Mya Bo 45 | ꓼ Lisu Letter Tone Mya Na 46 | ꓽ Lisu Letter Tone Mya Jeu 47 | ꓾ Lisu Punctuation Comma 48 | ꓿ Lisu Punctuation Full Stop 49 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017-2025 Fabian Winter 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/picker/data/ol_onal.csv: -------------------------------------------------------------------------------- 1 | 𞗐 Ol Onal Letter O 2 | 𞗑 Ol Onal Letter Om 3 | 𞗒 Ol Onal Letter Ong 4 | 𞗓 Ol Onal Letter Orr 5 | 𞗔 Ol Onal Letter Oo 6 | 𞗕 Ol Onal Letter Oy 7 | 𞗖 Ol Onal Letter A 8 | 𞗗 Ol Onal Letter Ad 9 | 𞗘 Ol Onal Letter Ab 10 | 𞗙 Ol Onal Letter Ah 11 | 𞗚 Ol Onal Letter Al 12 | 𞗛 Ol Onal Letter Aw 13 | 𞗜 Ol Onal Letter I 14 | 𞗝 Ol Onal Letter It 15 | 𞗞 Ol Onal Letter Ip 16 | 𞗟 Ol Onal Letter Itt 17 | 𞗠 Ol Onal Letter Id 18 | 𞗡 Ol Onal Letter In 19 | 𞗢 Ol Onal Letter U 20 | 𞗣 Ol Onal Letter Uk 21 | 𞗤 Ol Onal Letter Udd 22 | 𞗥 Ol Onal Letter Uj 23 | 𞗦 Ol Onal Letter Uny 24 | 𞗧 Ol Onal Letter Ur 25 | 𞗨 Ol Onal Letter E 26 | 𞗩 Ol Onal Letter Es 27 | 𞗪 Ol Onal Letter Eh 28 | 𞗫 Ol Onal Letter Ec 29 | 𞗬 Ol Onal Letter Enn 30 | 𞗭 Ol Onal Letter Eg 31 | 𞗮 Ol Onal Sign Mu 32 | 𞗯 Ol Onal Sign Ikir 33 | 𞗰 Ol Onal Sign Hoddond 34 | 𞗱 Ol Onal Digit Zero 35 | 𞗲 Ol Onal Digit One 36 | 𞗳 Ol Onal Digit Two 37 | 𞗴 Ol Onal Digit Three 38 | 𞗵 Ol Onal Digit Four 39 | 𞗶 Ol Onal Digit Five 40 | 𞗷 Ol Onal Digit Six 41 | 𞗸 Ol Onal Digit Seven 42 | 𞗹 Ol Onal Digit Eight 43 | 𞗺 Ol Onal Digit Nine 44 | 𞗿 Ol Onal Abbreviation Sign 45 | -------------------------------------------------------------------------------- /src/picker/data/old_italic.csv: -------------------------------------------------------------------------------- 1 | 𐌀 Old Italic Letter A 2 | 𐌁 Old Italic Letter Be 3 | 𐌂 Old Italic Letter Ke 4 | 𐌃 Old Italic Letter De 5 | 𐌄 Old Italic Letter E 6 | 𐌅 Old Italic Letter Ve 7 | 𐌆 Old Italic Letter Ze 8 | 𐌇 Old Italic Letter He 9 | 𐌈 Old Italic Letter The 10 | 𐌉 Old Italic Letter I 11 | 𐌊 Old Italic Letter Ka 12 | 𐌋 Old Italic Letter El 13 | 𐌌 Old Italic Letter Em 14 | 𐌍 Old Italic Letter En 15 | 𐌎 Old Italic Letter Esh 16 | 𐌏 Old Italic Letter O 17 | 𐌐 Old Italic Letter Pe 18 | 𐌑 Old Italic Letter She 19 | 𐌒 Old Italic Letter Ku 20 | 𐌓 Old Italic Letter Er 21 | 𐌔 Old Italic Letter Es 22 | 𐌕 Old Italic Letter Te 23 | 𐌖 Old Italic Letter U 24 | 𐌗 Old Italic Letter Eks 25 | 𐌘 Old Italic Letter Phe 26 | 𐌙 Old Italic Letter Khe 27 | 𐌚 Old Italic Letter Ef 28 | 𐌛 Old Italic Letter Ers 29 | 𐌜 Old Italic Letter Che 30 | 𐌝 Old Italic Letter Ii 31 | 𐌞 Old Italic Letter Uu 32 | 𐌟 Old Italic Letter Ess 33 | 𐌠 Old Italic Numeral One 34 | 𐌡 Old Italic Numeral Five 35 | 𐌢 Old Italic Numeral Ten 36 | 𐌣 Old Italic Numeral Fifty 37 | 𐌭 Old Italic Letter Ye 38 | 𐌮 Old Italic Letter Northern Tse 39 | 𐌯 Old Italic Letter Southern Tse 40 | -------------------------------------------------------------------------------- /src/picker/data/devanagari_extended.csv: -------------------------------------------------------------------------------- 1 | ꣠ Combining Devanagari Digit Zero 2 | ꣡ Combining Devanagari Digit One 3 | ꣢ Combining Devanagari Digit Two 4 | ꣣ Combining Devanagari Digit Three 5 | ꣤ Combining Devanagari Digit Four 6 | ꣥ Combining Devanagari Digit Five 7 | ꣦ Combining Devanagari Digit Six 8 | ꣧ Combining Devanagari Digit Seven 9 | ꣨ Combining Devanagari Digit Eight 10 | ꣩ Combining Devanagari Digit Nine 11 | ꣪ Combining Devanagari Letter A 12 | ꣫ Combining Devanagari Letter U 13 | ꣬ Combining Devanagari Letter Ka 14 | ꣭ Combining Devanagari Letter Na 15 | ꣮ Combining Devanagari Letter Pa 16 | ꣯ Combining Devanagari Letter Ra 17 | ꣰ Combining Devanagari Letter Vi 18 | ꣱ Combining Devanagari Sign Avagraha 19 | ꣲ Devanagari Sign Spacing Candrabindu 20 | ꣳ Devanagari Sign Candrabindu Virama 21 | ꣴ Devanagari Sign Double Candrabindu Virama 22 | ꣵ Devanagari Sign Candrabindu Two 23 | ꣶ Devanagari Sign Candrabindu Three 24 | ꣷ Devanagari Sign Candrabindu Avagraha 25 | ꣸ Devanagari Sign Pushpika 26 | ꣹ Devanagari Gap Filler 27 | ꣺ Devanagari Caret 28 | ꣻ Devanagari Headstroke 29 | ꣼ Devanagari Sign Siddham 30 | ꣽ Devanagari Jain Om 31 | ꣾ Devanagari Letter Ay 32 | ꣿ Devanagari Vowel Sign Ay 33 | -------------------------------------------------------------------------------- /src/picker/data/inscriptional_pahlavi.csv: -------------------------------------------------------------------------------- 1 | ‎𐭠 Inscriptional Pahlavi Letter Aleph 2 | ‎𐭡 Inscriptional Pahlavi Letter Beth 3 | ‎𐭢 Inscriptional Pahlavi Letter Gimel 4 | ‎𐭣 Inscriptional Pahlavi Letter Daleth 5 | ‎𐭤 Inscriptional Pahlavi Letter He 6 | ‎𐭥 Inscriptional Pahlavi Letter Waw-Ayin-Resh 7 | ‎𐭦 Inscriptional Pahlavi Letter Zayin 8 | ‎𐭧 Inscriptional Pahlavi Letter Heth 9 | ‎𐭨 Inscriptional Pahlavi Letter Teth 10 | ‎𐭩 Inscriptional Pahlavi Letter Yodh 11 | ‎𐭪 Inscriptional Pahlavi Letter Kaph 12 | ‎𐭫 Inscriptional Pahlavi Letter Lamedh 13 | ‎𐭬 Inscriptional Pahlavi Letter Mem-Qoph 14 | ‎𐭭 Inscriptional Pahlavi Letter Nun 15 | ‎𐭮 Inscriptional Pahlavi Letter Samekh 16 | ‎𐭯 Inscriptional Pahlavi Letter Pe 17 | ‎𐭰 Inscriptional Pahlavi Letter Sadhe 18 | ‎𐭱 Inscriptional Pahlavi Letter Shin 19 | ‎𐭲 Inscriptional Pahlavi Letter Taw 20 | ‎𐭸 Inscriptional Pahlavi Number One 21 | ‎𐭹 Inscriptional Pahlavi Number Two 22 | ‎𐭺 Inscriptional Pahlavi Number Three 23 | ‎𐭻 Inscriptional Pahlavi Number Four 24 | ‎𐭼 Inscriptional Pahlavi Number Ten 25 | ‎𐭽 Inscriptional Pahlavi Number Twenty 26 | ‎𐭾 Inscriptional Pahlavi Number One Hundred 27 | ‎𐭿 Inscriptional Pahlavi Number One Thousand 28 | -------------------------------------------------------------------------------- /src/picker/data/imperial_aramaic.csv: -------------------------------------------------------------------------------- 1 | ‎𐡀 Imperial Aramaic Letter Aleph 2 | ‎𐡁 Imperial Aramaic Letter Beth 3 | ‎𐡂 Imperial Aramaic Letter Gimel 4 | ‎𐡃 Imperial Aramaic Letter Daleth 5 | ‎𐡄 Imperial Aramaic Letter He 6 | ‎𐡅 Imperial Aramaic Letter Waw 7 | ‎𐡆 Imperial Aramaic Letter Zayin 8 | ‎𐡇 Imperial Aramaic Letter Heth 9 | ‎𐡈 Imperial Aramaic Letter Teth 10 | ‎𐡉 Imperial Aramaic Letter Yodh 11 | ‎𐡊 Imperial Aramaic Letter Kaph 12 | ‎𐡋 Imperial Aramaic Letter Lamedh 13 | ‎𐡌 Imperial Aramaic Letter Mem 14 | ‎𐡍 Imperial Aramaic Letter Nun 15 | ‎𐡎 Imperial Aramaic Letter Samekh 16 | ‎𐡏 Imperial Aramaic Letter Ayin 17 | ‎𐡐 Imperial Aramaic Letter Pe 18 | ‎𐡑 Imperial Aramaic Letter Sadhe 19 | ‎𐡒 Imperial Aramaic Letter Qoph 20 | ‎𐡓 Imperial Aramaic Letter Resh 21 | ‎𐡔 Imperial Aramaic Letter Shin 22 | ‎𐡕 Imperial Aramaic Letter Taw 23 | ‎𐡗 Imperial Aramaic Section Sign 24 | ‎𐡘 Imperial Aramaic Number One 25 | ‎𐡙 Imperial Aramaic Number Two 26 | ‎𐡚 Imperial Aramaic Number Three 27 | ‎𐡛 Imperial Aramaic Number Ten 28 | ‎𐡜 Imperial Aramaic Number Twenty 29 | ‎𐡝 Imperial Aramaic Number One Hundred 30 | ‎𐡞 Imperial Aramaic Number One Thousand 31 | ‎𐡟 Imperial Aramaic Number Ten Thousand 32 | -------------------------------------------------------------------------------- /src/picker/data/carian.csv: -------------------------------------------------------------------------------- 1 | 𐊠 Carian Letter A 2 | 𐊡 Carian Letter P2 3 | 𐊢 Carian Letter D 4 | 𐊣 Carian Letter L 5 | 𐊤 Carian Letter Uuu 6 | 𐊥 Carian Letter R 7 | 𐊦 Carian Letter Ld 8 | 𐊧 Carian Letter A2 9 | 𐊨 Carian Letter Q 10 | 𐊩 Carian Letter B 11 | 𐊪 Carian Letter M 12 | 𐊫 Carian Letter O 13 | 𐊬 Carian Letter D2 14 | 𐊭 Carian Letter T 15 | 𐊮 Carian Letter Sh 16 | 𐊯 Carian Letter Sh2 17 | 𐊰 Carian Letter S 18 | 𐊱 Carian Letter C-18 19 | 𐊲 Carian Letter U 20 | 𐊳 Carian Letter Nn 21 | 𐊴 Carian Letter X 22 | 𐊵 Carian Letter N 23 | 𐊶 Carian Letter Tt2 24 | 𐊷 Carian Letter P 25 | 𐊸 Carian Letter Ss 26 | 𐊹 Carian Letter I 27 | 𐊺 Carian Letter E 28 | 𐊻 Carian Letter Uuuu 29 | 𐊼 Carian Letter K 30 | 𐊽 Carian Letter K2 31 | 𐊾 Carian Letter Nd 32 | 𐊿 Carian Letter Uu 33 | 𐋀 Carian Letter G 34 | 𐋁 Carian Letter G2 35 | 𐋂 Carian Letter St 36 | 𐋃 Carian Letter St2 37 | 𐋄 Carian Letter Ng 38 | 𐋅 Carian Letter Ii 39 | 𐋆 Carian Letter C-39 40 | 𐋇 Carian Letter Tt 41 | 𐋈 Carian Letter Uuu2 42 | 𐋉 Carian Letter Rr 43 | 𐋊 Carian Letter Mb 44 | 𐋋 Carian Letter Mb2 45 | 𐋌 Carian Letter Mb3 46 | 𐋍 Carian Letter Mb4 47 | 𐋎 Carian Letter Ld2 48 | 𐋏 Carian Letter E2 49 | 𐋐 Carian Letter Uuu3 50 | -------------------------------------------------------------------------------- /src/picker/data/cyrillic_extended-a.csv: -------------------------------------------------------------------------------- 1 | ⷠ Combining Cyrillic Letter Be 2 | ⷡ Combining Cyrillic Letter Ve 3 | ⷢ Combining Cyrillic Letter Ghe 4 | ⷣ Combining Cyrillic Letter De 5 | ⷤ Combining Cyrillic Letter Zhe 6 | ⷥ Combining Cyrillic Letter Ze 7 | ⷦ Combining Cyrillic Letter Ka 8 | ⷧ Combining Cyrillic Letter El 9 | ⷨ Combining Cyrillic Letter Em 10 | ⷩ Combining Cyrillic Letter En 11 | ⷪ Combining Cyrillic Letter O 12 | ⷫ Combining Cyrillic Letter Pe 13 | ⷬ Combining Cyrillic Letter Er 14 | ⷭ Combining Cyrillic Letter Es 15 | ⷮ Combining Cyrillic Letter Te 16 | ⷯ Combining Cyrillic Letter Ha 17 | ⷰ Combining Cyrillic Letter Tse 18 | ⷱ Combining Cyrillic Letter Che 19 | ⷲ Combining Cyrillic Letter Sha 20 | ⷳ Combining Cyrillic Letter Shcha 21 | ⷴ Combining Cyrillic Letter Fita 22 | ⷵ Combining Cyrillic Letter Es-Te 23 | ⷶ Combining Cyrillic Letter A 24 | ⷷ Combining Cyrillic Letter Ie 25 | ⷸ Combining Cyrillic Letter Djerv 26 | ⷹ Combining Cyrillic Letter Monograph Uk 27 | ⷺ Combining Cyrillic Letter Yat 28 | ⷻ Combining Cyrillic Letter Yu 29 | ⷼ Combining Cyrillic Letter Iotified A 30 | ⷽ Combining Cyrillic Letter Little Yus 31 | ⷾ Combining Cyrillic Letter Big Yus 32 | ⷿ Combining Cyrillic Letter Iotified Big Yus 33 | -------------------------------------------------------------------------------- /src/picker/data/sunuwar.csv: -------------------------------------------------------------------------------- 1 | 𑯀 Sunuwar Letter Devi 2 | 𑯁 Sunuwar Letter Tasla 3 | 𑯂 Sunuwar Letter Eko 4 | 𑯃 Sunuwar Letter Imar 5 | 𑯄 Sunuwar Letter Reu 6 | 𑯅 Sunuwar Letter Utthi 7 | 𑯆 Sunuwar Letter Kik 8 | 𑯇 Sunuwar Letter Ma 9 | 𑯈 Sunuwar Letter Appho 10 | 𑯉 Sunuwar Letter Pip 11 | 𑯊 Sunuwar Letter Gil 12 | 𑯋 Sunuwar Letter Hamso 13 | 𑯌 Sunuwar Letter Carmi 14 | 𑯍 Sunuwar Letter Nah 15 | 𑯎 Sunuwar Letter Bur 16 | 𑯏 Sunuwar Letter Jyah 17 | 𑯐 Sunuwar Letter Loacha 18 | 𑯑 Sunuwar Letter Otthi 19 | 𑯒 Sunuwar Letter Shyele 20 | 𑯓 Sunuwar Letter Varca 21 | 𑯔 Sunuwar Letter Yat 22 | 𑯕 Sunuwar Letter Ava 23 | 𑯖 Sunuwar Letter Aal 24 | 𑯗 Sunuwar Letter Donga 25 | 𑯘 Sunuwar Letter Thari 26 | 𑯙 Sunuwar Letter Phar 27 | 𑯚 Sunuwar Letter Ngar 28 | 𑯛 Sunuwar Letter Kha 29 | 𑯜 Sunuwar Letter Shyer 30 | 𑯝 Sunuwar Letter Chelap 31 | 𑯞 Sunuwar Letter Tentu 32 | 𑯟 Sunuwar Letter Thele 33 | 𑯠 Sunuwar Letter Kloko 34 | 𑯡 Sunuwar Sign Pvo 35 | 𑯰 Sunuwar Digit Zero 36 | 𑯱 Sunuwar Digit One 37 | 𑯲 Sunuwar Digit Two 38 | 𑯳 Sunuwar Digit Three 39 | 𑯴 Sunuwar Digit Four 40 | 𑯵 Sunuwar Digit Five 41 | 𑯶 Sunuwar Digit Six 42 | 𑯷 Sunuwar Digit Seven 43 | 𑯸 Sunuwar Digit Eight 44 | 𑯹 Sunuwar Digit Nine 45 | -------------------------------------------------------------------------------- /src/picker/data/yi_radicals.csv: -------------------------------------------------------------------------------- 1 | ꒐ Yi Radical Qot 2 | ꒑ Yi Radical Li 3 | ꒒ Yi Radical Kit 4 | ꒓ Yi Radical Nyip 5 | ꒔ Yi Radical Cyp 6 | ꒕ Yi Radical Ssi 7 | ꒖ Yi Radical Ggop 8 | ꒗ Yi Radical Gep 9 | ꒘ Yi Radical Mi 10 | ꒙ Yi Radical Hxit 11 | ꒚ Yi Radical Lyr 12 | ꒛ Yi Radical Bbut 13 | ꒜ Yi Radical Mop 14 | ꒝ Yi Radical Yo 15 | ꒞ Yi Radical Put 16 | ꒟ Yi Radical Hxuo 17 | ꒠ Yi Radical Tat 18 | ꒡ Yi Radical Ga 19 | ꒢ Yi Radical Zup 20 | ꒣ Yi Radical Cyt 21 | ꒤ Yi Radical Ddur 22 | ꒥ Yi Radical Bur 23 | ꒦ Yi Radical Gguo 24 | ꒧ Yi Radical Nyop 25 | ꒨ Yi Radical Tu 26 | ꒩ Yi Radical Op 27 | ꒪ Yi Radical Jjut 28 | ꒫ Yi Radical Zot 29 | ꒬ Yi Radical Pyt 30 | ꒭ Yi Radical Hmo 31 | ꒮ Yi Radical Yit 32 | ꒯ Yi Radical Vur 33 | ꒰ Yi Radical Shy 34 | ꒱ Yi Radical Vep 35 | ꒲ Yi Radical Za 36 | ꒳ Yi Radical Jo 37 | ꒴ Yi Radical Nzup 38 | ꒵ Yi Radical Jjy 39 | ꒶ Yi Radical Got 40 | ꒷ Yi Radical Jjie 41 | ꒸ Yi Radical Wo 42 | ꒹ Yi Radical Du 43 | ꒺ Yi Radical Shur 44 | ꒻ Yi Radical Lie 45 | ꒼ Yi Radical Cy 46 | ꒽ Yi Radical Cuop 47 | ꒾ Yi Radical Cip 48 | ꒿ Yi Radical Hxop 49 | ꓀ Yi Radical Shat 50 | ꓁ Yi Radical Zur 51 | ꓂ Yi Radical Shop 52 | ꓃ Yi Radical Che 53 | ꓄ Yi Radical Zziet 54 | ꓅ Yi Radical Nbie 55 | ꓆ Yi Radical Ke 56 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "rofimoji" 3 | version = "6.7.0" 4 | description = "Simple character picker using rofi" 5 | authors = [ 6 | { name = "Fabian Winter", email = "5821180+fdw@users.noreply.github.com" }, 7 | ] 8 | license = { text = "MIT" } 9 | readme = "README.md" 10 | requires-python = ">=3.9" 11 | dependencies = [ 12 | "configargparse>=1.3,<2.0", 13 | ] 14 | 15 | [project.urls] 16 | homepage = "https://github.com/fdw/rofimoji" 17 | repository = "https://github.com/fdw/rofimoji" 18 | 19 | [project.scripts] 20 | rofimoji = "picker.__main__:main" 21 | 22 | [tool.hatch.build.targets.wheel] 23 | packages = ["src/picker"] 24 | include = [ 25 | "src/picker/data/*.csv", 26 | "src/picker/docs/rofimoji.1", 27 | "src/picker/contrib/*", 28 | ] 29 | 30 | [dependency-groups] 31 | dev = [ 32 | "beautifulsoup4>=4.12.3,<5.0", 33 | "lxml>=5.3.0,<6.0", 34 | "tqdm>=4.67.0,<5.0", 35 | "aiohttp>=3.11.7,<4.0", 36 | "aiofiles>=24.1.0,<25.0", 37 | "ruff>=0.4.0", 38 | ] 39 | 40 | [build-system] 41 | requires = ["hatchling>=1.18"] 42 | build-backend = "hatchling.build" 43 | 44 | [tool.ruff] 45 | line-length = 120 46 | 47 | [tool.ruff.lint] 48 | select = ["E4", "E7", "E9", "F", "I"] 49 | -------------------------------------------------------------------------------- /src/picker/data/old_north_arabian.csv: -------------------------------------------------------------------------------- 1 | ‎𐪀 Old North Arabian Letter Heh 2 | ‎𐪁 Old North Arabian Letter Lam 3 | ‎𐪂 Old North Arabian Letter Hah 4 | ‎𐪃 Old North Arabian Letter Meem 5 | ‎𐪄 Old North Arabian Letter Qaf 6 | ‎𐪅 Old North Arabian Letter Waw 7 | ‎𐪆 Old North Arabian Letter Es-2 8 | ‎𐪇 Old North Arabian Letter Reh 9 | ‎𐪈 Old North Arabian Letter Beh 10 | ‎𐪉 Old North Arabian Letter Teh 11 | ‎𐪊 Old North Arabian Letter Es-1 12 | ‎𐪋 Old North Arabian Letter Kaf 13 | ‎𐪌 Old North Arabian Letter Noon 14 | ‎𐪍 Old North Arabian Letter Khah 15 | ‎𐪎 Old North Arabian Letter Sad 16 | ‎𐪏 Old North Arabian Letter Es-3 17 | ‎𐪐 Old North Arabian Letter Feh 18 | ‎𐪑 Old North Arabian Letter Alef 19 | ‎𐪒 Old North Arabian Letter Ain 20 | ‎𐪓 Old North Arabian Letter Dad 21 | ‎𐪔 Old North Arabian Letter Geem 22 | ‎𐪕 Old North Arabian Letter Dal 23 | ‎𐪖 Old North Arabian Letter Ghain 24 | ‎𐪗 Old North Arabian Letter Tah 25 | ‎𐪘 Old North Arabian Letter Zain 26 | ‎𐪙 Old North Arabian Letter Thal 27 | ‎𐪚 Old North Arabian Letter Yeh 28 | ‎𐪛 Old North Arabian Letter Theh 29 | ‎𐪜 Old North Arabian Letter Zah 30 | ‎𐪝 Old North Arabian Number One 31 | ‎𐪞 Old North Arabian Number Ten 32 | ‎𐪟 Old North Arabian Number Twenty 33 | -------------------------------------------------------------------------------- /src/picker/data/kayah_li.csv: -------------------------------------------------------------------------------- 1 | ꤀ Kayah Li Digit Zero 2 | ꤁ Kayah Li Digit One 3 | ꤂ Kayah Li Digit Two 4 | ꤃ Kayah Li Digit Three 5 | ꤄ Kayah Li Digit Four 6 | ꤅ Kayah Li Digit Five 7 | ꤆ Kayah Li Digit Six 8 | ꤇ Kayah Li Digit Seven 9 | ꤈ Kayah Li Digit Eight 10 | ꤉ Kayah Li Digit Nine 11 | ꤊ Kayah Li Letter Ka 12 | ꤋ Kayah Li Letter Kha 13 | ꤌ Kayah Li Letter Ga 14 | ꤍ Kayah Li Letter Nga 15 | ꤎ Kayah Li Letter Sa 16 | ꤏ Kayah Li Letter Sha 17 | ꤐ Kayah Li Letter Za 18 | ꤑ Kayah Li Letter Nya 19 | ꤒ Kayah Li Letter Ta 20 | ꤓ Kayah Li Letter Hta 21 | ꤔ Kayah Li Letter Na 22 | ꤕ Kayah Li Letter Pa 23 | ꤖ Kayah Li Letter Pha 24 | ꤗ Kayah Li Letter Ma 25 | ꤘ Kayah Li Letter Da 26 | ꤙ Kayah Li Letter Ba 27 | ꤚ Kayah Li Letter Ra 28 | ꤛ Kayah Li Letter Ya 29 | ꤜ Kayah Li Letter La 30 | ꤝ Kayah Li Letter Wa 31 | ꤞ Kayah Li Letter Tha 32 | ꤟ Kayah Li Letter Ha 33 | ꤠ Kayah Li Letter Va 34 | ꤡ Kayah Li Letter Ca 35 | ꤢ Kayah Li Letter A 36 | ꤣ Kayah Li Letter Oe 37 | ꤤ Kayah Li Letter I 38 | ꤥ Kayah Li Letter Oo 39 | ꤦ Kayah Li Vowel Ue 40 | ꤧ Kayah Li Vowel E 41 | ꤨ Kayah Li Vowel U 42 | ꤩ Kayah Li Vowel Ee 43 | ꤪ Kayah Li Vowel O 44 | ꤫ Kayah Li Tone Plophu 45 | ꤬ Kayah Li Tone Calya 46 | ꤭ Kayah Li Tone Calya Plophu 47 | ꤮ Kayah Li Sign Cwi 48 | ꤯ Kayah Li Sign Shya 49 | -------------------------------------------------------------------------------- /src/picker/data/old_south_arabian.csv: -------------------------------------------------------------------------------- 1 | ‎𐩠 Old South Arabian Letter He 2 | ‎𐩡 Old South Arabian Letter Lamedh 3 | ‎𐩢 Old South Arabian Letter Heth 4 | ‎𐩣 Old South Arabian Letter Mem 5 | ‎𐩤 Old South Arabian Letter Qoph 6 | ‎𐩥 Old South Arabian Letter Waw 7 | ‎𐩦 Old South Arabian Letter Shin 8 | ‎𐩧 Old South Arabian Letter Resh 9 | ‎𐩨 Old South Arabian Letter Beth 10 | ‎𐩩 Old South Arabian Letter Taw 11 | ‎𐩪 Old South Arabian Letter Sat 12 | ‎𐩫 Old South Arabian Letter Kaph 13 | ‎𐩬 Old South Arabian Letter Nun 14 | ‎𐩭 Old South Arabian Letter Kheth 15 | ‎𐩮 Old South Arabian Letter Sadhe 16 | ‎𐩯 Old South Arabian Letter Samekh 17 | ‎𐩰 Old South Arabian Letter Fe 18 | ‎𐩱 Old South Arabian Letter Alef 19 | ‎𐩲 Old South Arabian Letter Ayn 20 | ‎𐩳 Old South Arabian Letter Dhadhe 21 | ‎𐩴 Old South Arabian Letter Gimel 22 | ‎𐩵 Old South Arabian Letter Daleth 23 | ‎𐩶 Old South Arabian Letter Ghayn 24 | ‎𐩷 Old South Arabian Letter Teth 25 | ‎𐩸 Old South Arabian Letter Zayn 26 | ‎𐩹 Old South Arabian Letter Dhaleth 27 | ‎𐩺 Old South Arabian Letter Yodh 28 | ‎𐩻 Old South Arabian Letter Thaw 29 | ‎𐩼 Old South Arabian Letter Theth 30 | ‎𐩽 Old South Arabian Number One 31 | ‎𐩾 Old South Arabian Number Fifty 32 | ‎𐩿 Old South Arabian Numeric Indicator 33 | -------------------------------------------------------------------------------- /src/picker/data/nag_mundari.csv: -------------------------------------------------------------------------------- 1 | 𞓐 Nag Mundari Letter O 2 | 𞓑 Nag Mundari Letter Op 3 | 𞓒 Nag Mundari Letter Ol 4 | 𞓓 Nag Mundari Letter Oy 5 | 𞓔 Nag Mundari Letter Ong 6 | 𞓕 Nag Mundari Letter A 7 | 𞓖 Nag Mundari Letter Aj 8 | 𞓗 Nag Mundari Letter Ab 9 | 𞓘 Nag Mundari Letter Any 10 | 𞓙 Nag Mundari Letter Ah 11 | 𞓚 Nag Mundari Letter I 12 | 𞓛 Nag Mundari Letter Is 13 | 𞓜 Nag Mundari Letter Idd 14 | 𞓝 Nag Mundari Letter It 15 | 𞓞 Nag Mundari Letter Ih 16 | 𞓟 Nag Mundari Letter U 17 | 𞓠 Nag Mundari Letter Uc 18 | 𞓡 Nag Mundari Letter Ud 19 | 𞓢 Nag Mundari Letter Uk 20 | 𞓣 Nag Mundari Letter Ur 21 | 𞓤 Nag Mundari Letter E 22 | 𞓥 Nag Mundari Letter Enn 23 | 𞓦 Nag Mundari Letter Eg 24 | 𞓧 Nag Mundari Letter Em 25 | 𞓨 Nag Mundari Letter En 26 | 𞓩 Nag Mundari Letter Ett 27 | 𞓪 Nag Mundari Letter Ell 28 | 𞓫 Nag Mundari Sign Ojod 29 | 𞓬 Nag Mundari Sign Muhor 30 | 𞓭 Nag Mundari Sign Toyor 31 | 𞓮 Nag Mundari Sign Ikir 32 | 𞓯 Nag Mundari Sign Sutuh 33 | 𞓰 Nag Mundari Digit Zero 34 | 𞓱 Nag Mundari Digit One 35 | 𞓲 Nag Mundari Digit Two 36 | 𞓳 Nag Mundari Digit Three 37 | 𞓴 Nag Mundari Digit Four 38 | 𞓵 Nag Mundari Digit Five 39 | 𞓶 Nag Mundari Digit Six 40 | 𞓷 Nag Mundari Digit Seven 41 | 𞓸 Nag Mundari Digit Eight 42 | 𞓹 Nag Mundari Digit Nine 43 | -------------------------------------------------------------------------------- /src/picker/data/superscripts_and_subscripts.csv: -------------------------------------------------------------------------------- 1 | ⁰ Superscript Zero 2 | ⁱ Superscript Latin Small Letter I 3 | ⁴ Superscript Four 4 | ⁵ Superscript Five 5 | ⁶ Superscript Six 6 | ⁷ Superscript Seven 7 | ⁸ Superscript Eight 8 | ⁹ Superscript Nine 9 | ⁺ Superscript Plus Sign 10 | ⁻ Superscript Minus 11 | ⁼ Superscript Equals Sign 12 | ⁽ Superscript Left Parenthesis 13 | ⁾ Superscript Right Parenthesis 14 | ⁿ Superscript Latin Small Letter N 15 | ₀ Subscript Zero 16 | ₁ Subscript One 17 | ₂ Subscript Two 18 | ₃ Subscript Three 19 | ₄ Subscript Four 20 | ₅ Subscript Five 21 | ₆ Subscript Six 22 | ₇ Subscript Seven 23 | ₈ Subscript Eight 24 | ₉ Subscript Nine 25 | ₊ Subscript Plus Sign 26 | ₋ Subscript Minus 27 | ₌ Subscript Equals Sign 28 | ₍ Subscript Left Parenthesis 29 | ₎ Subscript Right Parenthesis 30 | ₐ Latin Subscript Small Letter A 31 | ₑ Latin Subscript Small Letter E 32 | ₒ Latin Subscript Small Letter O 33 | ₓ Latin Subscript Small Letter X 34 | ₔ Latin Subscript Small Letter Schwa 35 | ₕ Latin Subscript Small Letter H 36 | ₖ Latin Subscript Small Letter K 37 | ₗ Latin Subscript Small Letter L 38 | ₘ Latin Subscript Small Letter M 39 | ₙ Latin Subscript Small Letter N 40 | ₚ Latin Subscript Small Letter P 41 | ₛ Latin Subscript Small Letter S 42 | ₜ Latin Subscript Small Letter T 43 | -------------------------------------------------------------------------------- /src/picker/data/ol_chiki.csv: -------------------------------------------------------------------------------- 1 | ᱐ Ol Chiki Digit Zero 2 | ᱑ Ol Chiki Digit One 3 | ᱒ Ol Chiki Digit Two 4 | ᱓ Ol Chiki Digit Three 5 | ᱔ Ol Chiki Digit Four 6 | ᱕ Ol Chiki Digit Five 7 | ᱖ Ol Chiki Digit Six 8 | ᱗ Ol Chiki Digit Seven 9 | ᱘ Ol Chiki Digit Eight 10 | ᱙ Ol Chiki Digit Nine 11 | ᱚ Ol Chiki Letter La 12 | ᱛ Ol Chiki Letter At 13 | ᱜ Ol Chiki Letter Ag 14 | ᱝ Ol Chiki Letter Ang 15 | ᱞ Ol Chiki Letter Al 16 | ᱟ Ol Chiki Letter Laa 17 | ᱠ Ol Chiki Letter Aak 18 | ᱡ Ol Chiki Letter Aaj 19 | ᱢ Ol Chiki Letter Aam 20 | ᱣ Ol Chiki Letter Aaw 21 | ᱤ Ol Chiki Letter Li 22 | ᱥ Ol Chiki Letter Is 23 | ᱦ Ol Chiki Letter Ih 24 | ᱧ Ol Chiki Letter Iny 25 | ᱨ Ol Chiki Letter Ir 26 | ᱩ Ol Chiki Letter Lu 27 | ᱪ Ol Chiki Letter Uc 28 | ᱫ Ol Chiki Letter Ud 29 | ᱬ Ol Chiki Letter Unn 30 | ᱭ Ol Chiki Letter Uy 31 | ᱮ Ol Chiki Letter Le 32 | ᱯ Ol Chiki Letter Ep 33 | ᱰ Ol Chiki Letter Edd 34 | ᱱ Ol Chiki Letter En 35 | ᱲ Ol Chiki Letter Err 36 | ᱳ Ol Chiki Letter Lo 37 | ᱴ Ol Chiki Letter Ott 38 | ᱵ Ol Chiki Letter Ob 39 | ᱶ Ol Chiki Letter Ov 40 | ᱷ Ol Chiki Letter Oh 41 | ᱸ Ol Chiki Mu Ttuddag 42 | ᱹ Ol Chiki Gaahlaa Ttuddaag 43 | ᱺ Ol Chiki Mu-Gaahlaa Ttuddaag 44 | ᱻ Ol Chiki Relaa 45 | ᱼ Ol Chiki Phaarkaa 46 | ᱽ Ol Chiki Ahad 47 | ᱾ Ol Chiki Punctuation Mucaad 48 | ᱿ Ol Chiki Punctuation Double Mucaad 49 | -------------------------------------------------------------------------------- /src/picker/frecent.py: -------------------------------------------------------------------------------- 1 | import math 2 | from typing import Dict, List 3 | 4 | from .paths import frecency_file_location 5 | 6 | 7 | def load_frecent_characters() -> List[str]: 8 | return list(__load_frecent_characters().keys()) 9 | 10 | 11 | def __load_frecent_characters() -> Dict[str, float]: 12 | frecencies = {} 13 | try: 14 | with frecency_file_location.open("r") as file: 15 | for line in file: 16 | (frecency, character) = line.strip("\n").split(" ") 17 | frecencies[character] = float(frecency) 18 | except FileNotFoundError: 19 | pass 20 | 21 | return frecencies 22 | 23 | 24 | def save_frecent_characters(chosen_character: str) -> None: 25 | new_file_name = frecency_file_location.with_name("frecency.tmp") 26 | 27 | new_file_name.parent.mkdir(parents=True, exist_ok=True) 28 | 29 | frecencies = __load_frecent_characters() 30 | 31 | frecencies[chosen_character] = frecencies.get(chosen_character, 0) + 1.1 32 | 33 | with new_file_name.open("w+") as new_file: 34 | for character, frecency in sorted(frecencies.items(), key=lambda item: item[1], reverse=True): 35 | new_file.write(f"{math.floor(frecency)} {character}\n") 36 | 37 | new_file_name.rename(frecency_file_location) 38 | -------------------------------------------------------------------------------- /src/picker/data/nabataean.csv: -------------------------------------------------------------------------------- 1 | ‎𐢀 Nabataean Letter Final Aleph 2 | ‎𐢁 Nabataean Letter Aleph 3 | ‎𐢂 Nabataean Letter Final Beth 4 | ‎𐢃 Nabataean Letter Beth 5 | ‎𐢄 Nabataean Letter Gimel 6 | ‎𐢅 Nabataean Letter Daleth 7 | ‎𐢆 Nabataean Letter Final He 8 | ‎𐢇 Nabataean Letter He 9 | ‎𐢈 Nabataean Letter Waw 10 | ‎𐢉 Nabataean Letter Zayin 11 | ‎𐢊 Nabataean Letter Heth 12 | ‎𐢋 Nabataean Letter Teth 13 | ‎𐢌 Nabataean Letter Final Yodh 14 | ‎𐢍 Nabataean Letter Yodh 15 | ‎𐢎 Nabataean Letter Final Kaph 16 | ‎𐢏 Nabataean Letter Kaph 17 | ‎𐢐 Nabataean Letter Final Lamedh 18 | ‎𐢑 Nabataean Letter Lamedh 19 | ‎𐢒 Nabataean Letter Final Mem 20 | ‎𐢓 Nabataean Letter Mem 21 | ‎𐢔 Nabataean Letter Final Nun 22 | ‎𐢕 Nabataean Letter Nun 23 | ‎𐢖 Nabataean Letter Samekh 24 | ‎𐢗 Nabataean Letter Ayin 25 | ‎𐢘 Nabataean Letter Pe 26 | ‎𐢙 Nabataean Letter Sadhe 27 | ‎𐢚 Nabataean Letter Qoph 28 | ‎𐢛 Nabataean Letter Resh 29 | ‎𐢜 Nabataean Letter Final Shin 30 | ‎𐢝 Nabataean Letter Shin 31 | ‎𐢞 Nabataean Letter Taw 32 | ‎𐢧 Nabataean Number One 33 | ‎𐢨 Nabataean Number Two 34 | ‎𐢩 Nabataean Number Three 35 | ‎𐢪 Nabataean Number Four 36 | ‎𐢫 Nabataean Cruciform Number Four 37 | ‎𐢬 Nabataean Number Five 38 | ‎𐢭 Nabataean Number Ten 39 | ‎𐢮 Nabataean Number Twenty 40 | ‎𐢯 Nabataean Number One Hundred 41 | -------------------------------------------------------------------------------- /src/picker/data/combining_diacritical_marks_for_symbols.csv: -------------------------------------------------------------------------------- 1 | ⃐ Combining Left Harpoon Above 2 | ⃑ Combining Right Harpoon Above 3 | ⃒ Combining Long Vertical Line Overlay 4 | ⃓ Combining Short Vertical Line Overlay 5 | ⃔ Combining Anticlockwise Arrow Above 6 | ⃕ Combining Clockwise Arrow Above 7 | ⃖ Combining Left Arrow Above 8 | ⃗ Combining Right Arrow Above 9 | ⃘ Combining Ring Overlay 10 | ⃙ Combining Clockwise Ring Overlay 11 | ⃚ Combining Anticlockwise Ring Overlay 12 | ⃛ Combining Three Dots Above 13 | ⃜ Combining Four Dots Above 14 | ⃝ Combining Enclosing Circle 15 | ⃞ Combining Enclosing Square 16 | ⃟ Combining Enclosing Diamond 17 | ⃠ Combining Enclosing Circle Backslash 18 | ⃡ Combining Left Right Arrow Above 19 | ⃢ Combining Enclosing Screen 20 | ⃣ Combining Enclosing Keycap 21 | ⃤ Combining Enclosing Upward Pointing Triangle 22 | ⃥ Combining Reverse Solidus Overlay 23 | ⃦ Combining Double Vertical Stroke Overlay 24 | ⃧ Combining Annuity Symbol 25 | ⃨ Combining Triple Underdot 26 | ⃩ Combining Wide Bridge Above 27 | ⃪ Combining Leftwards Arrow Overlay 28 | ⃫ Combining Long Double Solidus Overlay 29 | ⃬ Combining Rightwards Harpoon With Barb Downwards 30 | ⃭ Combining Leftwards Harpoon With Barb Downwards 31 | ⃮ Combining Left Arrow Below 32 | ⃯ Combining Right Arrow Below 33 | ⃰ Combining Asterisk Above 34 | -------------------------------------------------------------------------------- /src/picker/data/shavian.csv: -------------------------------------------------------------------------------- 1 | 𐑐 Shavian Letter Peep 2 | 𐑑 Shavian Letter Tot 3 | 𐑒 Shavian Letter Kick 4 | 𐑓 Shavian Letter Fee 5 | 𐑔 Shavian Letter Thigh 6 | 𐑕 Shavian Letter So 7 | 𐑖 Shavian Letter Sure 8 | 𐑗 Shavian Letter Church 9 | 𐑘 Shavian Letter Yea 10 | 𐑙 Shavian Letter Hung 11 | 𐑚 Shavian Letter Bib 12 | 𐑛 Shavian Letter Dead 13 | 𐑜 Shavian Letter Gag 14 | 𐑝 Shavian Letter Vow 15 | 𐑞 Shavian Letter They 16 | 𐑟 Shavian Letter Zoo 17 | 𐑠 Shavian Letter Measure 18 | 𐑡 Shavian Letter Judge 19 | 𐑢 Shavian Letter Woe 20 | 𐑣 Shavian Letter Ha-Ha 21 | 𐑤 Shavian Letter Loll 22 | 𐑥 Shavian Letter Mime 23 | 𐑦 Shavian Letter If 24 | 𐑧 Shavian Letter Egg 25 | 𐑨 Shavian Letter Ash 26 | 𐑩 Shavian Letter Ado 27 | 𐑪 Shavian Letter On 28 | 𐑫 Shavian Letter Wool 29 | 𐑬 Shavian Letter Out 30 | 𐑭 Shavian Letter Ah 31 | 𐑮 Shavian Letter Roar 32 | 𐑯 Shavian Letter Nun 33 | 𐑰 Shavian Letter Eat 34 | 𐑱 Shavian Letter Age 35 | 𐑲 Shavian Letter Ice 36 | 𐑳 Shavian Letter Up 37 | 𐑴 Shavian Letter Oak 38 | 𐑵 Shavian Letter Ooze 39 | 𐑶 Shavian Letter Oil 40 | 𐑷 Shavian Letter Awe 41 | 𐑸 Shavian Letter Are 42 | 𐑹 Shavian Letter Or 43 | 𐑺 Shavian Letter Air 44 | 𐑻 Shavian Letter Err 45 | 𐑼 Shavian Letter Array 46 | 𐑽 Shavian Letter Ear 47 | 𐑾 Shavian Letter Ian 48 | 𐑿 Shavian Letter Yew 49 | -------------------------------------------------------------------------------- /src/picker/data/todhri.csv: -------------------------------------------------------------------------------- 1 | 𐗀 Todhri Letter A 2 | 𐗁 Todhri Letter As 3 | 𐗂 Todhri Letter Ba 4 | 𐗃 Todhri Letter Mba 5 | 𐗄 Todhri Letter Ca 6 | 𐗅 Todhri Letter Cha 7 | 𐗆 Todhri Letter Da 8 | 𐗇 Todhri Letter Nda 9 | 𐗈 Todhri Letter Dha 10 | 𐗉 Todhri Letter Ei 11 | 𐗊 Todhri Letter E 12 | 𐗋 Todhri Letter Fa 13 | 𐗌 Todhri Letter Ga 14 | 𐗍 Todhri Letter Nga 15 | 𐗎 Todhri Letter Gja 16 | 𐗏 Todhri Letter Ngja 17 | 𐗐 Todhri Letter Ha 18 | 𐗑 Todhri Letter Hja 19 | 𐗒 Todhri Letter I 20 | 𐗓 Todhri Letter Ja 21 | 𐗔 Todhri Letter Ka 22 | 𐗕 Todhri Letter La 23 | 𐗖 Todhri Letter Lla 24 | 𐗗 Todhri Letter Ma 25 | 𐗘 Todhri Letter Na 26 | 𐗙 Todhri Letter Njan 27 | 𐗚 Todhri Letter O 28 | 𐗛 Todhri Letter Pa 29 | 𐗜 Todhri Letter Qa 30 | 𐗝 Todhri Letter Ra 31 | 𐗞 Todhri Letter Rra 32 | 𐗟 Todhri Letter Sa 33 | 𐗠 Todhri Letter Sha 34 | 𐗡 Todhri Letter Shta 35 | 𐗢 Todhri Letter Ta 36 | 𐗣 Todhri Letter Tha 37 | 𐗤 Todhri Letter U 38 | 𐗥 Todhri Letter Va 39 | 𐗦 Todhri Letter Xa 40 | 𐗧 Todhri Letter Nxa 41 | 𐗨 Todhri Letter Xha 42 | 𐗩 Todhri Letter Nxha 43 | 𐗪 Todhri Letter Y 44 | 𐗫 Todhri Letter Jy 45 | 𐗬 Todhri Letter Za 46 | 𐗭 Todhri Letter Zha 47 | 𐗮 Todhri Letter Gha 48 | 𐗯 Todhri Letter Sta 49 | 𐗰 Todhri Letter Skan 50 | 𐗱 Todhri Letter Kha 51 | 𐗲 Todhri Letter Psa 52 | 𐗳 Todhri Letter Oo 53 | -------------------------------------------------------------------------------- /src/picker/data/georgian_supplement.csv: -------------------------------------------------------------------------------- 1 | ⴀ Georgian Small Letter An 2 | ⴁ Georgian Small Letter Ban 3 | ⴂ Georgian Small Letter Gan 4 | ⴃ Georgian Small Letter Don 5 | ⴄ Georgian Small Letter En 6 | ⴅ Georgian Small Letter Vin 7 | ⴆ Georgian Small Letter Zen 8 | ⴇ Georgian Small Letter Tan 9 | ⴈ Georgian Small Letter In 10 | ⴉ Georgian Small Letter Kan 11 | ⴊ Georgian Small Letter Las 12 | ⴋ Georgian Small Letter Man 13 | ⴌ Georgian Small Letter Nar 14 | ⴍ Georgian Small Letter On 15 | ⴎ Georgian Small Letter Par 16 | ⴏ Georgian Small Letter Zhar 17 | ⴐ Georgian Small Letter Rae 18 | ⴑ Georgian Small Letter San 19 | ⴒ Georgian Small Letter Tar 20 | ⴓ Georgian Small Letter Un 21 | ⴔ Georgian Small Letter Phar 22 | ⴕ Georgian Small Letter Khar 23 | ⴖ Georgian Small Letter Ghan 24 | ⴗ Georgian Small Letter Qar 25 | ⴘ Georgian Small Letter Shin 26 | ⴙ Georgian Small Letter Chin 27 | ⴚ Georgian Small Letter Can 28 | ⴛ Georgian Small Letter Jil 29 | ⴜ Georgian Small Letter Cil 30 | ⴝ Georgian Small Letter Char 31 | ⴞ Georgian Small Letter Xan 32 | ⴟ Georgian Small Letter Jhan 33 | ⴠ Georgian Small Letter Hae 34 | ⴡ Georgian Small Letter He 35 | ⴢ Georgian Small Letter Hie 36 | ⴣ Georgian Small Letter We 37 | ⴤ Georgian Small Letter Har 38 | ⴥ Georgian Small Letter Hoe 39 | ⴧ Georgian Small Letter Yn 40 | ⴭ Georgian Small Letter Aen 41 | -------------------------------------------------------------------------------- /src/picker/data/latin_extended-c.csv: -------------------------------------------------------------------------------- 1 | Ⱡ Latin Capital Letter L With Double Bar 2 | ⱡ Latin Small Letter L With Double Bar 3 | Ɫ Latin Capital Letter L With Middle Tilde 4 | Ᵽ Latin Capital Letter P With Stroke 5 | Ɽ Latin Capital Letter R With Tail 6 | ⱥ Latin Small Letter A With Stroke 7 | ⱦ Latin Small Letter T With Diagonal Stroke 8 | Ⱨ Latin Capital Letter H With Descender 9 | ⱨ Latin Small Letter H With Descender 10 | Ⱪ Latin Capital Letter K With Descender 11 | ⱪ Latin Small Letter K With Descender 12 | Ⱬ Latin Capital Letter Z With Descender 13 | ⱬ Latin Small Letter Z With Descender 14 | Ɑ Latin Capital Letter Alpha 15 | Ɱ Latin Capital Letter M With Hook 16 | Ɐ Latin Capital Letter Turned A 17 | Ɒ Latin Capital Letter Turned Alpha 18 | ⱱ Latin Small Letter V With Right Hook 19 | Ⱳ Latin Capital Letter W With Hook 20 | ⱳ Latin Small Letter W With Hook 21 | ⱴ Latin Small Letter V With Curl 22 | Ⱶ Latin Capital Letter Half H 23 | ⱶ Latin Small Letter Half H 24 | ⱷ Latin Small Letter Tailless Phi 25 | ⱸ Latin Small Letter E With Notch 26 | ⱹ Latin Small Letter Turned R With Tail 27 | ⱺ Latin Small Letter O With Low Ring Inside 28 | ⱻ Latin Letter Small Capital Turned E 29 | ⱼ Latin Subscript Small Letter J 30 | ⱽ Modifier Letter Capital V 31 | Ȿ Latin Capital Letter S With Swash Tail 32 | Ɀ Latin Capital Letter Z With Swash Tail 33 | -------------------------------------------------------------------------------- /src/picker/data/yezidi.csv: -------------------------------------------------------------------------------- 1 | ‎𐺀 Yezidi Letter Elif 2 | ‎𐺁 Yezidi Letter Be 3 | ‎𐺂 Yezidi Letter Pe 4 | ‎𐺃 Yezidi Letter Phe 5 | ‎𐺄 Yezidi Letter The 6 | ‎𐺅 Yezidi Letter Se 7 | ‎𐺆 Yezidi Letter Cim 8 | ‎𐺇 Yezidi Letter Chim 9 | ‎𐺈 Yezidi Letter Chhim 10 | ‎𐺉 Yezidi Letter Hha 11 | ‎𐺊 Yezidi Letter Xa 12 | ‎𐺋 Yezidi Letter Dal 13 | ‎𐺌 Yezidi Letter Zal 14 | ‎𐺍 Yezidi Letter Ra 15 | ‎𐺎 Yezidi Letter Rha 16 | ‎𐺏 Yezidi Letter Za 17 | ‎𐺐 Yezidi Letter Ja 18 | ‎𐺑 Yezidi Letter Sin 19 | ‎𐺒 Yezidi Letter Shin 20 | ‎𐺓 Yezidi Letter Sad 21 | ‎𐺔 Yezidi Letter Dad 22 | ‎𐺕 Yezidi Letter Ta 23 | ‎𐺖 Yezidi Letter Ze 24 | ‎𐺗 Yezidi Letter Eyn 25 | ‎𐺘 Yezidi Letter Xheyn 26 | ‎𐺙 Yezidi Letter Fa 27 | ‎𐺚 Yezidi Letter Va 28 | ‎𐺛 Yezidi Letter Va Alternate Form 29 | ‎𐺜 Yezidi Letter Qaf 30 | ‎𐺝 Yezidi Letter Kaf 31 | ‎𐺞 Yezidi Letter Khaf 32 | ‎𐺟 Yezidi Letter Gaf 33 | ‎𐺠 Yezidi Letter Lam 34 | ‎𐺡 Yezidi Letter Mim 35 | ‎𐺢 Yezidi Letter Nun 36 | ‎𐺣 Yezidi Letter Um 37 | ‎𐺤 Yezidi Letter Waw 38 | ‎𐺥 Yezidi Letter Ow 39 | ‎𐺦 Yezidi Letter Ew 40 | ‎𐺧 Yezidi Letter Hay 41 | ‎𐺨 Yezidi Letter Yot 42 | ‎𐺩 Yezidi Letter Et 43 | 𐺫 Yezidi Combining Hamza Mark 44 | 𐺬 Yezidi Combining Madda Mark 45 | ‎𐺭 Yezidi Hyphenation Mark 46 | ‎𐺰 Yezidi Letter Lam With Dot Above 47 | ‎𐺱 Yezidi Letter Yot With Circumflex Above 48 | -------------------------------------------------------------------------------- /src/picker/data/meroitic_hieroglyphs.csv: -------------------------------------------------------------------------------- 1 | ‎𐦀 Meroitic Hieroglyphic Letter A 2 | ‎𐦁 Meroitic Hieroglyphic Letter E 3 | ‎𐦂 Meroitic Hieroglyphic Letter I 4 | ‎𐦃 Meroitic Hieroglyphic Letter O 5 | ‎𐦄 Meroitic Hieroglyphic Letter Ya 6 | ‎𐦅 Meroitic Hieroglyphic Letter Wa 7 | ‎𐦆 Meroitic Hieroglyphic Letter Ba 8 | ‎𐦇 Meroitic Hieroglyphic Letter Ba-2 9 | ‎𐦈 Meroitic Hieroglyphic Letter Pa 10 | ‎𐦉 Meroitic Hieroglyphic Letter Ma 11 | ‎𐦊 Meroitic Hieroglyphic Letter Na 12 | ‎𐦋 Meroitic Hieroglyphic Letter Na-2 13 | ‎𐦌 Meroitic Hieroglyphic Letter Ne 14 | ‎𐦍 Meroitic Hieroglyphic Letter Ne-2 15 | ‎𐦎 Meroitic Hieroglyphic Letter Ra 16 | ‎𐦏 Meroitic Hieroglyphic Letter Ra-2 17 | ‎𐦐 Meroitic Hieroglyphic Letter La 18 | ‎𐦑 Meroitic Hieroglyphic Letter Kha 19 | ‎𐦒 Meroitic Hieroglyphic Letter Hha 20 | ‎𐦓 Meroitic Hieroglyphic Letter Sa 21 | ‎𐦔 Meroitic Hieroglyphic Letter Sa-2 22 | ‎𐦕 Meroitic Hieroglyphic Letter Se 23 | ‎𐦖 Meroitic Hieroglyphic Letter Ka 24 | ‎𐦗 Meroitic Hieroglyphic Letter Qa 25 | ‎𐦘 Meroitic Hieroglyphic Letter Ta 26 | ‎𐦙 Meroitic Hieroglyphic Letter Ta-2 27 | ‎𐦚 Meroitic Hieroglyphic Letter Te 28 | ‎𐦛 Meroitic Hieroglyphic Letter Te-2 29 | ‎𐦜 Meroitic Hieroglyphic Letter To 30 | ‎𐦝 Meroitic Hieroglyphic Letter Da 31 | ‎𐦞 Meroitic Hieroglyphic Symbol Vidj 32 | ‎𐦟 Meroitic Hieroglyphic Symbol Vidj-2 33 | -------------------------------------------------------------------------------- /.github/DISCUSSION_TEMPLATE/font-problems.yml: -------------------------------------------------------------------------------- 1 | title: "[Font Problem] " 2 | body: 3 | - type: markdown 4 | attributes: 5 | value: | 6 | Please look at other issues about font problems first! 7 | If you still need help, please share a screenshot of `rofimoji`. For example, when using `rofi`, you can use `Alt+Shift+s` to take a screenshot. 8 | - type: textarea 9 | attributes: 10 | label: Description 11 | description: What do you see instead of the expected characters? 12 | validations: 13 | required: true 14 | - type: textarea 15 | attributes: 16 | label: Other apps 17 | description: Do emojis (or your characters) work in other apps like Firefox, Chrome or your text editor? 18 | validations: 19 | required: true 20 | - type: input 21 | attributes: 22 | label: Selector 23 | description: Which selector are you using? 24 | placeholder: rofi/rofi-wayland/wofi... 25 | validations: 26 | required: true 27 | - type: input 28 | attributes: 29 | label: rofimoji version 30 | description: What's your version of rofimoji? 31 | validations: 32 | required: true 33 | - type: textarea 34 | attributes: 35 | label: Comment 36 | description: Anything else? 37 | validations: 38 | required: false 39 | -------------------------------------------------------------------------------- /src/picker/data/inscriptional_parthian.csv: -------------------------------------------------------------------------------- 1 | ‎𐭀 Inscriptional Parthian Letter Aleph 2 | ‎𐭁 Inscriptional Parthian Letter Beth 3 | ‎𐭂 Inscriptional Parthian Letter Gimel 4 | ‎𐭃 Inscriptional Parthian Letter Daleth 5 | ‎𐭄 Inscriptional Parthian Letter He 6 | ‎𐭅 Inscriptional Parthian Letter Waw 7 | ‎𐭆 Inscriptional Parthian Letter Zayin 8 | ‎𐭇 Inscriptional Parthian Letter Heth 9 | ‎𐭈 Inscriptional Parthian Letter Teth 10 | ‎𐭉 Inscriptional Parthian Letter Yodh 11 | ‎𐭊 Inscriptional Parthian Letter Kaph 12 | ‎𐭋 Inscriptional Parthian Letter Lamedh 13 | ‎𐭌 Inscriptional Parthian Letter Mem 14 | ‎𐭍 Inscriptional Parthian Letter Nun 15 | ‎𐭎 Inscriptional Parthian Letter Samekh 16 | ‎𐭏 Inscriptional Parthian Letter Ayin 17 | ‎𐭐 Inscriptional Parthian Letter Pe 18 | ‎𐭑 Inscriptional Parthian Letter Sadhe 19 | ‎𐭒 Inscriptional Parthian Letter Qoph 20 | ‎𐭓 Inscriptional Parthian Letter Resh 21 | ‎𐭔 Inscriptional Parthian Letter Shin 22 | ‎𐭕 Inscriptional Parthian Letter Taw 23 | ‎𐭘 Inscriptional Parthian Number One 24 | ‎𐭙 Inscriptional Parthian Number Two 25 | ‎𐭚 Inscriptional Parthian Number Three 26 | ‎𐭛 Inscriptional Parthian Number Four 27 | ‎𐭜 Inscriptional Parthian Number Ten 28 | ‎𐭝 Inscriptional Parthian Number Twenty 29 | ‎𐭞 Inscriptional Parthian Number One Hundred 30 | ‎𐭟 Inscriptional Parthian Number One Thousand 31 | -------------------------------------------------------------------------------- /src/picker/data/old_permic.csv: -------------------------------------------------------------------------------- 1 | 𐍐 Old Permic Letter An 2 | 𐍑 Old Permic Letter Bur 3 | 𐍒 Old Permic Letter Gai 4 | 𐍓 Old Permic Letter Doi 5 | 𐍔 Old Permic Letter E 6 | 𐍕 Old Permic Letter Zhoi 7 | 𐍖 Old Permic Letter Dzhoi 8 | 𐍗 Old Permic Letter Zata 9 | 𐍘 Old Permic Letter Dzita 10 | 𐍙 Old Permic Letter I 11 | 𐍚 Old Permic Letter Koke 12 | 𐍛 Old Permic Letter Lei 13 | 𐍜 Old Permic Letter Menoe 14 | 𐍝 Old Permic Letter Nenoe 15 | 𐍞 Old Permic Letter Vooi 16 | 𐍟 Old Permic Letter Peei 17 | 𐍠 Old Permic Letter Rei 18 | 𐍡 Old Permic Letter Sii 19 | 𐍢 Old Permic Letter Tai 20 | 𐍣 Old Permic Letter U 21 | 𐍤 Old Permic Letter Chery 22 | 𐍥 Old Permic Letter Shooi 23 | 𐍦 Old Permic Letter Shchooi 24 | 𐍧 Old Permic Letter Yry 25 | 𐍨 Old Permic Letter Yeru 26 | 𐍩 Old Permic Letter O 27 | 𐍪 Old Permic Letter Oo 28 | 𐍫 Old Permic Letter Ef 29 | 𐍬 Old Permic Letter Ha 30 | 𐍭 Old Permic Letter Tsiu 31 | 𐍮 Old Permic Letter Ver 32 | 𐍯 Old Permic Letter Yer 33 | 𐍰 Old Permic Letter Yeri 34 | 𐍱 Old Permic Letter Yat 35 | 𐍲 Old Permic Letter Ie 36 | 𐍳 Old Permic Letter Yu 37 | 𐍴 Old Permic Letter Ya 38 | 𐍵 Old Permic Letter Ia 39 | 𐍶 Combining Old Permic Letter An 40 | 𐍷 Combining Old Permic Letter Doi 41 | 𐍸 Combining Old Permic Letter Zata 42 | 𐍹 Combining Old Permic Letter Nenoe 43 | 𐍺 Combining Old Permic Letter Sii 44 | -------------------------------------------------------------------------------- /src/picker/data/thaana.csv: -------------------------------------------------------------------------------- 1 | ‎ހ Thaana Letter Haa 2 | ‎ށ Thaana Letter Shaviyani 3 | ‎ނ Thaana Letter Noonu 4 | ‎ރ Thaana Letter Raa 5 | ‎ބ Thaana Letter Baa 6 | ‎ޅ Thaana Letter Lhaviyani 7 | ‎ކ Thaana Letter Kaafu 8 | ‎އ Thaana Letter Alifu 9 | ‎ވ Thaana Letter Vaavu 10 | ‎މ Thaana Letter Meemu 11 | ‎ފ Thaana Letter Faafu 12 | ‎ދ Thaana Letter Dhaalu 13 | ‎ތ Thaana Letter Thaa 14 | ‎ލ Thaana Letter Laamu 15 | ‎ގ Thaana Letter Gaafu 16 | ‎ޏ Thaana Letter Gnaviyani 17 | ‎ސ Thaana Letter Seenu 18 | ‎ޑ Thaana Letter Daviyani 19 | ‎ޒ Thaana Letter Zaviyani 20 | ‎ޓ Thaana Letter Taviyani 21 | ‎ޔ Thaana Letter Yaa 22 | ‎ޕ Thaana Letter Paviyani 23 | ‎ޖ Thaana Letter Javiyani 24 | ‎ޗ Thaana Letter Chaviyani 25 | ‎ޘ Thaana Letter Ttaa 26 | ‎ޙ Thaana Letter Hhaa 27 | ‎ޚ Thaana Letter Khaa 28 | ‎ޛ Thaana Letter Thaalu 29 | ‎ޜ Thaana Letter Zaa 30 | ‎ޝ Thaana Letter Sheenu 31 | ‎ޞ Thaana Letter Saadhu 32 | ‎ޟ Thaana Letter Daadhu 33 | ‎ޠ Thaana Letter To 34 | ‎ޡ Thaana Letter Zo 35 | ‎ޢ Thaana Letter Ainu 36 | ‎ޣ Thaana Letter Ghainu 37 | ‎ޤ Thaana Letter Qaafu 38 | ‎ޥ Thaana Letter Waavu 39 | ަ Thaana Abafili 40 | ާ Thaana Aabaafili 41 | ި Thaana Ibifili 42 | ީ Thaana Eebeefili 43 | ު Thaana Ubufili 44 | ޫ Thaana Ooboofili 45 | ެ Thaana Ebefili 46 | ޭ Thaana Eybeyfili 47 | ޮ Thaana Obofili 48 | ޯ Thaana Oaboafili 49 | ް Thaana Sukun 50 | ‎ޱ Thaana Letter Naa 51 | -------------------------------------------------------------------------------- /src/picker/data/control_pictures.csv: -------------------------------------------------------------------------------- 1 | ␀ Symbol For Null 2 | ␁ Symbol For Start Of Heading 3 | ␂ Symbol For Start Of Text 4 | ␃ Symbol For End Of Text 5 | ␄ Symbol For End Of Transmission 6 | ␅ Symbol For Enquiry 7 | ␆ Symbol For Acknowledge 8 | ␇ Symbol For Bell 9 | ␈ Symbol For Backspace 10 | ␉ Symbol For Horizontal Tabulation 11 | ␊ Symbol For Line Feed 12 | ␋ Symbol For Vertical Tabulation 13 | ␌ Symbol For Form Feed 14 | ␍ Symbol For Carriage Return 15 | ␎ Symbol For Shift Out 16 | ␏ Symbol For Shift In 17 | ␐ Symbol For Data Link Escape 18 | ␑ Symbol For Device Control One 19 | ␒ Symbol For Device Control Two 20 | ␓ Symbol For Device Control Three 21 | ␔ Symbol For Device Control Four 22 | ␕ Symbol For Negative Acknowledge 23 | ␖ Symbol For Synchronous Idle 24 | ␗ Symbol For End Of Transmission Block 25 | ␘ Symbol For Cancel 26 | ␙ Symbol For End Of Medium 27 | ␚ Symbol For Substitute 28 | ␛ Symbol For Escape 29 | ␜ Symbol For File Separator 30 | ␝ Symbol For Group Separator 31 | ␞ Symbol For Record Separator 32 | ␟ Symbol For Unit Separator 33 | ␠ Symbol For Space 34 | ␡ Symbol For Delete 35 | ␢ Blank Symbol 36 | ␣ Open Box 37 | ␤ Symbol For Newline 38 | ␥ Symbol For Delete Form Two 39 | ␦ Symbol For Substitute Form Two 40 | ␧ Symbol For Delete Square Checker Board Form 41 | ␨ Symbol For Delete Rectangular Checker Board Form 42 | ␩ Symbol For Delete Medium Shade Form 43 | -------------------------------------------------------------------------------- /src/picker/clipboarder/clipboarder.py: -------------------------------------------------------------------------------- 1 | from abc import ABC, abstractmethod 2 | from typing import Optional 3 | 4 | from ..typer.typer import Typer 5 | 6 | 7 | class Clipboarder(ABC): 8 | @staticmethod 9 | def best_option(name: Optional[str] = None) -> "Clipboarder": 10 | from .noop import NoopClipboarder 11 | from .pbcopy import PBCopyClipboarder 12 | from .wl import WlClipboarder 13 | from .xclip import XClipClipboarder 14 | from .xsel import XSelClipboarder 15 | 16 | available_clipboarders = [XSelClipboarder, XClipClipboarder, WlClipboarder, PBCopyClipboarder, NoopClipboarder] 17 | 18 | if name is not None: 19 | return next(clipboarder for clipboarder in available_clipboarders if clipboarder.name() == name)() 20 | else: 21 | return next(clipboarder for clipboarder in available_clipboarders if clipboarder.supported())() 22 | 23 | @staticmethod 24 | @abstractmethod 25 | def supported() -> bool: 26 | pass 27 | 28 | @staticmethod 29 | @abstractmethod 30 | def name() -> str: 31 | pass 32 | 33 | @abstractmethod 34 | def copy_characters_to_clipboard(self, characters: str) -> None: 35 | pass 36 | 37 | @abstractmethod 38 | def copy_paste_characters(self, characters: str, active_window: str, typer: Typer) -> None: 39 | pass 40 | -------------------------------------------------------------------------------- /src/picker/data/syloti_nagri.csv: -------------------------------------------------------------------------------- 1 | ꠀ Syloti Nagri Letter A 2 | ꠁ Syloti Nagri Letter I 3 | ꠂ Syloti Nagri Sign Dvisvara 4 | ꠃ Syloti Nagri Letter U 5 | ꠄ Syloti Nagri Letter E 6 | ꠅ Syloti Nagri Letter O 7 | ꠆ Syloti Nagri Sign Hasanta 8 | ꠇ Syloti Nagri Letter Ko 9 | ꠈ Syloti Nagri Letter Kho 10 | ꠉ Syloti Nagri Letter Go 11 | ꠊ Syloti Nagri Letter Gho 12 | ꠋ Syloti Nagri Sign Anusvara 13 | ꠌ Syloti Nagri Letter Co 14 | ꠍ Syloti Nagri Letter Cho 15 | ꠎ Syloti Nagri Letter Jo 16 | ꠏ Syloti Nagri Letter Jho 17 | ꠐ Syloti Nagri Letter Tto 18 | ꠑ Syloti Nagri Letter Ttho 19 | ꠒ Syloti Nagri Letter Ddo 20 | ꠓ Syloti Nagri Letter Ddho 21 | ꠔ Syloti Nagri Letter To 22 | ꠕ Syloti Nagri Letter Tho 23 | ꠖ Syloti Nagri Letter Do 24 | ꠗ Syloti Nagri Letter Dho 25 | ꠘ Syloti Nagri Letter No 26 | ꠙ Syloti Nagri Letter Po 27 | ꠚ Syloti Nagri Letter Pho 28 | ꠛ Syloti Nagri Letter Bo 29 | ꠜ Syloti Nagri Letter Bho 30 | ꠝ Syloti Nagri Letter Mo 31 | ꠞ Syloti Nagri Letter Ro 32 | ꠟ Syloti Nagri Letter Lo 33 | ꠠ Syloti Nagri Letter Rro 34 | ꠡ Syloti Nagri Letter So 35 | ꠢ Syloti Nagri Letter Ho 36 | ꠣ Syloti Nagri Vowel Sign A 37 | ꠤ Syloti Nagri Vowel Sign I 38 | ꠥ Syloti Nagri Vowel Sign U 39 | ꠦ Syloti Nagri Vowel Sign E 40 | ꠧ Syloti Nagri Vowel Sign Oo 41 | ꠨ Syloti Nagri Poetry Mark-1 42 | ꠩ Syloti Nagri Poetry Mark-2 43 | ꠪ Syloti Nagri Poetry Mark-3 44 | ꠫ Syloti Nagri Poetry Mark-4 45 | ꠬ Syloti Nagri Sign Alternate Hasanta 46 | -------------------------------------------------------------------------------- /src/extractors/nerdfontextractor.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import List 3 | 4 | import aiofiles 5 | import aiohttp 6 | 7 | from .characterfactory import Character 8 | from .extractor import Extractor 9 | 10 | 11 | class NerdFontExtractor(Extractor): 12 | __icons: List[Character] 13 | 14 | def __init__(self): 15 | self.__icons = [] 16 | 17 | async def extract_to(self, target: Path) -> None: 18 | await self.__fetch_icons() 19 | await self.__write_to_file(target) 20 | print("Finished NerdFont") 21 | 22 | async def __fetch_icons(self) -> None: 23 | async with aiohttp.ClientSession() as session: 24 | async with session.get( 25 | "https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/glyphnames.json" 26 | ) as response: 27 | for key, value in (await response.json(content_type=None)).items(): 28 | if key == "METADATA": 29 | continue 30 | icon = int(value["code"], 16) 31 | self.__icons.append(Character(icon, key)) 32 | 33 | async def __write_to_file(self, target: Path) -> None: 34 | async with aiofiles.open(target / "nerd_font.csv", mode="w") as character_file: 35 | for icon in self.__icons: 36 | await character_file.write(f"{icon.directional_char} {icon.lower_case_name}\n") 37 | -------------------------------------------------------------------------------- /src/picker/data/sogdian.csv: -------------------------------------------------------------------------------- 1 | ‎𐼰 Sogdian Letter Aleph 2 | ‎𐼱 Sogdian Letter Beth 3 | ‎𐼲 Sogdian Letter Gimel 4 | ‎𐼳 Sogdian Letter He 5 | ‎𐼴 Sogdian Letter Waw 6 | ‎𐼵 Sogdian Letter Zayin 7 | ‎𐼶 Sogdian Letter Heth 8 | ‎𐼷 Sogdian Letter Yodh 9 | ‎𐼸 Sogdian Letter Kaph 10 | ‎𐼹 Sogdian Letter Lamedh 11 | ‎𐼺 Sogdian Letter Mem 12 | ‎𐼻 Sogdian Letter Nun 13 | ‎𐼼 Sogdian Letter Samekh 14 | ‎𐼽 Sogdian Letter Ayin 15 | ‎𐼾 Sogdian Letter Pe 16 | ‎𐼿 Sogdian Letter Sadhe 17 | ‎𐽀 Sogdian Letter Resh-Ayin 18 | ‎𐽁 Sogdian Letter Shin 19 | ‎𐽂 Sogdian Letter Taw 20 | ‎𐽃 Sogdian Letter Feth 21 | ‎𐽄 Sogdian Letter Lesh 22 | ‎𐽅 Sogdian Independent Shin 23 | 𐽆 Sogdian Combining Dot Below 24 | 𐽇 Sogdian Combining Two Dots Below 25 | 𐽈 Sogdian Combining Dot Above 26 | 𐽉 Sogdian Combining Two Dots Above 27 | 𐽊 Sogdian Combining Curve Above 28 | 𐽋 Sogdian Combining Curve Below 29 | 𐽌 Sogdian Combining Hook Above 30 | 𐽍 Sogdian Combining Hook Below 31 | 𐽎 Sogdian Combining Long Hook Below 32 | 𐽏 Sogdian Combining Resh Below 33 | 𐽐 Sogdian Combining Stroke Below 34 | ‎𐽑 Sogdian Number One 35 | ‎𐽒 Sogdian Number Ten 36 | ‎𐽓 Sogdian Number Twenty 37 | ‎𐽔 Sogdian Number One Hundred 38 | ‎𐽕 Sogdian Punctuation Two Vertical Bars 39 | ‎𐽖 Sogdian Punctuation Two Vertical Bars With Dots 40 | ‎𐽗 Sogdian Punctuation Circle With Dot 41 | ‎𐽘 Sogdian Punctuation Two Circles With Dots 42 | ‎𐽙 Sogdian Punctuation Half Circle With Dot 43 | -------------------------------------------------------------------------------- /src/picker/data/tai_yo.csv: -------------------------------------------------------------------------------- 1 | 𞛀 Tai Yo Letter Low Ko 2 | 𞛁 Tai Yo Letter High Ko 3 | 𞛂 Tai Yo Letter Low Kho 4 | 𞛃 Tai Yo Letter High Kho 5 | 𞛄 Tai Yo Letter Go 6 | 𞛅 Tai Yo Letter Ngo 7 | 𞛆 Tai Yo Letter Co 8 | 𞛇 Tai Yo Letter Low Xo 9 | 𞛈 Tai Yo Letter High Xo 10 | 𞛉 Tai Yo Letter Low Nyo 11 | 𞛊 Tai Yo Letter High Nyo 12 | 𞛋 Tai Yo Letter Do 13 | 𞛌 Tai Yo Letter Low To 14 | 𞛍 Tai Yo Letter High To 15 | 𞛎 Tai Yo Letter Tho 16 | 𞛏 Tai Yo Letter No 17 | 𞛐 Tai Yo Letter Bo 18 | 𞛑 Tai Yo Letter Low Po 19 | 𞛒 Tai Yo Letter High Po 20 | 𞛓 Tai Yo Letter Pho 21 | 𞛔 Tai Yo Letter Low Fo 22 | 𞛕 Tai Yo Letter High Fo 23 | 𞛖 Tai Yo Letter Mo 24 | 𞛗 Tai Yo Letter Yo 25 | 𞛘 Tai Yo Letter Lo 26 | 𞛙 Tai Yo Letter Vo 27 | 𞛚 Tai Yo Letter Low Ho 28 | 𞛛 Tai Yo Letter High Ho 29 | 𞛜 Tai Yo Letter Qo 30 | 𞛝 Tai Yo Letter Low Kvo 31 | 𞛞 Tai Yo Letter High Kvo 32 | 𞛠 Tai Yo Letter Aa 33 | 𞛡 Tai Yo Letter I 34 | 𞛢 Tai Yo Letter Ue 35 | 𞛣 Tai Yo Sign Ue 36 | 𞛤 Tai Yo Letter U 37 | 𞛥 Tai Yo Letter Ae 38 | 𞛦 Tai Yo Sign Au 39 | 𞛧 Tai Yo Letter O 40 | 𞛨 Tai Yo Letter E 41 | 𞛩 Tai Yo Letter Ia 42 | 𞛪 Tai Yo Letter Uea 43 | 𞛫 Tai Yo Letter Ua 44 | 𞛬 Tai Yo Letter Oo 45 | 𞛭 Tai Yo Letter Aue 46 | 𞛮 Tai Yo Sign Ay 47 | 𞛯 Tai Yo Sign Ang 48 | 𞛰 Tai Yo Letter An 49 | 𞛱 Tai Yo Letter Am 50 | 𞛲 Tai Yo Letter Ak 51 | 𞛳 Tai Yo Letter At 52 | 𞛴 Tai Yo Letter Ap 53 | 𞛵 Tai Yo Sign Om 54 | 𞛾 Tai Yo Symbol Mueang 55 | 𞛿 Tai Yo Xam Lai 56 | -------------------------------------------------------------------------------- /src/picker/clipboarder/xsel.py: -------------------------------------------------------------------------------- 1 | from subprocess import run 2 | 3 | from ..abstractionhelper import is_installed, is_wayland 4 | from ..typer.typer import Typer 5 | from .clipboarder import Clipboarder 6 | 7 | 8 | class XSelClipboarder(Clipboarder): 9 | @staticmethod 10 | def supported() -> bool: 11 | return not is_wayland() and is_installed("xsel") 12 | 13 | @staticmethod 14 | def name() -> str: 15 | return "xsel" 16 | 17 | def copy_characters_to_clipboard(self, characters: str) -> None: 18 | run(["xsel", "-i", "-b"], input=characters, encoding="utf-8") 19 | 20 | def copy_paste_characters(self, characters: str, active_window: str, typer: Typer) -> None: 21 | old_clipboard_content = run(args=["xsel", "-o", "-b"], capture_output=True, encoding="utf-8") 22 | old_primary_content = run(args=["xsel", "-o", "-p"], capture_output=True, encoding="utf-8") 23 | 24 | run(args=["xsel", "-i", "-b"], input=characters, encoding="utf-8") 25 | run(args=["xsel", "-i", "-p"], input=characters, encoding="utf-8") 26 | 27 | typer.insert_from_clipboard(active_window) 28 | 29 | if old_clipboard_content.returncode == 0: 30 | run(args=["xsel", "-i", "-b"], input=old_clipboard_content.stdout, encoding="utf-8") 31 | if old_primary_content.returncode == 0: 32 | run(args=["xsel", "-i", "-p"], input=old_primary_content.stdout, encoding="utf-8") 33 | -------------------------------------------------------------------------------- /src/extractors/weathericonsextractor.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import List 3 | 4 | import aiofiles 5 | import aiohttp 6 | from bs4 import BeautifulSoup 7 | 8 | from .characterfactory import Character 9 | from .extractor import Extractor 10 | 11 | 12 | class WeatherIconsExtractor(Extractor): 13 | __icons: List[Character] 14 | 15 | def __init__(self): 16 | self.__icons = [] 17 | 18 | async def extract_to(self, target: Path) -> None: 19 | await self.__fetch_icons() 20 | await self.__write_to_file(target) 21 | print("Finished Weather Icons") 22 | 23 | async def __fetch_icons(self) -> None: 24 | async with aiohttp.ClientSession() as session: 25 | async with session.get( 26 | "https://raw.githubusercontent.com/erikflowers/weather-icons/refs/heads/master/values/weathericons.xml" 27 | ) as response: 28 | html_content = BeautifulSoup(await response.text(), "xml") 29 | 30 | for row in html_content.find("resources").find_all("string"): 31 | self.__icons.append(Character(row.string, row["name"])) 32 | 33 | async def __write_to_file(self, target: Path) -> None: 34 | async with aiofiles.open(target / "weathericons.csv", mode="w") as character_file: 35 | for icon in self.__icons: 36 | await character_file.write(f"{icon.directional_char} {icon.lower_case_name}\n") 37 | -------------------------------------------------------------------------------- /src/picker/clipboarder/wl.py: -------------------------------------------------------------------------------- 1 | from subprocess import run 2 | 3 | from ..abstractionhelper import is_installed, is_wayland 4 | from ..typer.typer import Typer 5 | from .clipboarder import Clipboarder 6 | 7 | 8 | class WlClipboarder(Clipboarder): 9 | @staticmethod 10 | def supported() -> bool: 11 | return is_wayland() and is_installed("wl-copy") 12 | 13 | @staticmethod 14 | def name() -> str: 15 | return "wl-copy" 16 | 17 | def copy_characters_to_clipboard(self, characters: str) -> None: 18 | run(["wl-copy"], input=characters, encoding="utf-8") 19 | 20 | def copy_paste_characters(self, characters: str, active_window: str, typer: Typer) -> None: 21 | old_clipboard_content = run(args=["wl-paste", "--type", "text"], capture_output=True, encoding="utf-8") 22 | old_primary_content = run(args=["wl-paste", "--primary", "type", "text"], capture_output=True, encoding="utf-8") 23 | 24 | run(args=["wl-copy"], input=characters, encoding="utf-8") 25 | run(args=["wl-copy", "--primary"], input=characters, encoding="utf-8") 26 | 27 | typer.insert_from_clipboard(active_window) 28 | 29 | if old_clipboard_content.returncode == 0: 30 | run(args=["wl-copy"], input=old_clipboard_content.stdout, encoding="utf-8") 31 | if old_primary_content.returncode == 0: 32 | run(args=["wl-copy", "--primary"], input=old_primary_content.stdout, encoding="utf-8") 33 | -------------------------------------------------------------------------------- /src/picker/typer/typer.py: -------------------------------------------------------------------------------- 1 | from abc import ABC, abstractmethod 2 | from typing import List, Optional 3 | 4 | 5 | class Typer(ABC): 6 | @staticmethod 7 | def best_option(name: Optional[str] = None) -> "Typer": 8 | from .cliclick import CliclickTyper 9 | from .noop import NoopTyper 10 | from .wtype import WTypeTyper 11 | from .xdotool import XDoToolTyper 12 | from .ydotool import YdotoolTyper as YDoToolTyper 13 | 14 | available_typers = [XDoToolTyper, WTypeTyper, YDoToolTyper, CliclickTyper, NoopTyper] 15 | 16 | if name is not None: 17 | return next(typer for typer in available_typers if typer.name() == name)() 18 | else: 19 | return next(typer for typer in available_typers if typer.supported())() 20 | 21 | @staticmethod 22 | @abstractmethod 23 | def supported() -> bool: 24 | pass 25 | 26 | @staticmethod 27 | @abstractmethod 28 | def name() -> str: 29 | pass 30 | 31 | @abstractmethod 32 | def get_active_window(self) -> str: 33 | pass 34 | 35 | @abstractmethod 36 | def type_characters(self, characters: str, active_window: str) -> None: 37 | pass 38 | 39 | @abstractmethod 40 | def insert_from_clipboard(self, active_window: str) -> None: 41 | pass 42 | 43 | @abstractmethod 44 | def type_numerical(self, codepoints: List[int], active_window: str) -> None: 45 | pass 46 | -------------------------------------------------------------------------------- /src/picker/data/old_sogdian.csv: -------------------------------------------------------------------------------- 1 | ‎𐼀 Old Sogdian Letter Aleph 2 | ‎𐼁 Old Sogdian Letter Final Aleph 3 | ‎𐼂 Old Sogdian Letter Beth 4 | ‎𐼃 Old Sogdian Letter Final Beth 5 | ‎𐼄 Old Sogdian Letter Gimel 6 | ‎𐼅 Old Sogdian Letter He 7 | ‎𐼆 Old Sogdian Letter Final He 8 | ‎𐼇 Old Sogdian Letter Waw 9 | ‎𐼈 Old Sogdian Letter Zayin 10 | ‎𐼉 Old Sogdian Letter Heth 11 | ‎𐼊 Old Sogdian Letter Yodh 12 | ‎𐼋 Old Sogdian Letter Kaph 13 | ‎𐼌 Old Sogdian Letter Lamedh 14 | ‎𐼍 Old Sogdian Letter Mem 15 | ‎𐼎 Old Sogdian Letter Nun 16 | ‎𐼏 Old Sogdian Letter Final Nun 17 | ‎𐼐 Old Sogdian Letter Final Nun With Vertical Tail 18 | ‎𐼑 Old Sogdian Letter Samekh 19 | ‎𐼒 Old Sogdian Letter Ayin 20 | ‎𐼓 Old Sogdian Letter Alternate Ayin 21 | ‎𐼔 Old Sogdian Letter Pe 22 | ‎𐼕 Old Sogdian Letter Sadhe 23 | ‎𐼖 Old Sogdian Letter Final Sadhe 24 | ‎𐼗 Old Sogdian Letter Final Sadhe With Vertical Tail 25 | ‎𐼘 Old Sogdian Letter Resh-Ayin-Daleth 26 | ‎𐼙 Old Sogdian Letter Shin 27 | ‎𐼚 Old Sogdian Letter Taw 28 | ‎𐼛 Old Sogdian Letter Final Taw 29 | ‎𐼜 Old Sogdian Letter Final Taw With Vertical Tail 30 | ‎𐼝 Old Sogdian Number One 31 | ‎𐼞 Old Sogdian Number Two 32 | ‎𐼟 Old Sogdian Number Three 33 | ‎𐼠 Old Sogdian Number Four 34 | ‎𐼡 Old Sogdian Number Five 35 | ‎𐼢 Old Sogdian Number Ten 36 | ‎𐼣 Old Sogdian Number Twenty 37 | ‎𐼤 Old Sogdian Number Thirty 38 | ‎𐼥 Old Sogdian Number One Hundred 39 | ‎𐼦 Old Sogdian Fraction One Half 40 | ‎𐼧 Old Sogdian Ligature Ayin-Daleth 41 | -------------------------------------------------------------------------------- /src/picker/data/old_persian.csv: -------------------------------------------------------------------------------- 1 | 𐎠 Old Persian Sign A 2 | 𐎡 Old Persian Sign I 3 | 𐎢 Old Persian Sign U 4 | 𐎣 Old Persian Sign Ka 5 | 𐎤 Old Persian Sign Ku 6 | 𐎥 Old Persian Sign Ga 7 | 𐎦 Old Persian Sign Gu 8 | 𐎧 Old Persian Sign Xa 9 | 𐎨 Old Persian Sign Ca 10 | 𐎩 Old Persian Sign Ja 11 | 𐎪 Old Persian Sign Ji 12 | 𐎫 Old Persian Sign Ta 13 | 𐎬 Old Persian Sign Tu 14 | 𐎭 Old Persian Sign Da 15 | 𐎮 Old Persian Sign Di 16 | 𐎯 Old Persian Sign Du 17 | 𐎰 Old Persian Sign Tha 18 | 𐎱 Old Persian Sign Pa 19 | 𐎲 Old Persian Sign Ba 20 | 𐎳 Old Persian Sign Fa 21 | 𐎴 Old Persian Sign Na 22 | 𐎵 Old Persian Sign Nu 23 | 𐎶 Old Persian Sign Ma 24 | 𐎷 Old Persian Sign Mi 25 | 𐎸 Old Persian Sign Mu 26 | 𐎹 Old Persian Sign Ya 27 | 𐎺 Old Persian Sign Va 28 | 𐎻 Old Persian Sign Vi 29 | 𐎼 Old Persian Sign Ra 30 | 𐎽 Old Persian Sign Ru 31 | 𐎾 Old Persian Sign La 32 | 𐎿 Old Persian Sign Sa 33 | 𐏀 Old Persian Sign Za 34 | 𐏁 Old Persian Sign Sha 35 | 𐏂 Old Persian Sign Ssa 36 | 𐏃 Old Persian Sign Ha 37 | 𐏈 Old Persian Sign Auramazdaa 38 | 𐏉 Old Persian Sign Auramazdaa-2 39 | 𐏊 Old Persian Sign Auramazdaaha 40 | 𐏋 Old Persian Sign Xshaayathiya 41 | 𐏌 Old Persian Sign Dahyaaush 42 | 𐏍 Old Persian Sign Dahyaaush-2 43 | 𐏎 Old Persian Sign Baga 44 | 𐏏 Old Persian Sign Buumish 45 | 𐏐 Old Persian Word Divider 46 | 𐏑 Old Persian Number One 47 | 𐏒 Old Persian Number Two 48 | 𐏓 Old Persian Number Ten 49 | 𐏔 Old Persian Number Twenty 50 | 𐏕 Old Persian Number Hundred 51 | -------------------------------------------------------------------------------- /src/picker/data/wancho.csv: -------------------------------------------------------------------------------- 1 | 𞋀 Wancho Letter Aa 2 | 𞋁 Wancho Letter A 3 | 𞋂 Wancho Letter Ba 4 | 𞋃 Wancho Letter Ca 5 | 𞋄 Wancho Letter Da 6 | 𞋅 Wancho Letter Ga 7 | 𞋆 Wancho Letter Ya 8 | 𞋇 Wancho Letter Pha 9 | 𞋈 Wancho Letter La 10 | 𞋉 Wancho Letter Na 11 | 𞋊 Wancho Letter Pa 12 | 𞋋 Wancho Letter Ta 13 | 𞋌 Wancho Letter Tha 14 | 𞋍 Wancho Letter Fa 15 | 𞋎 Wancho Letter Sa 16 | 𞋏 Wancho Letter Sha 17 | 𞋐 Wancho Letter Ja 18 | 𞋑 Wancho Letter Za 19 | 𞋒 Wancho Letter Wa 20 | 𞋓 Wancho Letter Va 21 | 𞋔 Wancho Letter Ka 22 | 𞋕 Wancho Letter O 23 | 𞋖 Wancho Letter Au 24 | 𞋗 Wancho Letter Ra 25 | 𞋘 Wancho Letter Ma 26 | 𞋙 Wancho Letter Kha 27 | 𞋚 Wancho Letter Ha 28 | 𞋛 Wancho Letter E 29 | 𞋜 Wancho Letter I 30 | 𞋝 Wancho Letter Nga 31 | 𞋞 Wancho Letter U 32 | 𞋟 Wancho Letter Llha 33 | 𞋠 Wancho Letter Tsa 34 | 𞋡 Wancho Letter Tra 35 | 𞋢 Wancho Letter Ong 36 | 𞋣 Wancho Letter Aang 37 | 𞋤 Wancho Letter Ang 38 | 𞋥 Wancho Letter Ing 39 | 𞋦 Wancho Letter On 40 | 𞋧 Wancho Letter En 41 | 𞋨 Wancho Letter Aan 42 | 𞋩 Wancho Letter Nya 43 | 𞋪 Wancho Letter Uen 44 | 𞋫 Wancho Letter Yih 45 | 𞋬 Wancho Tone Tup 46 | 𞋭 Wancho Tone Tupni 47 | 𞋮 Wancho Tone Koi 48 | 𞋯 Wancho Tone Koini 49 | 𞋰 Wancho Digit Zero 50 | 𞋱 Wancho Digit One 51 | 𞋲 Wancho Digit Two 52 | 𞋳 Wancho Digit Three 53 | 𞋴 Wancho Digit Four 54 | 𞋵 Wancho Digit Five 55 | 𞋶 Wancho Digit Six 56 | 𞋷 Wancho Digit Seven 57 | 𞋸 Wancho Digit Eight 58 | 𞋹 Wancho Digit Nine 59 | 𞋿 Wancho Ngun Sign 60 | -------------------------------------------------------------------------------- /src/picker/data/modifier_tone_letters.csv: -------------------------------------------------------------------------------- 1 | ꜀ Modifier Letter Chinese Tone Yin Ping 2 | ꜁ Modifier Letter Chinese Tone Yang Ping 3 | ꜂ Modifier Letter Chinese Tone Yin Shang 4 | ꜃ Modifier Letter Chinese Tone Yang Shang 5 | ꜄ Modifier Letter Chinese Tone Yin Qu 6 | ꜅ Modifier Letter Chinese Tone Yang Qu 7 | ꜆ Modifier Letter Chinese Tone Yin Ru 8 | ꜇ Modifier Letter Chinese Tone Yang Ru 9 | ꜈ Modifier Letter Extra-High Dotted Tone Bar 10 | ꜉ Modifier Letter High Dotted Tone Bar 11 | ꜊ Modifier Letter Mid Dotted Tone Bar 12 | ꜋ Modifier Letter Low Dotted Tone Bar 13 | ꜌ Modifier Letter Extra-Low Dotted Tone Bar 14 | ꜍ Modifier Letter Extra-High Dotted Left-Stem Tone Bar 15 | ꜎ Modifier Letter High Dotted Left-Stem Tone Bar 16 | ꜏ Modifier Letter Mid Dotted Left-Stem Tone Bar 17 | ꜐ Modifier Letter Low Dotted Left-Stem Tone Bar 18 | ꜑ Modifier Letter Extra-Low Dotted Left-Stem Tone Bar 19 | ꜒ Modifier Letter Extra-High Left-Stem Tone Bar 20 | ꜓ Modifier Letter High Left-Stem Tone Bar 21 | ꜔ Modifier Letter Mid Left-Stem Tone Bar 22 | ꜕ Modifier Letter Low Left-Stem Tone Bar 23 | ꜖ Modifier Letter Extra-Low Left-Stem Tone Bar 24 | ꜗ Modifier Letter Dot Vertical Bar 25 | ꜘ Modifier Letter Dot Slash 26 | ꜙ Modifier Letter Dot Horizontal Bar 27 | ꜚ Modifier Letter Lower Right Corner Angle 28 | ꜛ Modifier Letter Raised Up Arrow 29 | ꜜ Modifier Letter Raised Down Arrow 30 | ꜝ Modifier Letter Raised Exclamation Mark 31 | ꜞ Modifier Letter Raised Inverted Exclamation Mark 32 | ꜟ Modifier Letter Low Inverted Exclamation Mark 33 | -------------------------------------------------------------------------------- /src/picker/models.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from enum import Enum 3 | 4 | 5 | class Action(Enum): 6 | TYPE = "type" 7 | COPY = "copy" 8 | CLIPBOARD = "clipboard" 9 | TYPE_NUMERICAL = "type-numerical" 10 | UNICODE = "unicode" 11 | COPY_UNICODE = "copy-unicode" 12 | STDOUT = "print" 13 | MENU = "menu" 14 | 15 | def __str__(self): 16 | return self.value 17 | 18 | def __repr__(self): 19 | return self.value 20 | 21 | 22 | class CANCEL: 23 | def __eq__(self, other): 24 | return isinstance(other, CANCEL) 25 | 26 | 27 | class DEFAULT: 28 | def __eq__(self, other): 29 | return isinstance(other, DEFAULT) 30 | 31 | 32 | @dataclass 33 | class Shortcut: 34 | index: int 35 | 36 | 37 | @dataclass 38 | class CharacterEntry: 39 | character: str 40 | description: str | None 41 | 42 | def __init__(self, character: str, description: str | None = None): 43 | self.character = character 44 | self.description = description 45 | 46 | def merge(self, other: "CharacterEntry"): 47 | if self == other: 48 | return self 49 | 50 | if self.character != other.character: 51 | raise Exception("Cannot merge different characters") 52 | 53 | if other.description: 54 | if self.description: 55 | self.description = f"{self.description}, {other.description}" 56 | else: 57 | self.description = other.description 58 | -------------------------------------------------------------------------------- /src/picker/data/dogra.csv: -------------------------------------------------------------------------------- 1 | 𑠀 Dogra Letter A 2 | 𑠁 Dogra Letter Aa 3 | 𑠂 Dogra Letter I 4 | 𑠃 Dogra Letter Ii 5 | 𑠄 Dogra Letter U 6 | 𑠅 Dogra Letter Uu 7 | 𑠆 Dogra Letter E 8 | 𑠇 Dogra Letter Ai 9 | 𑠈 Dogra Letter O 10 | 𑠉 Dogra Letter Au 11 | 𑠊 Dogra Letter Ka 12 | 𑠋 Dogra Letter Kha 13 | 𑠌 Dogra Letter Ga 14 | 𑠍 Dogra Letter Gha 15 | 𑠎 Dogra Letter Nga 16 | 𑠏 Dogra Letter Ca 17 | 𑠐 Dogra Letter Cha 18 | 𑠑 Dogra Letter Ja 19 | 𑠒 Dogra Letter Jha 20 | 𑠓 Dogra Letter Nya 21 | 𑠔 Dogra Letter Tta 22 | 𑠕 Dogra Letter Ttha 23 | 𑠖 Dogra Letter Dda 24 | 𑠗 Dogra Letter Ddha 25 | 𑠘 Dogra Letter Nna 26 | 𑠙 Dogra Letter Ta 27 | 𑠚 Dogra Letter Tha 28 | 𑠛 Dogra Letter Da 29 | 𑠜 Dogra Letter Dha 30 | 𑠝 Dogra Letter Na 31 | 𑠞 Dogra Letter Pa 32 | 𑠟 Dogra Letter Pha 33 | 𑠠 Dogra Letter Ba 34 | 𑠡 Dogra Letter Bha 35 | 𑠢 Dogra Letter Ma 36 | 𑠣 Dogra Letter Ya 37 | 𑠤 Dogra Letter Ra 38 | 𑠥 Dogra Letter La 39 | 𑠦 Dogra Letter Va 40 | 𑠧 Dogra Letter Sha 41 | 𑠨 Dogra Letter Ssa 42 | 𑠩 Dogra Letter Sa 43 | 𑠪 Dogra Letter Ha 44 | 𑠫 Dogra Letter Rra 45 | 𑠬 Dogra Vowel Sign Aa 46 | 𑠭 Dogra Vowel Sign I 47 | 𑠮 Dogra Vowel Sign Ii 48 | 𑠯 Dogra Vowel Sign U 49 | 𑠰 Dogra Vowel Sign Uu 50 | 𑠱 Dogra Vowel Sign Vocalic R 51 | 𑠲 Dogra Vowel Sign Vocalic Rr 52 | 𑠳 Dogra Vowel Sign E 53 | 𑠴 Dogra Vowel Sign Ai 54 | 𑠵 Dogra Vowel Sign O 55 | 𑠶 Dogra Vowel Sign Au 56 | 𑠷 Dogra Sign Anusvara 57 | 𑠸 Dogra Sign Visarga 58 | 𑠹 Dogra Sign Virama 59 | 𑠺 Dogra Sign Nukta 60 | 𑠻 Dogra Abbreviation Sign 61 | -------------------------------------------------------------------------------- /src/picker/data/mahjong_tiles.csv: -------------------------------------------------------------------------------- 1 | 🀀 Mahjong Tile East Wind 2 | 🀁 Mahjong Tile South Wind 3 | 🀂 Mahjong Tile West Wind 4 | 🀃 Mahjong Tile North Wind 5 | 🀄 Mahjong Tile Red Dragon 6 | 🀅 Mahjong Tile Green Dragon 7 | 🀆 Mahjong Tile White Dragon 8 | 🀇 Mahjong Tile One Of Characters 9 | 🀈 Mahjong Tile Two Of Characters 10 | 🀉 Mahjong Tile Three Of Characters 11 | 🀊 Mahjong Tile Four Of Characters 12 | 🀋 Mahjong Tile Five Of Characters 13 | 🀌 Mahjong Tile Six Of Characters 14 | 🀍 Mahjong Tile Seven Of Characters 15 | 🀎 Mahjong Tile Eight Of Characters 16 | 🀏 Mahjong Tile Nine Of Characters 17 | 🀐 Mahjong Tile One Of Bamboos 18 | 🀑 Mahjong Tile Two Of Bamboos 19 | 🀒 Mahjong Tile Three Of Bamboos 20 | 🀓 Mahjong Tile Four Of Bamboos 21 | 🀔 Mahjong Tile Five Of Bamboos 22 | 🀕 Mahjong Tile Six Of Bamboos 23 | 🀖 Mahjong Tile Seven Of Bamboos 24 | 🀗 Mahjong Tile Eight Of Bamboos 25 | 🀘 Mahjong Tile Nine Of Bamboos 26 | 🀙 Mahjong Tile One Of Circles 27 | 🀚 Mahjong Tile Two Of Circles 28 | 🀛 Mahjong Tile Three Of Circles 29 | 🀜 Mahjong Tile Four Of Circles 30 | 🀝 Mahjong Tile Five Of Circles 31 | 🀞 Mahjong Tile Six Of Circles 32 | 🀟 Mahjong Tile Seven Of Circles 33 | 🀠 Mahjong Tile Eight Of Circles 34 | 🀡 Mahjong Tile Nine Of Circles 35 | 🀢 Mahjong Tile Plum 36 | 🀣 Mahjong Tile Orchid 37 | 🀤 Mahjong Tile Bamboo 38 | 🀥 Mahjong Tile Chrysanthemum 39 | 🀦 Mahjong Tile Spring 40 | 🀧 Mahjong Tile Summer 41 | 🀨 Mahjong Tile Autumn 42 | 🀩 Mahjong Tile Winter 43 | 🀪 Mahjong Tile Joker 44 | 🀫 Mahjong Tile Back 45 | -------------------------------------------------------------------------------- /src/extractors/htmlcharacterextractor.py: -------------------------------------------------------------------------------- 1 | from dataclasses import dataclass 2 | from pathlib import Path 3 | from typing import List 4 | 5 | import aiofiles 6 | import aiohttp 7 | 8 | from .extractor import Extractor 9 | 10 | 11 | @dataclass 12 | class HtmlCharacter: 13 | string: str 14 | name: str 15 | 16 | 17 | class HtmlCharacterExtractor(Extractor): 18 | __characters: List[HtmlCharacter] 19 | 20 | def __init__(self): 21 | self.__characters = [] 22 | 23 | async def extract_to(self, target: Path) -> None: 24 | await self.__fetch_data() 25 | await self.__write_to_file(target) 26 | print("Finished HtmlCharacters") 27 | 28 | async def __fetch_data(self) -> None: 29 | async with aiohttp.ClientSession() as session: 30 | async with session.get("https://html.spec.whatwg.org/entities.json") as response: 31 | entities = await response.json() 32 | for key in entities: 33 | if key.endswith(";") and key != " ": 34 | name = key[1:-1] 35 | char = "".join(list(map(chr, entities[key]["codepoints"]))) 36 | self.__characters.append(HtmlCharacter(char, name)) 37 | 38 | async def __write_to_file(self, target: Path) -> None: 39 | async with aiofiles.open(target / "html_characters.csv", mode="w") as character_file: 40 | for character in self.__characters: 41 | await character_file.write(f"{character.string} {character.name}\n") 42 | -------------------------------------------------------------------------------- /src/picker/data/cjk_compatibility_forms.csv: -------------------------------------------------------------------------------- 1 | ︰ Presentation Form For Vertical Two Dot Leader 2 | ︱ Presentation Form For Vertical Em Dash 3 | ︲ Presentation Form For Vertical En Dash 4 | ︳ Presentation Form For Vertical Low Line 5 | ︴ Presentation Form For Vertical Wavy Low Line 6 | ︵ Presentation Form For Vertical Left Parenthesis 7 | ︶ Presentation Form For Vertical Right Parenthesis 8 | ︷ Presentation Form For Vertical Left Curly Bracket 9 | ︸ Presentation Form For Vertical Right Curly Bracket 10 | ︹ Presentation Form For Vertical Left Tortoise Shell Bracket 11 | ︺ Presentation Form For Vertical Right Tortoise Shell Bracket 12 | ︻ Presentation Form For Vertical Left Black Lenticular Bracket 13 | ︼ Presentation Form For Vertical Right Black Lenticular Bracket 14 | ︽ Presentation Form For Vertical Left Double Angle Bracket 15 | ︾ Presentation Form For Vertical Right Double Angle Bracket 16 | ︿ Presentation Form For Vertical Left Angle Bracket 17 | ﹀ Presentation Form For Vertical Right Angle Bracket 18 | ﹁ Presentation Form For Vertical Left Corner Bracket 19 | ﹂ Presentation Form For Vertical Right Corner Bracket 20 | ﹃ Presentation Form For Vertical Left White Corner Bracket 21 | ﹄ Presentation Form For Vertical Right White Corner Bracket 22 | ﹅ Sesame Dot 23 | ﹆ White Sesame Dot 24 | ﹇ Presentation Form For Vertical Left Square Bracket 25 | ﹈ Presentation Form For Vertical Right Square Bracket 26 | ﹉ Dashed Overline 27 | ﹊ Centreline Overline 28 | ﹋ Wavy Overline 29 | ﹌ Double Wavy Overline 30 | ﹍ Dashed Low Line 31 | ﹎ Centreline Low Line 32 | ﹏ Wavy Low Line 33 | -------------------------------------------------------------------------------- /src/picker/data/batak.csv: -------------------------------------------------------------------------------- 1 | ᯀ Batak Letter A 2 | ᯁ Batak Letter Simalungun A 3 | ᯂ Batak Letter Ha 4 | ᯃ Batak Letter Simalungun Ha 5 | ᯄ Batak Letter Mandailing Ha 6 | ᯅ Batak Letter Ba 7 | ᯆ Batak Letter Karo Ba 8 | ᯇ Batak Letter Pa 9 | ᯈ Batak Letter Simalungun Pa 10 | ᯉ Batak Letter Na 11 | ᯊ Batak Letter Mandailing Na 12 | ᯋ Batak Letter Wa 13 | ᯌ Batak Letter Simalungun Wa 14 | ᯍ Batak Letter Pakpak Wa 15 | ᯎ Batak Letter Ga 16 | ᯏ Batak Letter Simalungun Ga 17 | ᯐ Batak Letter Ja 18 | ᯑ Batak Letter Da 19 | ᯒ Batak Letter Ra 20 | ᯓ Batak Letter Simalungun Ra 21 | ᯔ Batak Letter Ma 22 | ᯕ Batak Letter Simalungun Ma 23 | ᯖ Batak Letter Southern Ta 24 | ᯗ Batak Letter Northern Ta 25 | ᯘ Batak Letter Sa 26 | ᯙ Batak Letter Simalungun Sa 27 | ᯚ Batak Letter Mandailing Sa 28 | ᯛ Batak Letter Ya 29 | ᯜ Batak Letter Simalungun Ya 30 | ᯝ Batak Letter Nga 31 | ᯞ Batak Letter La 32 | ᯟ Batak Letter Simalungun La 33 | ᯠ Batak Letter Nya 34 | ᯡ Batak Letter Ca 35 | ᯢ Batak Letter Nda 36 | ᯣ Batak Letter Mba 37 | ᯤ Batak Letter I 38 | ᯥ Batak Letter U 39 | ᯦ Batak Sign Tompi 40 | ᯧ Batak Vowel Sign E 41 | ᯨ Batak Vowel Sign Pakpak E 42 | ᯩ Batak Vowel Sign Ee 43 | ᯪ Batak Vowel Sign I 44 | ᯫ Batak Vowel Sign Karo I 45 | ᯬ Batak Vowel Sign O 46 | ᯭ Batak Vowel Sign Karo O 47 | ᯮ Batak Vowel Sign U 48 | ᯯ Batak Vowel Sign U For Simalungun Sa 49 | ᯰ Batak Consonant Sign Ng 50 | ᯱ Batak Consonant Sign H 51 | ᯲ Batak Pangolat 52 | ᯳ Batak Panongonan 53 | ᯼ Batak Symbol Bindu Na Metek 54 | ᯽ Batak Symbol Bindu Pinarboras 55 | ᯾ Batak Symbol Bindu Judul 56 | ᯿ Batak Symbol Bindu Pangolat 57 | -------------------------------------------------------------------------------- /src/picker/data/phags-pa.csv: -------------------------------------------------------------------------------- 1 | ꡀ Phags-Pa Letter Ka 2 | ꡁ Phags-Pa Letter Kha 3 | ꡂ Phags-Pa Letter Ga 4 | ꡃ Phags-Pa Letter Nga 5 | ꡄ Phags-Pa Letter Ca 6 | ꡅ Phags-Pa Letter Cha 7 | ꡆ Phags-Pa Letter Ja 8 | ꡇ Phags-Pa Letter Nya 9 | ꡈ Phags-Pa Letter Ta 10 | ꡉ Phags-Pa Letter Tha 11 | ꡊ Phags-Pa Letter Da 12 | ꡋ Phags-Pa Letter Na 13 | ꡌ Phags-Pa Letter Pa 14 | ꡍ Phags-Pa Letter Pha 15 | ꡎ Phags-Pa Letter Ba 16 | ꡏ Phags-Pa Letter Ma 17 | ꡐ Phags-Pa Letter Tsa 18 | ꡑ Phags-Pa Letter Tsha 19 | ꡒ Phags-Pa Letter Dza 20 | ꡓ Phags-Pa Letter Wa 21 | ꡔ Phags-Pa Letter Zha 22 | ꡕ Phags-Pa Letter Za 23 | ꡖ Phags-Pa Letter Small A 24 | ꡗ Phags-Pa Letter Ya 25 | ꡘ Phags-Pa Letter Ra 26 | ꡙ Phags-Pa Letter La 27 | ꡚ Phags-Pa Letter Sha 28 | ꡛ Phags-Pa Letter Sa 29 | ꡜ Phags-Pa Letter Ha 30 | ꡝ Phags-Pa Letter A 31 | ꡞ Phags-Pa Letter I 32 | ꡟ Phags-Pa Letter U 33 | ꡠ Phags-Pa Letter E 34 | ꡡ Phags-Pa Letter O 35 | ꡢ Phags-Pa Letter Qa 36 | ꡣ Phags-Pa Letter Xa 37 | ꡤ Phags-Pa Letter Fa 38 | ꡥ Phags-Pa Letter Gga 39 | ꡦ Phags-Pa Letter Ee 40 | ꡧ Phags-Pa Subjoined Letter Wa 41 | ꡨ Phags-Pa Subjoined Letter Ya 42 | ꡩ Phags-Pa Letter Tta 43 | ꡪ Phags-Pa Letter Ttha 44 | ꡫ Phags-Pa Letter Dda 45 | ꡬ Phags-Pa Letter Nna 46 | ꡭ Phags-Pa Letter Alternate Ya 47 | ꡮ Phags-Pa Letter Voiceless Sha 48 | ꡯ Phags-Pa Letter Voiced Ha 49 | ꡰ Phags-Pa Letter Aspirated Fa 50 | ꡱ Phags-Pa Subjoined Letter Ra 51 | ꡲ Phags-Pa Superfixed Letter Ra 52 | ꡳ Phags-Pa Letter Candrabindu 53 | ꡴ Phags-Pa Single Head Mark 54 | ꡵ Phags-Pa Double Head Mark 55 | ꡶ Phags-Pa Mark Shad 56 | ꡷ Phags-Pa Mark Double Shad 57 | -------------------------------------------------------------------------------- /src/picker/data/nko.csv: -------------------------------------------------------------------------------- 1 | ‎߀ Nko Digit Zero 2 | ‎߁ Nko Digit One 3 | ‎߂ Nko Digit Two 4 | ‎߃ Nko Digit Three 5 | ‎߄ Nko Digit Four 6 | ‎߅ Nko Digit Five 7 | ‎߆ Nko Digit Six 8 | ‎߇ Nko Digit Seven 9 | ‎߈ Nko Digit Eight 10 | ‎߉ Nko Digit Nine 11 | ‎ߊ Nko Letter A 12 | ‎ߋ Nko Letter Ee 13 | ‎ߌ Nko Letter I 14 | ‎ߍ Nko Letter E 15 | ‎ߎ Nko Letter U 16 | ‎ߏ Nko Letter Oo 17 | ‎ߐ Nko Letter O 18 | ‎ߑ Nko Letter Dagbasinna 19 | ‎ߒ Nko Letter N 20 | ‎ߓ Nko Letter Ba 21 | ‎ߔ Nko Letter Pa 22 | ‎ߕ Nko Letter Ta 23 | ‎ߖ Nko Letter Ja 24 | ‎ߗ Nko Letter Cha 25 | ‎ߘ Nko Letter Da 26 | ‎ߙ Nko Letter Ra 27 | ‎ߚ Nko Letter Rra 28 | ‎ߛ Nko Letter Sa 29 | ‎ߜ Nko Letter Gba 30 | ‎ߝ Nko Letter Fa 31 | ‎ߞ Nko Letter Ka 32 | ‎ߟ Nko Letter La 33 | ‎ߠ Nko Letter Na Woloso 34 | ‎ߡ Nko Letter Ma 35 | ‎ߢ Nko Letter Nya 36 | ‎ߣ Nko Letter Na 37 | ‎ߤ Nko Letter Ha 38 | ‎ߥ Nko Letter Wa 39 | ‎ߦ Nko Letter Ya 40 | ‎ߧ Nko Letter Nya Woloso 41 | ‎ߨ Nko Letter Jona Ja 42 | ‎ߩ Nko Letter Jona Cha 43 | ‎ߪ Nko Letter Jona Ra 44 | ߫ Nko Combining Short High Tone 45 | ߬ Nko Combining Short Low Tone 46 | ߭ Nko Combining Short Rising Tone 47 | ߮ Nko Combining Long Descending Tone 48 | ߯ Nko Combining Long High Tone 49 | ߰ Nko Combining Long Low Tone 50 | ߱ Nko Combining Long Rising Tone 51 | ߲ Nko Combining Nasalization Mark 52 | ߳ Nko Combining Double Dot Above 53 | ‎ߴ Nko High Tone Apostrophe 54 | ‎ߵ Nko Low Tone Apostrophe 55 | ߶ Nko Symbol Oo Dennen 56 | ߷ Nko Symbol Gbakurunen 57 | ߸ Nko Comma 58 | ߹ Nko Exclamation Mark 59 | ‎ߺ Nko Lajanyalan 60 | ߽ Nko Dantayalan 61 | ‎߾ Nko Dorome Sign 62 | ‎߿ Nko Taman Sign 63 | -------------------------------------------------------------------------------- /src/picker/data/cypriot_syllabary.csv: -------------------------------------------------------------------------------- 1 | ‎𐠀 Cypriot Syllable A 2 | ‎𐠁 Cypriot Syllable E 3 | ‎𐠂 Cypriot Syllable I 4 | ‎𐠃 Cypriot Syllable O 5 | ‎𐠄 Cypriot Syllable U 6 | ‎𐠅 Cypriot Syllable Ja 7 | ‎𐠈 Cypriot Syllable Jo 8 | ‎𐠊 Cypriot Syllable Ka 9 | ‎𐠋 Cypriot Syllable Ke 10 | ‎𐠌 Cypriot Syllable Ki 11 | ‎𐠍 Cypriot Syllable Ko 12 | ‎𐠎 Cypriot Syllable Ku 13 | ‎𐠏 Cypriot Syllable La 14 | ‎𐠐 Cypriot Syllable Le 15 | ‎𐠑 Cypriot Syllable Li 16 | ‎𐠒 Cypriot Syllable Lo 17 | ‎𐠓 Cypriot Syllable Lu 18 | ‎𐠔 Cypriot Syllable Ma 19 | ‎𐠕 Cypriot Syllable Me 20 | ‎𐠖 Cypriot Syllable Mi 21 | ‎𐠗 Cypriot Syllable Mo 22 | ‎𐠘 Cypriot Syllable Mu 23 | ‎𐠙 Cypriot Syllable Na 24 | ‎𐠚 Cypriot Syllable Ne 25 | ‎𐠛 Cypriot Syllable Ni 26 | ‎𐠜 Cypriot Syllable No 27 | ‎𐠝 Cypriot Syllable Nu 28 | ‎𐠞 Cypriot Syllable Pa 29 | ‎𐠟 Cypriot Syllable Pe 30 | ‎𐠠 Cypriot Syllable Pi 31 | ‎𐠡 Cypriot Syllable Po 32 | ‎𐠢 Cypriot Syllable Pu 33 | ‎𐠣 Cypriot Syllable Ra 34 | ‎𐠤 Cypriot Syllable Re 35 | ‎𐠥 Cypriot Syllable Ri 36 | ‎𐠦 Cypriot Syllable Ro 37 | ‎𐠧 Cypriot Syllable Ru 38 | ‎𐠨 Cypriot Syllable Sa 39 | ‎𐠩 Cypriot Syllable Se 40 | ‎𐠪 Cypriot Syllable Si 41 | ‎𐠫 Cypriot Syllable So 42 | ‎𐠬 Cypriot Syllable Su 43 | ‎𐠭 Cypriot Syllable Ta 44 | ‎𐠮 Cypriot Syllable Te 45 | ‎𐠯 Cypriot Syllable Ti 46 | ‎𐠰 Cypriot Syllable To 47 | ‎𐠱 Cypriot Syllable Tu 48 | ‎𐠲 Cypriot Syllable Wa 49 | ‎𐠳 Cypriot Syllable We 50 | ‎𐠴 Cypriot Syllable Wi 51 | ‎𐠵 Cypriot Syllable Wo 52 | ‎𐠷 Cypriot Syllable Xa 53 | ‎𐠸 Cypriot Syllable Xe 54 | ‎𐠼 Cypriot Syllable Za 55 | ‎𐠿 Cypriot Syllable Zo 56 | -------------------------------------------------------------------------------- /src/picker/data/phaistos_disc.csv: -------------------------------------------------------------------------------- 1 | 𐇐 Phaistos Disc Sign Pedestrian 2 | 𐇑 Phaistos Disc Sign Plumed Head 3 | 𐇒 Phaistos Disc Sign Tattooed Head 4 | 𐇓 Phaistos Disc Sign Captive 5 | 𐇔 Phaistos Disc Sign Child 6 | 𐇕 Phaistos Disc Sign Woman 7 | 𐇖 Phaistos Disc Sign Helmet 8 | 𐇗 Phaistos Disc Sign Gauntlet 9 | 𐇘 Phaistos Disc Sign Tiara 10 | 𐇙 Phaistos Disc Sign Arrow 11 | 𐇚 Phaistos Disc Sign Bow 12 | 𐇛 Phaistos Disc Sign Shield 13 | 𐇜 Phaistos Disc Sign Club 14 | 𐇝 Phaistos Disc Sign Manacles 15 | 𐇞 Phaistos Disc Sign Mattock 16 | 𐇟 Phaistos Disc Sign Saw 17 | 𐇠 Phaistos Disc Sign Lid 18 | 𐇡 Phaistos Disc Sign Boomerang 19 | 𐇢 Phaistos Disc Sign Carpentry Plane 20 | 𐇣 Phaistos Disc Sign Dolium 21 | 𐇤 Phaistos Disc Sign Comb 22 | 𐇥 Phaistos Disc Sign Sling 23 | 𐇦 Phaistos Disc Sign Column 24 | 𐇧 Phaistos Disc Sign Beehive 25 | 𐇨 Phaistos Disc Sign Ship 26 | 𐇩 Phaistos Disc Sign Horn 27 | 𐇪 Phaistos Disc Sign Hide 28 | 𐇫 Phaistos Disc Sign Bulls Leg 29 | 𐇬 Phaistos Disc Sign Cat 30 | 𐇭 Phaistos Disc Sign Ram 31 | 𐇮 Phaistos Disc Sign Eagle 32 | 𐇯 Phaistos Disc Sign Dove 33 | 𐇰 Phaistos Disc Sign Tunny 34 | 𐇱 Phaistos Disc Sign Bee 35 | 𐇲 Phaistos Disc Sign Plane Tree 36 | 𐇳 Phaistos Disc Sign Vine 37 | 𐇴 Phaistos Disc Sign Papyrus 38 | 𐇵 Phaistos Disc Sign Rosette 39 | 𐇶 Phaistos Disc Sign Lily 40 | 𐇷 Phaistos Disc Sign Ox Back 41 | 𐇸 Phaistos Disc Sign Flute 42 | 𐇹 Phaistos Disc Sign Grater 43 | 𐇺 Phaistos Disc Sign Strainer 44 | 𐇻 Phaistos Disc Sign Small Axe 45 | 𐇼 Phaistos Disc Sign Wavy Band 46 | 𐇽 Phaistos Disc Sign Combining Oblique Stroke 47 | -------------------------------------------------------------------------------- /src/picker/data/tolong_siki.csv: -------------------------------------------------------------------------------- 1 | 𑶰 Tolong Siki Letter I 2 | 𑶱 Tolong Siki Letter E 3 | 𑶲 Tolong Siki Letter U 4 | 𑶳 Tolong Siki Letter O 5 | 𑶴 Tolong Siki Letter A 6 | 𑶵 Tolong Siki Letter Aa 7 | 𑶶 Tolong Siki Letter P 8 | 𑶷 Tolong Siki Letter Ph 9 | 𑶸 Tolong Siki Letter B 10 | 𑶹 Tolong Siki Letter Bh 11 | 𑶺 Tolong Siki Letter M 12 | 𑶻 Tolong Siki Letter T 13 | 𑶼 Tolong Siki Letter Th 14 | 𑶽 Tolong Siki Letter D 15 | 𑶾 Tolong Siki Letter Dh 16 | 𑶿 Tolong Siki Letter N 17 | 𑷀 Tolong Siki Letter Tt 18 | 𑷁 Tolong Siki Letter Tth 19 | 𑷂 Tolong Siki Letter Dd 20 | 𑷃 Tolong Siki Letter Ddh 21 | 𑷄 Tolong Siki Letter Nn 22 | 𑷅 Tolong Siki Letter C 23 | 𑷆 Tolong Siki Letter Ch 24 | 𑷇 Tolong Siki Letter J 25 | 𑷈 Tolong Siki Letter Jh 26 | 𑷉 Tolong Siki Letter Ny 27 | 𑷊 Tolong Siki Letter K 28 | 𑷋 Tolong Siki Letter Kh 29 | 𑷌 Tolong Siki Letter G 30 | 𑷍 Tolong Siki Letter Gh 31 | 𑷎 Tolong Siki Letter Ng 32 | 𑷏 Tolong Siki Letter Y 33 | 𑷐 Tolong Siki Letter R 34 | 𑷑 Tolong Siki Letter L 35 | 𑷒 Tolong Siki Letter V 36 | 𑷓 Tolong Siki Letter Nny 37 | 𑷔 Tolong Siki Letter S 38 | 𑷕 Tolong Siki Letter H 39 | 𑷖 Tolong Siki Letter X 40 | 𑷗 Tolong Siki Letter Rr 41 | 𑷘 Tolong Siki Letter Rrh 42 | 𑷙 Tolong Siki Sign Sela 43 | 𑷚 Tolong Siki Sign Hecaka 44 | 𑷛 Tolong Siki Ungga 45 | 𑷠 Tolong Siki Digit Zero 46 | 𑷡 Tolong Siki Digit One 47 | 𑷢 Tolong Siki Digit Two 48 | 𑷣 Tolong Siki Digit Three 49 | 𑷤 Tolong Siki Digit Four 50 | 𑷥 Tolong Siki Digit Five 51 | 𑷦 Tolong Siki Digit Six 52 | 𑷧 Tolong Siki Digit Seven 53 | 𑷨 Tolong Siki Digit Eight 54 | 𑷩 Tolong Siki Digit Nine 55 | -------------------------------------------------------------------------------- /src/picker/data/glagolitic_supplement.csv: -------------------------------------------------------------------------------- 1 | 𞀀 Combining Glagolitic Letter Azu 2 | 𞀁 Combining Glagolitic Letter Buky 3 | 𞀂 Combining Glagolitic Letter Vede 4 | 𞀃 Combining Glagolitic Letter Glagoli 5 | 𞀄 Combining Glagolitic Letter Dobro 6 | 𞀅 Combining Glagolitic Letter Yestu 7 | 𞀆 Combining Glagolitic Letter Zhivete 8 | 𞀈 Combining Glagolitic Letter Zemlja 9 | 𞀉 Combining Glagolitic Letter Izhe 10 | 𞀊 Combining Glagolitic Letter Initial Izhe 11 | 𞀋 Combining Glagolitic Letter I 12 | 𞀌 Combining Glagolitic Letter Djervi 13 | 𞀍 Combining Glagolitic Letter Kako 14 | 𞀎 Combining Glagolitic Letter Ljudije 15 | 𞀏 Combining Glagolitic Letter Myslite 16 | 𞀐 Combining Glagolitic Letter Nashi 17 | 𞀑 Combining Glagolitic Letter Onu 18 | 𞀒 Combining Glagolitic Letter Pokoji 19 | 𞀓 Combining Glagolitic Letter Ritsi 20 | 𞀔 Combining Glagolitic Letter Slovo 21 | 𞀕 Combining Glagolitic Letter Tvrido 22 | 𞀖 Combining Glagolitic Letter Uku 23 | 𞀗 Combining Glagolitic Letter Fritu 24 | 𞀘 Combining Glagolitic Letter Heru 25 | 𞀛 Combining Glagolitic Letter Shta 26 | 𞀜 Combining Glagolitic Letter Tsi 27 | 𞀝 Combining Glagolitic Letter Chrivi 28 | 𞀞 Combining Glagolitic Letter Sha 29 | 𞀟 Combining Glagolitic Letter Yeru 30 | 𞀠 Combining Glagolitic Letter Yeri 31 | 𞀡 Combining Glagolitic Letter Yati 32 | 𞀣 Combining Glagolitic Letter Yu 33 | 𞀤 Combining Glagolitic Letter Small Yus 34 | 𞀦 Combining Glagolitic Letter Yo 35 | 𞀧 Combining Glagolitic Letter Iotated Small Yus 36 | 𞀨 Combining Glagolitic Letter Big Yus 37 | 𞀩 Combining Glagolitic Letter Iotated Big Yus 38 | 𞀪 Combining Glagolitic Letter Fita 39 | -------------------------------------------------------------------------------- /src/picker/data/vedic_extensions.csv: -------------------------------------------------------------------------------- 1 | ᳐ Vedic Tone Karshana 2 | ᳑ Vedic Tone Shara 3 | ᳒ Vedic Tone Prenkha 4 | ᳓ Vedic Sign Nihshvasa 5 | ᳔ Vedic Sign Yajurvedic Midline Svarita 6 | ᳕ Vedic Tone Yajurvedic Aggravated Independent Svarita 7 | ᳖ Vedic Tone Yajurvedic Independent Svarita 8 | ᳗ Vedic Tone Yajurvedic Kathaka Independent Svarita 9 | ᳘ Vedic Tone Candra Below 10 | ᳙ Vedic Tone Yajurvedic Kathaka Independent Svarita Schroeder 11 | ᳚ Vedic Tone Double Svarita 12 | ᳛ Vedic Tone Triple Svarita 13 | ᳜ Vedic Tone Kathaka Anudatta 14 | ᳝ Vedic Tone Dot Below 15 | ᳞ Vedic Tone Two Dots Below 16 | ᳟ Vedic Tone Three Dots Below 17 | ᳠ Vedic Tone Rigvedic Kashmiri Independent Svarita 18 | ᳡ Vedic Tone Atharvavedic Independent Svarita 19 | ᳢ Vedic Sign Visarga Svarita 20 | ᳣ Vedic Sign Visarga Udatta 21 | ᳤ Vedic Sign Reversed Visarga Udatta 22 | ᳥ Vedic Sign Visarga Anudatta 23 | ᳦ Vedic Sign Reversed Visarga Anudatta 24 | ᳧ Vedic Sign Visarga Udatta With Tail 25 | ᳨ Vedic Sign Visarga Anudatta With Tail 26 | ᳩ Vedic Sign Anusvara Antargomukha 27 | ᳪ Vedic Sign Anusvara Bahirgomukha 28 | ᳫ Vedic Sign Anusvara Vamagomukha 29 | ᳬ Vedic Sign Anusvara Vamagomukha With Tail 30 | ᳭ Vedic Sign Tiryak 31 | ᳮ Vedic Sign Hexiform Long Anusvara 32 | ᳯ Vedic Sign Long Anusvara 33 | ᳰ Vedic Sign Rthang Long Anusvara 34 | ᳱ Vedic Sign Anusvara Ubhayato Mukha 35 | ᳲ Vedic Sign Ardhavisarga 36 | ᳳ Vedic Sign Rotated Ardhavisarga 37 | ᳴ Vedic Tone Candra Above 38 | ᳵ Vedic Sign Jihvamuliya 39 | ᳶ Vedic Sign Upadhmaniya 40 | ᳷ Vedic Sign Atikrama 41 | ᳸ Vedic Tone Ring Above 42 | ᳹ Vedic Tone Double Ring Above 43 | ᳺ Vedic Sign Double Anusvara Antargomukha 44 | -------------------------------------------------------------------------------- /src/picker/action.py: -------------------------------------------------------------------------------- 1 | from typing import List, Optional 2 | 3 | from .clipboarder.clipboarder import Clipboarder 4 | from .models import Action 5 | from .typer.typer import Typer 6 | 7 | 8 | def execute_action( 9 | characters: str, 10 | actions: List[Action], 11 | active_window: str, 12 | typer_preference: Optional[str] = None, 13 | clipboarder_preference: Optional[str] = None, 14 | ) -> None: 15 | typer = Typer.best_option(typer_preference) 16 | clipboarder = Clipboarder.best_option(clipboarder_preference) 17 | 18 | for action in actions: 19 | if action == Action.TYPE: 20 | typer.type_characters(characters, active_window) 21 | elif action == Action.COPY: 22 | clipboarder.copy_characters_to_clipboard(characters) 23 | elif action == Action.CLIPBOARD: 24 | clipboarder.copy_paste_characters(characters, active_window, typer) 25 | elif action == Action.TYPE_NUMERICAL: 26 | typer.type_numerical(__as_codepoints(characters), active_window) 27 | elif action == Action.UNICODE: 28 | typer.type_characters(__as_codepoint_string(characters), active_window) 29 | elif action == Action.COPY_UNICODE: 30 | clipboarder.copy_characters_to_clipboard(__as_codepoint_string(characters)) 31 | elif action == Action.STDOUT: 32 | print(characters) 33 | 34 | 35 | def __as_codepoints(characters: str) -> list[int]: 36 | return [ord(c) for c in characters] 37 | 38 | 39 | def __as_codepoint_string(characters: str) -> str: 40 | return "-".join(f"{c:x}" for c in __as_codepoints(characters)) 41 | -------------------------------------------------------------------------------- /src/picker/data/ahom.csv: -------------------------------------------------------------------------------- 1 | 𑜀 Ahom Letter Ka 2 | 𑜁 Ahom Letter Kha 3 | 𑜂 Ahom Letter Nga 4 | 𑜃 Ahom Letter Na 5 | 𑜄 Ahom Letter Ta 6 | 𑜅 Ahom Letter Alternate Ta 7 | 𑜆 Ahom Letter Pa 8 | 𑜇 Ahom Letter Pha 9 | 𑜈 Ahom Letter Ba 10 | 𑜉 Ahom Letter Ma 11 | 𑜊 Ahom Letter Ja 12 | 𑜋 Ahom Letter Cha 13 | 𑜌 Ahom Letter Tha 14 | 𑜍 Ahom Letter Ra 15 | 𑜎 Ahom Letter La 16 | 𑜏 Ahom Letter Sa 17 | 𑜐 Ahom Letter Nya 18 | 𑜑 Ahom Letter Ha 19 | 𑜒 Ahom Letter A 20 | 𑜓 Ahom Letter Da 21 | 𑜔 Ahom Letter Dha 22 | 𑜕 Ahom Letter Ga 23 | 𑜖 Ahom Letter Alternate Ga 24 | 𑜗 Ahom Letter Gha 25 | 𑜘 Ahom Letter Bha 26 | 𑜙 Ahom Letter Jha 27 | 𑜚 Ahom Letter Alternate Ba 28 | 𑜝 Ahom Consonant Sign Medial La 29 | 𑜞 Ahom Consonant Sign Medial Ra 30 | 𑜟 Ahom Consonant Sign Medial Ligating Ra 31 | 𑜠 Ahom Vowel Sign A 32 | 𑜡 Ahom Vowel Sign Aa 33 | 𑜢 Ahom Vowel Sign I 34 | 𑜣 Ahom Vowel Sign Ii 35 | 𑜤 Ahom Vowel Sign U 36 | 𑜥 Ahom Vowel Sign Uu 37 | 𑜦 Ahom Vowel Sign E 38 | 𑜧 Ahom Vowel Sign Aw 39 | 𑜨 Ahom Vowel Sign O 40 | 𑜩 Ahom Vowel Sign Ai 41 | 𑜪 Ahom Vowel Sign Am 42 | 𑜫 Ahom Sign Killer 43 | 𑜰 Ahom Digit Zero 44 | 𑜱 Ahom Digit One 45 | 𑜲 Ahom Digit Two 46 | 𑜳 Ahom Digit Three 47 | 𑜴 Ahom Digit Four 48 | 𑜵 Ahom Digit Five 49 | 𑜶 Ahom Digit Six 50 | 𑜷 Ahom Digit Seven 51 | 𑜸 Ahom Digit Eight 52 | 𑜹 Ahom Digit Nine 53 | 𑜺 Ahom Number Ten 54 | 𑜻 Ahom Number Twenty 55 | 𑜼 Ahom Sign Small Section 56 | 𑜽 Ahom Sign Section 57 | 𑜾 Ahom Sign Rulai 58 | 𑜿 Ahom Symbol Vi 59 | 𑝀 Ahom Letter Ca 60 | 𑝁 Ahom Letter Tta 61 | 𑝂 Ahom Letter Ttha 62 | 𑝃 Ahom Letter Dda 63 | 𑝄 Ahom Letter Ddha 64 | 𑝅 Ahom Letter Nna 65 | 𑝆 Ahom Letter Lla 66 | -------------------------------------------------------------------------------- /src/picker/data/kirat_rai.csv: -------------------------------------------------------------------------------- 1 | 𖵀 Kirat Rai Sign Anusvara 2 | 𖵁 Kirat Rai Sign Tonpi 3 | 𖵂 Kirat Rai Sign Visarga 4 | 𖵃 Kirat Rai Letter A 5 | 𖵄 Kirat Rai Letter Ka 6 | 𖵅 Kirat Rai Letter Kha 7 | 𖵆 Kirat Rai Letter Ga 8 | 𖵇 Kirat Rai Letter Gha 9 | 𖵈 Kirat Rai Letter Nga 10 | 𖵉 Kirat Rai Letter Ca 11 | 𖵊 Kirat Rai Letter Cha 12 | 𖵋 Kirat Rai Letter Ja 13 | 𖵌 Kirat Rai Letter Jha 14 | 𖵍 Kirat Rai Letter Nya 15 | 𖵎 Kirat Rai Letter Tta 16 | 𖵏 Kirat Rai Letter Ttha 17 | 𖵐 Kirat Rai Letter Dda 18 | 𖵑 Kirat Rai Letter Ddha 19 | 𖵒 Kirat Rai Letter Ta 20 | 𖵓 Kirat Rai Letter Tha 21 | 𖵔 Kirat Rai Letter Da 22 | 𖵕 Kirat Rai Letter Dha 23 | 𖵖 Kirat Rai Letter Na 24 | 𖵗 Kirat Rai Letter Pa 25 | 𖵘 Kirat Rai Letter Pha 26 | 𖵙 Kirat Rai Letter Ba 27 | 𖵚 Kirat Rai Letter Bha 28 | 𖵛 Kirat Rai Letter Ma 29 | 𖵜 Kirat Rai Letter Ya 30 | 𖵝 Kirat Rai Letter Ra 31 | 𖵞 Kirat Rai Letter La 32 | 𖵟 Kirat Rai Letter Va 33 | 𖵠 Kirat Rai Letter Sa 34 | 𖵡 Kirat Rai Letter Sha 35 | 𖵢 Kirat Rai Letter Ha 36 | 𖵣 Kirat Rai Vowel Sign Aa 37 | 𖵤 Kirat Rai Vowel Sign I 38 | 𖵥 Kirat Rai Vowel Sign U 39 | 𖵦 Kirat Rai Vowel Sign Ue 40 | 𖵧 Kirat Rai Vowel Sign E 41 | 𖵨 Kirat Rai Vowel Sign Ai 42 | 𖵩 Kirat Rai Vowel Sign O 43 | 𖵪 Kirat Rai Vowel Sign Au 44 | 𖵫 Kirat Rai Sign Virama 45 | 𖵬 Kirat Rai Sign Saat 46 | 𖵭 Kirat Rai Sign Yupi 47 | 𖵮 Kirat Rai Danda 48 | 𖵯 Kirat Rai Double Danda 49 | 𖵰 Kirat Rai Digit Zero 50 | 𖵱 Kirat Rai Digit One 51 | 𖵲 Kirat Rai Digit Two 52 | 𖵳 Kirat Rai Digit Three 53 | 𖵴 Kirat Rai Digit Four 54 | 𖵵 Kirat Rai Digit Five 55 | 𖵶 Kirat Rai Digit Six 56 | 𖵷 Kirat Rai Digit Seven 57 | 𖵸 Kirat Rai Digit Eight 58 | 𖵹 Kirat Rai Digit Nine 59 | -------------------------------------------------------------------------------- /src/picker/data/tamil_supplement.csv: -------------------------------------------------------------------------------- 1 | 𑿀 Tamil Fraction One Three-Hundred-And-Twentieth 2 | 𑿁 Tamil Fraction One One-Hundred-And-Sixtieth 3 | 𑿂 Tamil Fraction One Eightieth 4 | 𑿃 Tamil Fraction One Sixty-Fourth 5 | 𑿄 Tamil Fraction One Fortieth 6 | 𑿅 Tamil Fraction One Thirty-Second 7 | 𑿆 Tamil Fraction Three Eightieths 8 | 𑿇 Tamil Fraction Three Sixty-Fourths 9 | 𑿈 Tamil Fraction One Twentieth 10 | 𑿉 Tamil Fraction One Sixteenth-1 11 | 𑿊 Tamil Fraction One Sixteenth-2 12 | 𑿋 Tamil Fraction One Tenth 13 | 𑿌 Tamil Fraction One Eighth 14 | 𑿍 Tamil Fraction Three Twentieths 15 | 𑿎 Tamil Fraction Three Sixteenths 16 | 𑿏 Tamil Fraction One Fifth 17 | 𑿐 Tamil Fraction One Quarter 18 | 𑿑 Tamil Fraction One Half-1 19 | 𑿒 Tamil Fraction One Half-2 20 | 𑿓 Tamil Fraction Three Quarters 21 | 𑿔 Tamil Fraction Downscaling Factor Kiizh 22 | 𑿕 Tamil Sign Nel 23 | 𑿖 Tamil Sign Cevitu 24 | 𑿗 Tamil Sign Aazhaakku 25 | 𑿘 Tamil Sign Uzhakku 26 | 𑿙 Tamil Sign Muuvuzhakku 27 | 𑿚 Tamil Sign Kuruni 28 | 𑿛 Tamil Sign Pathakku 29 | 𑿜 Tamil Sign Mukkuruni 30 | 𑿝 Tamil Sign Kaacu 31 | 𑿞 Tamil Sign Panam 32 | 𑿟 Tamil Sign Pon 33 | 𑿠 Tamil Sign Varaakan 34 | 𑿡 Tamil Sign Paaram 35 | 𑿢 Tamil Sign Kuzhi 36 | 𑿣 Tamil Sign Veli 37 | 𑿤 Tamil Wet Cultivation Sign 38 | 𑿥 Tamil Dry Cultivation Sign 39 | 𑿦 Tamil Land Sign 40 | 𑿧 Tamil Salt Pan Sign 41 | 𑿨 Tamil Traditional Credit Sign 42 | 𑿩 Tamil Traditional Number Sign 43 | 𑿪 Tamil Current Sign 44 | 𑿫 Tamil And Odd Sign 45 | 𑿬 Tamil Spent Sign 46 | 𑿭 Tamil Total Sign 47 | 𑿮 Tamil In Possession Sign 48 | 𑿯 Tamil Starting From Sign 49 | 𑿰 Tamil Sign Muthaliya 50 | 𑿱 Tamil Sign Vakaiyaraa 51 | 𑿿 Tamil Punctuation End Of Text 52 | -------------------------------------------------------------------------------- /src/picker/data/miscellaneous_mathematical_symbols-a.csv: -------------------------------------------------------------------------------- 1 | ⟀ Three Dimensional Angle 2 | ⟁ White Triangle Containing Small White Triangle 3 | ⟂ Perpendicular 4 | ⟃ Open Subset 5 | ⟄ Open Superset 6 | ⟅ Left S-Shaped Bag Delimiter 7 | ⟆ Right S-Shaped Bag Delimiter 8 | ⟇ Or With Dot Inside 9 | ⟈ Reverse Solidus Preceding Subset 10 | ⟉ Superset Preceding Solidus 11 | ⟊ Vertical Bar With Horizontal Stroke 12 | ⟋ Mathematical Rising Diagonal 13 | ⟌ Long Division 14 | ⟍ Mathematical Falling Diagonal 15 | ⟎ Squared Logical And 16 | ⟏ Squared Logical Or 17 | ⟐ White Diamond With Centred Dot 18 | ⟑ And With Dot 19 | ⟒ Element Of Opening Upwards 20 | ⟓ Lower Right Corner With Dot 21 | ⟔ Upper Left Corner With Dot 22 | ⟕ Left Outer Join 23 | ⟖ Right Outer Join 24 | ⟗ Full Outer Join 25 | ⟘ Large Up Tack 26 | ⟙ Large Down Tack 27 | ⟚ Left And Right Double Turnstile 28 | ⟛ Left And Right Tack 29 | ⟜ Left Multimap 30 | ⟝ Long Right Tack 31 | ⟞ Long Left Tack 32 | ⟟ Up Tack With Circle Above 33 | ⟠ Lozenge Divided By Horizontal Rule 34 | ⟡ White Concave-Sided Diamond 35 | ⟢ White Concave-Sided Diamond With Leftwards Tick 36 | ⟣ White Concave-Sided Diamond With Rightwards Tick 37 | ⟤ White Square With Leftwards Tick 38 | ⟥ White Square With Rightwards Tick 39 | ⟦ Mathematical Left White Square Bracket 40 | ⟧ Mathematical Right White Square Bracket 41 | ⟨ Mathematical Left Angle Bracket 42 | ⟩ Mathematical Right Angle Bracket 43 | ⟪ Mathematical Left Double Angle Bracket 44 | ⟫ Mathematical Right Double Angle Bracket 45 | ⟬ Mathematical Left White Tortoise Shell Bracket 46 | ⟭ Mathematical Right White Tortoise Shell Bracket 47 | ⟮ Mathematical Left Flattened Parenthesis 48 | ⟯ Mathematical Right Flattened Parenthesis 49 | -------------------------------------------------------------------------------- /src/picker/data/takri.csv: -------------------------------------------------------------------------------- 1 | 𑚀 Takri Letter A 2 | 𑚁 Takri Letter Aa 3 | 𑚂 Takri Letter I 4 | 𑚃 Takri Letter Ii 5 | 𑚄 Takri Letter U 6 | 𑚅 Takri Letter Uu 7 | 𑚆 Takri Letter E 8 | 𑚇 Takri Letter Ai 9 | 𑚈 Takri Letter O 10 | 𑚉 Takri Letter Au 11 | 𑚊 Takri Letter Ka 12 | 𑚋 Takri Letter Kha 13 | 𑚌 Takri Letter Ga 14 | 𑚍 Takri Letter Gha 15 | 𑚎 Takri Letter Nga 16 | 𑚏 Takri Letter Ca 17 | 𑚐 Takri Letter Cha 18 | 𑚑 Takri Letter Ja 19 | 𑚒 Takri Letter Jha 20 | 𑚓 Takri Letter Nya 21 | 𑚔 Takri Letter Tta 22 | 𑚕 Takri Letter Ttha 23 | 𑚖 Takri Letter Dda 24 | 𑚗 Takri Letter Ddha 25 | 𑚘 Takri Letter Nna 26 | 𑚙 Takri Letter Ta 27 | 𑚚 Takri Letter Tha 28 | 𑚛 Takri Letter Da 29 | 𑚜 Takri Letter Dha 30 | 𑚝 Takri Letter Na 31 | 𑚞 Takri Letter Pa 32 | 𑚟 Takri Letter Pha 33 | 𑚠 Takri Letter Ba 34 | 𑚡 Takri Letter Bha 35 | 𑚢 Takri Letter Ma 36 | 𑚣 Takri Letter Ya 37 | 𑚤 Takri Letter Ra 38 | 𑚥 Takri Letter La 39 | 𑚦 Takri Letter Va 40 | 𑚧 Takri Letter Sha 41 | 𑚨 Takri Letter Sa 42 | 𑚩 Takri Letter Ha 43 | 𑚪 Takri Letter Rra 44 | 𑚫 Takri Sign Anusvara 45 | 𑚬 Takri Sign Visarga 46 | 𑚭 Takri Vowel Sign Aa 47 | 𑚮 Takri Vowel Sign I 48 | 𑚯 Takri Vowel Sign Ii 49 | 𑚰 Takri Vowel Sign U 50 | 𑚱 Takri Vowel Sign Uu 51 | 𑚲 Takri Vowel Sign E 52 | 𑚳 Takri Vowel Sign Ai 53 | 𑚴 Takri Vowel Sign O 54 | 𑚵 Takri Vowel Sign Au 55 | 𑚶 Takri Sign Virama 56 | 𑚷 Takri Sign Nukta 57 | 𑚸 Takri Letter Archaic Kha 58 | 𑚹 Takri Abbreviation Sign 59 | 𑛀 Takri Digit Zero 60 | 𑛁 Takri Digit One 61 | 𑛂 Takri Digit Two 62 | 𑛃 Takri Digit Three 63 | 𑛄 Takri Digit Four 64 | 𑛅 Takri Digit Five 65 | 𑛆 Takri Digit Six 66 | 𑛇 Takri Digit Seven 67 | 𑛈 Takri Digit Eight 68 | 𑛉 Takri Digit Nine 69 | -------------------------------------------------------------------------------- /src/picker/data/khojki.csv: -------------------------------------------------------------------------------- 1 | 𑈀 Khojki Letter A 2 | 𑈁 Khojki Letter Aa 3 | 𑈂 Khojki Letter I 4 | 𑈃 Khojki Letter U 5 | 𑈄 Khojki Letter E 6 | 𑈅 Khojki Letter Ai 7 | 𑈆 Khojki Letter O 8 | 𑈇 Khojki Letter Au 9 | 𑈈 Khojki Letter Ka 10 | 𑈉 Khojki Letter Kha 11 | 𑈊 Khojki Letter Ga 12 | 𑈋 Khojki Letter Gga 13 | 𑈌 Khojki Letter Gha 14 | 𑈍 Khojki Letter Nga 15 | 𑈎 Khojki Letter Ca 16 | 𑈏 Khojki Letter Cha 17 | 𑈐 Khojki Letter Ja 18 | 𑈑 Khojki Letter Jja 19 | 𑈓 Khojki Letter Nya 20 | 𑈔 Khojki Letter Tta 21 | 𑈕 Khojki Letter Ttha 22 | 𑈖 Khojki Letter Dda 23 | 𑈗 Khojki Letter Ddha 24 | 𑈘 Khojki Letter Nna 25 | 𑈙 Khojki Letter Ta 26 | 𑈚 Khojki Letter Tha 27 | 𑈛 Khojki Letter Da 28 | 𑈜 Khojki Letter Ddda 29 | 𑈝 Khojki Letter Dha 30 | 𑈞 Khojki Letter Na 31 | 𑈟 Khojki Letter Pa 32 | 𑈠 Khojki Letter Pha 33 | 𑈡 Khojki Letter Ba 34 | 𑈢 Khojki Letter Bba 35 | 𑈣 Khojki Letter Bha 36 | 𑈤 Khojki Letter Ma 37 | 𑈥 Khojki Letter Ya 38 | 𑈦 Khojki Letter Ra 39 | 𑈧 Khojki Letter La 40 | 𑈨 Khojki Letter Va 41 | 𑈩 Khojki Letter Sa 42 | 𑈪 Khojki Letter Ha 43 | 𑈫 Khojki Letter Lla 44 | 𑈬 Khojki Vowel Sign Aa 45 | 𑈭 Khojki Vowel Sign I 46 | 𑈮 Khojki Vowel Sign Ii 47 | 𑈯 Khojki Vowel Sign U 48 | 𑈰 Khojki Vowel Sign E 49 | 𑈱 Khojki Vowel Sign Ai 50 | 𑈲 Khojki Vowel Sign O 51 | 𑈳 Khojki Vowel Sign Au 52 | 𑈴 Khojki Sign Anusvara 53 | 𑈵 Khojki Sign Virama 54 | 𑈶 Khojki Sign Nukta 55 | 𑈷 Khojki Sign Shadda 56 | 𑈸 Khojki Danda 57 | 𑈹 Khojki Double Danda 58 | 𑈺 Khojki Word Separator 59 | 𑈻 Khojki Section Mark 60 | 𑈼 Khojki Double Section Mark 61 | 𑈽 Khojki Abbreviation Sign 62 | 𑈾 Khojki Sign Sukun 63 | 𑈿 Khojki Letter Qa 64 | 𑉀 Khojki Letter Short I 65 | 𑉁 Khojki Vowel Sign Vocalic R 66 | -------------------------------------------------------------------------------- /src/picker/data/limbu.csv: -------------------------------------------------------------------------------- 1 | ᤀ Limbu Vowel-Carrier Letter 2 | ᤁ Limbu Letter Ka 3 | ᤂ Limbu Letter Kha 4 | ᤃ Limbu Letter Ga 5 | ᤄ Limbu Letter Gha 6 | ᤅ Limbu Letter Nga 7 | ᤆ Limbu Letter Ca 8 | ᤇ Limbu Letter Cha 9 | ᤈ Limbu Letter Ja 10 | ᤉ Limbu Letter Jha 11 | ᤊ Limbu Letter Yan 12 | ᤋ Limbu Letter Ta 13 | ᤌ Limbu Letter Tha 14 | ᤍ Limbu Letter Da 15 | ᤎ Limbu Letter Dha 16 | ᤏ Limbu Letter Na 17 | ᤐ Limbu Letter Pa 18 | ᤑ Limbu Letter Pha 19 | ᤒ Limbu Letter Ba 20 | ᤓ Limbu Letter Bha 21 | ᤔ Limbu Letter Ma 22 | ᤕ Limbu Letter Ya 23 | ᤖ Limbu Letter Ra 24 | ᤗ Limbu Letter La 25 | ᤘ Limbu Letter Wa 26 | ᤙ Limbu Letter Sha 27 | ᤚ Limbu Letter Ssa 28 | ᤛ Limbu Letter Sa 29 | ᤜ Limbu Letter Ha 30 | ᤝ Limbu Letter Gyan 31 | ᤞ Limbu Letter Tra 32 | ᤠ Limbu Vowel Sign A 33 | ᤡ Limbu Vowel Sign I 34 | ᤢ Limbu Vowel Sign U 35 | ᤣ Limbu Vowel Sign Ee 36 | ᤤ Limbu Vowel Sign Ai 37 | ᤥ Limbu Vowel Sign Oo 38 | ᤦ Limbu Vowel Sign Au 39 | ᤧ Limbu Vowel Sign E 40 | ᤨ Limbu Vowel Sign O 41 | ᤩ Limbu Subjoined Letter Ya 42 | ᤪ Limbu Subjoined Letter Ra 43 | ᤫ Limbu Subjoined Letter Wa 44 | ᤰ Limbu Small Letter Ka 45 | ᤱ Limbu Small Letter Nga 46 | ᤲ Limbu Small Letter Anusvara 47 | ᤳ Limbu Small Letter Ta 48 | ᤴ Limbu Small Letter Na 49 | ᤵ Limbu Small Letter Pa 50 | ᤶ Limbu Small Letter Ma 51 | ᤷ Limbu Small Letter Ra 52 | ᤸ Limbu Small Letter La 53 | ᤹ Limbu Sign Mukphreng 54 | ᤺ Limbu Sign Kemphreng 55 | ᤻ Limbu Sign Sa-I 56 | ᥀ Limbu Sign Loo 57 | ᥄ Limbu Exclamation Mark 58 | ᥅ Limbu Question Mark 59 | ᥆ Limbu Digit Zero 60 | ᥇ Limbu Digit One 61 | ᥈ Limbu Digit Two 62 | ᥉ Limbu Digit Three 63 | ᥊ Limbu Digit Four 64 | ᥋ Limbu Digit Five 65 | ᥌ Limbu Digit Six 66 | ᥍ Limbu Digit Seven 67 | ᥎ Limbu Digit Eight 68 | ᥏ Limbu Digit Nine 69 | -------------------------------------------------------------------------------- /src/picker/data/tamil.csv: -------------------------------------------------------------------------------- 1 | ஂ Tamil Sign Anusvara 2 | ஃ Tamil Sign Visarga 3 | அ Tamil Letter A 4 | ஆ Tamil Letter Aa 5 | இ Tamil Letter I 6 | ஈ Tamil Letter Ii 7 | உ Tamil Letter U 8 | ஊ Tamil Letter Uu 9 | எ Tamil Letter E 10 | ஏ Tamil Letter Ee 11 | ஐ Tamil Letter Ai 12 | ஒ Tamil Letter O 13 | ஓ Tamil Letter Oo 14 | ஔ Tamil Letter Au 15 | க Tamil Letter Ka 16 | ங Tamil Letter Nga 17 | ச Tamil Letter Ca 18 | ஜ Tamil Letter Ja 19 | ஞ Tamil Letter Nya 20 | ட Tamil Letter Tta 21 | ண Tamil Letter Nna 22 | த Tamil Letter Ta 23 | ந Tamil Letter Na 24 | ன Tamil Letter Nnna 25 | ப Tamil Letter Pa 26 | ம Tamil Letter Ma 27 | ய Tamil Letter Ya 28 | ர Tamil Letter Ra 29 | ற Tamil Letter Rra 30 | ல Tamil Letter La 31 | ள Tamil Letter Lla 32 | ழ Tamil Letter Llla 33 | வ Tamil Letter Va 34 | ஶ Tamil Letter Sha 35 | ஷ Tamil Letter Ssa 36 | ஸ Tamil Letter Sa 37 | ஹ Tamil Letter Ha 38 | ா Tamil Vowel Sign Aa 39 | ி Tamil Vowel Sign I 40 | ீ Tamil Vowel Sign Ii 41 | ு Tamil Vowel Sign U 42 | ூ Tamil Vowel Sign Uu 43 | ெ Tamil Vowel Sign E 44 | ே Tamil Vowel Sign Ee 45 | ை Tamil Vowel Sign Ai 46 | ொ Tamil Vowel Sign O 47 | ோ Tamil Vowel Sign Oo 48 | ௌ Tamil Vowel Sign Au 49 | ் Tamil Sign Virama 50 | ௐ Tamil Om 51 | ௗ Tamil Au Length Mark 52 | ௦ Tamil Digit Zero 53 | ௧ Tamil Digit One 54 | ௨ Tamil Digit Two 55 | ௩ Tamil Digit Three 56 | ௪ Tamil Digit Four 57 | ௫ Tamil Digit Five 58 | ௬ Tamil Digit Six 59 | ௭ Tamil Digit Seven 60 | ௮ Tamil Digit Eight 61 | ௯ Tamil Digit Nine 62 | ௰ Tamil Number Ten 63 | ௱ Tamil Number One Hundred 64 | ௲ Tamil Number One Thousand 65 | ௳ Tamil Day Sign 66 | ௴ Tamil Month Sign 67 | ௵ Tamil Year Sign 68 | ௶ Tamil Debit Sign 69 | ௷ Tamil Credit Sign 70 | ௸ Tamil As Above Sign 71 | ௹ Tamil Rupee Sign 72 | ௺ Tamil Number Sign 73 | -------------------------------------------------------------------------------- /src/picker/data/manichaean.csv: -------------------------------------------------------------------------------- 1 | ‎𐫀 Manichaean Letter Aleph 2 | ‎𐫁 Manichaean Letter Beth 3 | ‎𐫂 Manichaean Letter Bheth 4 | ‎𐫃 Manichaean Letter Gimel 5 | ‎𐫄 Manichaean Letter Ghimel 6 | ‎𐫅 Manichaean Letter Daleth 7 | ‎𐫆 Manichaean Letter He 8 | ‎𐫇 Manichaean Letter Waw 9 | ‎𐫈 Manichaean Sign Ud 10 | ‎𐫉 Manichaean Letter Zayin 11 | ‎𐫊 Manichaean Letter Zhayin 12 | ‎𐫋 Manichaean Letter Jayin 13 | ‎𐫌 Manichaean Letter Jhayin 14 | ‎𐫍 Manichaean Letter Heth 15 | ‎𐫎 Manichaean Letter Teth 16 | ‎𐫏 Manichaean Letter Yodh 17 | ‎𐫐 Manichaean Letter Kaph 18 | ‎𐫑 Manichaean Letter Xaph 19 | ‎𐫒 Manichaean Letter Khaph 20 | ‎𐫓 Manichaean Letter Lamedh 21 | ‎𐫔 Manichaean Letter Dhamedh 22 | ‎𐫕 Manichaean Letter Thamedh 23 | ‎𐫖 Manichaean Letter Mem 24 | ‎𐫗 Manichaean Letter Nun 25 | ‎𐫘 Manichaean Letter Samekh 26 | ‎𐫙 Manichaean Letter Ayin 27 | ‎𐫚 Manichaean Letter Aayin 28 | ‎𐫛 Manichaean Letter Pe 29 | ‎𐫜 Manichaean Letter Fe 30 | ‎𐫝 Manichaean Letter Sadhe 31 | ‎𐫞 Manichaean Letter Qoph 32 | ‎𐫟 Manichaean Letter Xoph 33 | ‎𐫠 Manichaean Letter Qhoph 34 | ‎𐫡 Manichaean Letter Resh 35 | ‎𐫢 Manichaean Letter Shin 36 | ‎𐫣 Manichaean Letter Sshin 37 | ‎𐫤 Manichaean Letter Taw 38 | 𐫥 Manichaean Abbreviation Mark Above 39 | 𐫦 Manichaean Abbreviation Mark Below 40 | ‎𐫫 Manichaean Number One 41 | ‎𐫬 Manichaean Number Five 42 | ‎𐫭 Manichaean Number Ten 43 | ‎𐫮 Manichaean Number Twenty 44 | ‎𐫯 Manichaean Number One Hundred 45 | ‎𐫰 Manichaean Punctuation Star 46 | ‎𐫱 Manichaean Punctuation Fleuron 47 | ‎𐫲 Manichaean Punctuation Double Dot Within Dot 48 | ‎𐫳 Manichaean Punctuation Dot Within Dot 49 | ‎𐫴 Manichaean Punctuation Dot 50 | ‎𐫵 Manichaean Punctuation Two Dots 51 | ‎𐫶 Manichaean Punctuation Line Filler 52 | -------------------------------------------------------------------------------- /src/picker/data/tifinagh.csv: -------------------------------------------------------------------------------- 1 | ⴰ Tifinagh Letter Ya 2 | ⴱ Tifinagh Letter Yab 3 | ⴲ Tifinagh Letter Yabh 4 | ⴳ Tifinagh Letter Yag 5 | ⴴ Tifinagh Letter Yaghh 6 | ⴵ Tifinagh Letter Berber Academy Yaj 7 | ⴶ Tifinagh Letter Yaj 8 | ⴷ Tifinagh Letter Yad 9 | ⴸ Tifinagh Letter Yadh 10 | ⴹ Tifinagh Letter Yadd 11 | ⴺ Tifinagh Letter Yaddh 12 | ⴻ Tifinagh Letter Yey 13 | ⴼ Tifinagh Letter Yaf 14 | ⴽ Tifinagh Letter Yak 15 | ⴾ Tifinagh Letter Tuareg Yak 16 | ⴿ Tifinagh Letter Yakhh 17 | ⵀ Tifinagh Letter Yah 18 | ⵁ Tifinagh Letter Berber Academy Yah 19 | ⵂ Tifinagh Letter Tuareg Yah 20 | ⵃ Tifinagh Letter Yahh 21 | ⵄ Tifinagh Letter Yaa 22 | ⵅ Tifinagh Letter Yakh 23 | ⵆ Tifinagh Letter Tuareg Yakh 24 | ⵇ Tifinagh Letter Yaq 25 | ⵈ Tifinagh Letter Tuareg Yaq 26 | ⵉ Tifinagh Letter Yi 27 | ⵊ Tifinagh Letter Yazh 28 | ⵋ Tifinagh Letter Ahaggar Yazh 29 | ⵌ Tifinagh Letter Tuareg Yazh 30 | ⵍ Tifinagh Letter Yal 31 | ⵎ Tifinagh Letter Yam 32 | ⵏ Tifinagh Letter Yan 33 | ⵐ Tifinagh Letter Tuareg Yagn 34 | ⵑ Tifinagh Letter Tuareg Yang 35 | ⵒ Tifinagh Letter Yap 36 | ⵓ Tifinagh Letter Yu 37 | ⵔ Tifinagh Letter Yar 38 | ⵕ Tifinagh Letter Yarr 39 | ⵖ Tifinagh Letter Yagh 40 | ⵗ Tifinagh Letter Tuareg Yagh 41 | ⵘ Tifinagh Letter Ayer Yagh 42 | ⵙ Tifinagh Letter Yas 43 | ⵚ Tifinagh Letter Yass 44 | ⵛ Tifinagh Letter Yash 45 | ⵜ Tifinagh Letter Yat 46 | ⵝ Tifinagh Letter Yath 47 | ⵞ Tifinagh Letter Yach 48 | ⵟ Tifinagh Letter Yatt 49 | ⵠ Tifinagh Letter Yav 50 | ⵡ Tifinagh Letter Yaw 51 | ⵢ Tifinagh Letter Yay 52 | ⵣ Tifinagh Letter Yaz 53 | ⵤ Tifinagh Letter Tawellemet Yaz 54 | ⵥ Tifinagh Letter Yazz 55 | ⵦ Tifinagh Letter Ye 56 | ⵧ Tifinagh Letter Yo 57 | ⵯ Tifinagh Modifier Letter Labialization Mark 58 | ⵰ Tifinagh Separator Mark 59 | ⵿ Tifinagh Consonant Joiner 60 | -------------------------------------------------------------------------------- /src/extractors/kaomojiextractor.py: -------------------------------------------------------------------------------- 1 | import html 2 | from dataclasses import dataclass 3 | from pathlib import Path 4 | from typing import List 5 | 6 | import aiofiles 7 | import aiohttp 8 | 9 | from .extractor import Extractor 10 | 11 | 12 | @dataclass 13 | class Kaomoji: 14 | string: str 15 | description: str 16 | 17 | 18 | class KaomojiExtractor(Extractor): 19 | __kaomojis: List[Kaomoji] 20 | 21 | def __init__(self): 22 | self.__kaomojis = [] 23 | 24 | async def extract_to(self, target: Path) -> None: 25 | await self.__fetch_icons() 26 | await self.__write_to_file(target) 27 | print("Finished Kaomoji") 28 | 29 | async def __fetch_icons(self) -> None: 30 | async with aiohttp.ClientSession() as session: 31 | async with session.get( 32 | "https://raw.githubusercontent.com/w33ble/emoticon-data/master/emoticons.json" 33 | ) as response: 34 | """ 35 | { 36 | "tags": [ 37 | "hide" 38 | ], 39 | "string": "(⊃‿⊂)", 40 | "id": "f73741a5-13f9-44a3-9dfe-4bce15c44cda" 41 | } 42 | """ 43 | for kaomoji in (await response.json(content_type=None))["emoticons"]: 44 | self.__kaomojis.append(Kaomoji(kaomoji["string"].replace(" ", " "), ", ".join(kaomoji["tags"]))) 45 | 46 | async def __write_to_file(self, target: Path) -> None: 47 | async with aiofiles.open(target / "kaomoji.csv", mode="w") as character_file: 48 | for kaomoji in self.__kaomojis: 49 | await character_file.write(f"{kaomoji.string} {html.escape(kaomoji.description.lower())}\n") 50 | -------------------------------------------------------------------------------- /src/picker/data/hanifi_rohingya.csv: -------------------------------------------------------------------------------- 1 | ‎𐴀 Hanifi Rohingya Letter A 2 | ‎𐴁 Hanifi Rohingya Letter Ba 3 | ‎𐴂 Hanifi Rohingya Letter Pa 4 | ‎𐴃 Hanifi Rohingya Letter Ta 5 | ‎𐴄 Hanifi Rohingya Letter Tta 6 | ‎𐴅 Hanifi Rohingya Letter Ja 7 | ‎𐴆 Hanifi Rohingya Letter Ca 8 | ‎𐴇 Hanifi Rohingya Letter Ha 9 | ‎𐴈 Hanifi Rohingya Letter Kha 10 | ‎𐴉 Hanifi Rohingya Letter Fa 11 | ‎𐴊 Hanifi Rohingya Letter Da 12 | ‎𐴋 Hanifi Rohingya Letter Dda 13 | ‎𐴌 Hanifi Rohingya Letter Ra 14 | ‎𐴍 Hanifi Rohingya Letter Rra 15 | ‎𐴎 Hanifi Rohingya Letter Za 16 | ‎𐴏 Hanifi Rohingya Letter Sa 17 | ‎𐴐 Hanifi Rohingya Letter Sha 18 | ‎𐴑 Hanifi Rohingya Letter Ka 19 | ‎𐴒 Hanifi Rohingya Letter Ga 20 | ‎𐴓 Hanifi Rohingya Letter La 21 | ‎𐴔 Hanifi Rohingya Letter Ma 22 | ‎𐴕 Hanifi Rohingya Letter Na 23 | ‎𐴖 Hanifi Rohingya Letter Wa 24 | ‎𐴗 Hanifi Rohingya Letter Kinna Wa 25 | ‎𐴘 Hanifi Rohingya Letter Ya 26 | ‎𐴙 Hanifi Rohingya Letter Kinna Ya 27 | ‎𐴚 Hanifi Rohingya Letter Nga 28 | ‎𐴛 Hanifi Rohingya Letter Nya 29 | ‎𐴜 Hanifi Rohingya Letter Va 30 | ‎𐴝 Hanifi Rohingya Vowel A 31 | ‎𐴞 Hanifi Rohingya Vowel I 32 | ‎𐴟 Hanifi Rohingya Vowel U 33 | ‎𐴠 Hanifi Rohingya Vowel E 34 | ‎𐴡 Hanifi Rohingya Vowel O 35 | ‎𐴢 Hanifi Rohingya Mark Sakin 36 | ‎𐴣 Hanifi Rohingya Mark Na Khonna 37 | 𐴤 Hanifi Rohingya Sign Harbahay 38 | 𐴥 Hanifi Rohingya Sign Tahala 39 | 𐴦 Hanifi Rohingya Sign Tana 40 | 𐴧 Hanifi Rohingya Sign Tassi 41 | ‎𐴰 Hanifi Rohingya Digit Zero 42 | ‎𐴱 Hanifi Rohingya Digit One 43 | ‎𐴲 Hanifi Rohingya Digit Two 44 | ‎𐴳 Hanifi Rohingya Digit Three 45 | ‎𐴴 Hanifi Rohingya Digit Four 46 | ‎𐴵 Hanifi Rohingya Digit Five 47 | ‎𐴶 Hanifi Rohingya Digit Six 48 | ‎𐴷 Hanifi Rohingya Digit Seven 49 | ‎𐴸 Hanifi Rohingya Digit Eight 50 | ‎𐴹 Hanifi Rohingya Digit Nine 51 | -------------------------------------------------------------------------------- /src/extractors/fileiconsextractor.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import List 3 | 4 | import aiofiles 5 | import aiohttp 6 | from bs4 import BeautifulSoup 7 | 8 | from .characterfactory import Character 9 | from .extractor import Extractor 10 | 11 | 12 | class FileIconsExtractor(Extractor): 13 | __icons: List[Character] 14 | 15 | def __init__(self): 16 | self.__icons = [] 17 | 18 | async def extract_to(self, target: Path) -> None: 19 | await self.__fetch_icons() 20 | await self.__write_to_file(target) 21 | print("Finished File Icons") 22 | 23 | async def __fetch_icons(self) -> None: 24 | async with aiohttp.ClientSession() as session: 25 | async with session.get( 26 | "https://raw.githubusercontent.com/file-icons/icons/refs/heads/master/charmap.md" 27 | ) as response: 28 | for line in (await response.text()).split("\n"): 29 | if line and line.strip().startswith(""): 30 | html = BeautifulSoup(line, "lxml") 31 | name = html.find_all("td")[1].string 32 | codepoint = int(html.find_all("td")[2].code.string[1:], 16) 33 | self.__icons.append( 34 | Character( 35 | codepoint, 36 | name, 37 | ) 38 | ) 39 | 40 | async def __write_to_file(self, target: Path) -> None: 41 | async with aiofiles.open(target / "fileicons.csv", mode="w") as character_file: 42 | for icon in self.__icons: 43 | await character_file.write(f"{icon.directional_char} {icon.lower_case_name}\n") 44 | -------------------------------------------------------------------------------- /src/picker/data/avestan.csv: -------------------------------------------------------------------------------- 1 | ‎𐬀 Avestan Letter A 2 | ‎𐬁 Avestan Letter Aa 3 | ‎𐬂 Avestan Letter Ao 4 | ‎𐬃 Avestan Letter Aao 5 | ‎𐬄 Avestan Letter An 6 | ‎𐬅 Avestan Letter Aan 7 | ‎𐬆 Avestan Letter Ae 8 | ‎𐬇 Avestan Letter Aee 9 | ‎𐬈 Avestan Letter E 10 | ‎𐬉 Avestan Letter Ee 11 | ‎𐬊 Avestan Letter O 12 | ‎𐬋 Avestan Letter Oo 13 | ‎𐬌 Avestan Letter I 14 | ‎𐬍 Avestan Letter Ii 15 | ‎𐬎 Avestan Letter U 16 | ‎𐬏 Avestan Letter Uu 17 | ‎𐬐 Avestan Letter Ke 18 | ‎𐬑 Avestan Letter Xe 19 | ‎𐬒 Avestan Letter Xye 20 | ‎𐬓 Avestan Letter Xve 21 | ‎𐬔 Avestan Letter Ge 22 | ‎𐬕 Avestan Letter Gge 23 | ‎𐬖 Avestan Letter Ghe 24 | ‎𐬗 Avestan Letter Ce 25 | ‎𐬘 Avestan Letter Je 26 | ‎𐬙 Avestan Letter Te 27 | ‎𐬚 Avestan Letter The 28 | ‎𐬛 Avestan Letter De 29 | ‎𐬜 Avestan Letter Dhe 30 | ‎𐬝 Avestan Letter Tte 31 | ‎𐬞 Avestan Letter Pe 32 | ‎𐬟 Avestan Letter Fe 33 | ‎𐬠 Avestan Letter Be 34 | ‎𐬡 Avestan Letter Bhe 35 | ‎𐬢 Avestan Letter Nge 36 | ‎𐬣 Avestan Letter Ngye 37 | ‎𐬤 Avestan Letter Ngve 38 | ‎𐬥 Avestan Letter Ne 39 | ‎𐬦 Avestan Letter Nye 40 | ‎𐬧 Avestan Letter Nne 41 | ‎𐬨 Avestan Letter Me 42 | ‎𐬩 Avestan Letter Hme 43 | ‎𐬪 Avestan Letter Yye 44 | ‎𐬫 Avestan Letter Ye 45 | ‎𐬬 Avestan Letter Ve 46 | ‎𐬭 Avestan Letter Re 47 | ‎𐬮 Avestan Letter Le 48 | ‎𐬯 Avestan Letter Se 49 | ‎𐬰 Avestan Letter Ze 50 | ‎𐬱 Avestan Letter She 51 | ‎𐬲 Avestan Letter Zhe 52 | ‎𐬳 Avestan Letter Shye 53 | ‎𐬴 Avestan Letter Sshe 54 | ‎𐬵 Avestan Letter He 55 | 𐬹 Avestan Abbreviation Mark 56 | 𐬺 Tiny Two Dots Over One Dot Punctuation 57 | 𐬻 Small Two Dots Over One Dot Punctuation 58 | 𐬼 Large Two Dots Over One Dot Punctuation 59 | 𐬽 Large One Dot Over Two Dots Punctuation 60 | 𐬾 Large Two Rings Over One Ring Punctuation 61 | 𐬿 Large One Ring Over Two Rings Punctuation 62 | -------------------------------------------------------------------------------- /src/extractors/gitmojiextractor.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import List 3 | 4 | import aiofiles 5 | import aiohttp 6 | 7 | from .characterfactory import Character 8 | from .extractor import Extractor 9 | 10 | 11 | class GitmojiExtractor(Extractor): 12 | __icons: List[Character] 13 | 14 | def __init__(self): 15 | self.__icons = [] 16 | 17 | async def extract_to(self, target: Path) -> None: 18 | await self.__fetch_icons() 19 | await self.__write_to_file(target) 20 | print("Finished Gitmoji") 21 | 22 | async def __fetch_icons(self) -> None: 23 | async with aiohttp.ClientSession() as session: 24 | async with session.get( 25 | "https://raw.githubusercontent.com/carloscuesta/gitmoji/master/packages/gitmojis/src/gitmojis.json" 26 | ) as response: 27 | """ 28 | { 29 | 'emoji': '🎨', 30 | 'entity': '🎨', 31 | 'code': ':art:', 32 | 'description': 'Improve structure / format of the code.', 33 | 'name': 'art', 34 | 'semver': None 35 | } 36 | """ 37 | for char in (await response.json(content_type=None))["gitmojis"]: 38 | icon = ord(char["emoji"][0]) 39 | name = char["description"] 40 | self.__icons.append(Character(icon, name)) 41 | 42 | async def __write_to_file(self, target: Path) -> None: 43 | async with aiofiles.open(target / "gitmoji.csv", mode="w") as character_file: 44 | for icon in self.__icons: 45 | await character_file.write(f"{icon.directional_char} {icon.lower_case_name}\n") 46 | -------------------------------------------------------------------------------- /src/picker/data/kaithi.csv: -------------------------------------------------------------------------------- 1 | 𑂀 Kaithi Sign Candrabindu 2 | 𑂁 Kaithi Sign Anusvara 3 | 𑂂 Kaithi Sign Visarga 4 | 𑂃 Kaithi Letter A 5 | 𑂄 Kaithi Letter Aa 6 | 𑂅 Kaithi Letter I 7 | 𑂆 Kaithi Letter Ii 8 | 𑂇 Kaithi Letter U 9 | 𑂈 Kaithi Letter Uu 10 | 𑂉 Kaithi Letter E 11 | 𑂊 Kaithi Letter Ai 12 | 𑂋 Kaithi Letter O 13 | 𑂌 Kaithi Letter Au 14 | 𑂍 Kaithi Letter Ka 15 | 𑂎 Kaithi Letter Kha 16 | 𑂏 Kaithi Letter Ga 17 | 𑂐 Kaithi Letter Gha 18 | 𑂑 Kaithi Letter Nga 19 | 𑂒 Kaithi Letter Ca 20 | 𑂓 Kaithi Letter Cha 21 | 𑂔 Kaithi Letter Ja 22 | 𑂕 Kaithi Letter Jha 23 | 𑂖 Kaithi Letter Nya 24 | 𑂗 Kaithi Letter Tta 25 | 𑂘 Kaithi Letter Ttha 26 | 𑂙 Kaithi Letter Dda 27 | 𑂚 Kaithi Letter Dddha 28 | 𑂛 Kaithi Letter Ddha 29 | 𑂜 Kaithi Letter Rha 30 | 𑂝 Kaithi Letter Nna 31 | 𑂞 Kaithi Letter Ta 32 | 𑂟 Kaithi Letter Tha 33 | 𑂠 Kaithi Letter Da 34 | 𑂡 Kaithi Letter Dha 35 | 𑂢 Kaithi Letter Na 36 | 𑂣 Kaithi Letter Pa 37 | 𑂤 Kaithi Letter Pha 38 | 𑂥 Kaithi Letter Ba 39 | 𑂦 Kaithi Letter Bha 40 | 𑂧 Kaithi Letter Ma 41 | 𑂨 Kaithi Letter Ya 42 | 𑂩 Kaithi Letter Ra 43 | 𑂪 Kaithi Letter La 44 | 𑂫 Kaithi Letter Va 45 | 𑂬 Kaithi Letter Sha 46 | 𑂭 Kaithi Letter Ssa 47 | 𑂮 Kaithi Letter Sa 48 | 𑂯 Kaithi Letter Ha 49 | 𑂰 Kaithi Vowel Sign Aa 50 | 𑂱 Kaithi Vowel Sign I 51 | 𑂲 Kaithi Vowel Sign Ii 52 | 𑂳 Kaithi Vowel Sign U 53 | 𑂴 Kaithi Vowel Sign Uu 54 | 𑂵 Kaithi Vowel Sign E 55 | 𑂶 Kaithi Vowel Sign Ai 56 | 𑂷 Kaithi Vowel Sign O 57 | 𑂸 Kaithi Vowel Sign Au 58 | 𑂹 Kaithi Sign Virama 59 | 𑂺 Kaithi Sign Nukta 60 | 𑂻 Kaithi Abbreviation Sign 61 | 𑂼 Kaithi Enumeration Sign 62 | 𑂽 Kaithi Number Sign 63 | 𑂾 Kaithi Section Mark 64 | 𑂿 Kaithi Double Section Mark 65 | 𑃀 Kaithi Danda 66 | 𑃁 Kaithi Double Danda 67 | 𑃂 Kaithi Vowel Sign Vocalic R 68 | 𑃍 Kaithi Number Sign Above 69 | -------------------------------------------------------------------------------- /src/extractors/__main__.py: -------------------------------------------------------------------------------- 1 | import asyncio 2 | import pathlib 3 | 4 | from .blockextractor import BlockExtractor 5 | from .characterfactory import CharacterFactory 6 | from .cjkextractor import CjkExtractor 7 | from .emojiextractor import EmojiExtractor 8 | from .extractor import Extractor 9 | from .fileiconsextractor import FileIconsExtractor 10 | from .fontawesome6extractor import FontAwesome6Extractor 11 | from .gitmojiextractor import GitmojiExtractor 12 | from .htmlcharacterextractor import HtmlCharacterExtractor 13 | from .kaomojiextractor import KaomojiExtractor 14 | from .mathcollectionextractor import MathExtractor 15 | from .nerdfontextractor import NerdFontExtractor 16 | from .weathericonsextractor import WeatherIconsExtractor 17 | 18 | 19 | async def extract_all(): 20 | data_directory = pathlib.Path(__file__).parent.parent / "picker" / "data" 21 | 22 | character_factory = CharacterFactory() 23 | await character_factory.fetch_characters() 24 | 25 | extractors = [ 26 | EmojiExtractor(), 27 | BlockExtractor(character_factory), 28 | CjkExtractor(), 29 | MathExtractor(character_factory), 30 | NerdFontExtractor(), 31 | GitmojiExtractor(), 32 | FontAwesome6Extractor(), 33 | KaomojiExtractor(), 34 | HtmlCharacterExtractor(), 35 | FileIconsExtractor(), 36 | WeatherIconsExtractor(), 37 | ] 38 | 39 | for subclass in Extractor.__subclasses__(): 40 | if not any(isinstance(extractor, subclass) for extractor in extractors): 41 | print(f"Did you forget to add an extractor of class {subclass.__name__}?") 42 | 43 | await asyncio.gather(*[extractor.extract_to(data_directory) for extractor in extractors]) 44 | 45 | 46 | if __name__ == "__main__": 47 | asyncio.run(extract_all()) 48 | -------------------------------------------------------------------------------- /src/picker/data/ornamental_dingbats.csv: -------------------------------------------------------------------------------- 1 | 🙐 North West Pointing Leaf 2 | 🙑 South West Pointing Leaf 3 | 🙒 North East Pointing Leaf 4 | 🙓 South East Pointing Leaf 5 | 🙔 Turned North West Pointing Leaf 6 | 🙕 Turned South West Pointing Leaf 7 | 🙖 Turned North East Pointing Leaf 8 | 🙗 Turned South East Pointing Leaf 9 | 🙘 North West Pointing Vine Leaf 10 | 🙙 South West Pointing Vine Leaf 11 | 🙚 North East Pointing Vine Leaf 12 | 🙛 South East Pointing Vine Leaf 13 | 🙜 Heavy North West Pointing Vine Leaf 14 | 🙝 Heavy South West Pointing Vine Leaf 15 | 🙞 Heavy North East Pointing Vine Leaf 16 | 🙟 Heavy South East Pointing Vine Leaf 17 | 🙠 North West Pointing Bud 18 | 🙡 South West Pointing Bud 19 | 🙢 North East Pointing Bud 20 | 🙣 South East Pointing Bud 21 | 🙤 Heavy North West Pointing Bud 22 | 🙥 Heavy South West Pointing Bud 23 | 🙦 Heavy North East Pointing Bud 24 | 🙧 Heavy South East Pointing Bud 25 | 🙨 Hollow Quilt Square Ornament 26 | 🙩 Hollow Quilt Square Ornament In Black Square 27 | 🙪 Solid Quilt Square Ornament 28 | 🙫 Solid Quilt Square Ornament In Black Square 29 | 🙬 Leftwards Rocket 30 | 🙭 Upwards Rocket 31 | 🙮 Rightwards Rocket 32 | 🙯 Downwards Rocket 33 | 🙰 Script Ligature Et Ornament 34 | 🙱 Heavy Script Ligature Et Ornament 35 | 🙲 Ligature Open Et Ornament 36 | 🙳 Heavy Ligature Open Et Ornament 37 | 🙴 Heavy Ampersand Ornament 38 | 🙵 Swash Ampersand Ornament 39 | 🙶 Sans-Serif Heavy Double Turned Comma Quotation Mark Ornament 40 | 🙷 Sans-Serif Heavy Double Comma Quotation Mark Ornament 41 | 🙸 Sans-Serif Heavy Low Double Comma Quotation Mark Ornament 42 | 🙹 Heavy Interrobang Ornament 43 | 🙺 Sans-Serif Interrobang Ornament 44 | 🙻 Heavy Sans-Serif Interrobang Ornament 45 | 🙼 Very Heavy Solidus 46 | 🙽 Very Heavy Reverse Solidus 47 | 🙾 Checker Board 48 | 🙿 Reverse Checker Board 49 | -------------------------------------------------------------------------------- /src/picker/data/meetei_mayek.csv: -------------------------------------------------------------------------------- 1 | ꯀ Meetei Mayek Letter Kok 2 | ꯁ Meetei Mayek Letter Sam 3 | ꯂ Meetei Mayek Letter Lai 4 | ꯃ Meetei Mayek Letter Mit 5 | ꯄ Meetei Mayek Letter Pa 6 | ꯅ Meetei Mayek Letter Na 7 | ꯆ Meetei Mayek Letter Chil 8 | ꯇ Meetei Mayek Letter Til 9 | ꯈ Meetei Mayek Letter Khou 10 | ꯉ Meetei Mayek Letter Ngou 11 | ꯊ Meetei Mayek Letter Thou 12 | ꯋ Meetei Mayek Letter Wai 13 | ꯌ Meetei Mayek Letter Yang 14 | ꯍ Meetei Mayek Letter Huk 15 | ꯎ Meetei Mayek Letter Un 16 | ꯏ Meetei Mayek Letter I 17 | ꯐ Meetei Mayek Letter Pham 18 | ꯑ Meetei Mayek Letter Atiya 19 | ꯒ Meetei Mayek Letter Gok 20 | ꯓ Meetei Mayek Letter Jham 21 | ꯔ Meetei Mayek Letter Rai 22 | ꯕ Meetei Mayek Letter Ba 23 | ꯖ Meetei Mayek Letter Jil 24 | ꯗ Meetei Mayek Letter Dil 25 | ꯘ Meetei Mayek Letter Ghou 26 | ꯙ Meetei Mayek Letter Dhou 27 | ꯚ Meetei Mayek Letter Bham 28 | ꯛ Meetei Mayek Letter Kok Lonsum 29 | ꯜ Meetei Mayek Letter Lai Lonsum 30 | ꯝ Meetei Mayek Letter Mit Lonsum 31 | ꯞ Meetei Mayek Letter Pa Lonsum 32 | ꯟ Meetei Mayek Letter Na Lonsum 33 | ꯠ Meetei Mayek Letter Til Lonsum 34 | ꯡ Meetei Mayek Letter Ngou Lonsum 35 | ꯢ Meetei Mayek Letter I Lonsum 36 | ꯣ Meetei Mayek Vowel Sign Onap 37 | ꯤ Meetei Mayek Vowel Sign Inap 38 | ꯥ Meetei Mayek Vowel Sign Anap 39 | ꯦ Meetei Mayek Vowel Sign Yenap 40 | ꯧ Meetei Mayek Vowel Sign Sounap 41 | ꯨ Meetei Mayek Vowel Sign Unap 42 | ꯩ Meetei Mayek Vowel Sign Cheinap 43 | ꯪ Meetei Mayek Vowel Sign Nung 44 | ꯫ Meetei Mayek Cheikhei 45 | ꯬ Meetei Mayek Lum Iyek 46 | ꯭ Meetei Mayek Apun Iyek 47 | ꯰ Meetei Mayek Digit Zero 48 | ꯱ Meetei Mayek Digit One 49 | ꯲ Meetei Mayek Digit Two 50 | ꯳ Meetei Mayek Digit Three 51 | ꯴ Meetei Mayek Digit Four 52 | ꯵ Meetei Mayek Digit Five 53 | ꯶ Meetei Mayek Digit Six 54 | ꯷ Meetei Mayek Digit Seven 55 | ꯸ Meetei Mayek Digit Eight 56 | ꯹ Meetei Mayek Digit Nine 57 | -------------------------------------------------------------------------------- /src/extractors/fontawesome6extractor.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | from typing import List 3 | 4 | import aiofiles 5 | import aiohttp 6 | 7 | from .characterfactory import Character 8 | from .extractor import Extractor 9 | 10 | 11 | class FontAwesome6Extractor(Extractor): 12 | __icons: List[Character] 13 | 14 | def __init__(self): 15 | self.__icons = [] 16 | 17 | async def extract_to(self, target: Path) -> None: 18 | await self.__fetch_icons() 19 | await self.__write_to_file(target) 20 | print("Finished FontAwesome 6") 21 | 22 | async def __fetch_icons(self) -> None: 23 | async with aiohttp.ClientSession() as session: 24 | async with session.get( 25 | "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/6.x/metadata/icons.json" 26 | ) as response: 27 | for name, data in (await response.json(content_type=None)).items(): 28 | icon = int(data["unicode"], 16) 29 | name = f"fa-{name}" 30 | char = Character(icon, name) 31 | try: 32 | for alias in data["aliases"]["names"]: 33 | char.add_description(f"fa-{alias}") 34 | except KeyError: 35 | pass 36 | self.__icons.append(char) 37 | 38 | async def __write_to_file(self, target: Path) -> None: 39 | async with aiofiles.open(target / "fontawesome6.csv", mode="w") as character_file: 40 | for icon in self.__icons: 41 | aliases = f" ({', '.join(icon.descriptions)})" 42 | line = f"{icon.directional_char} {icon.lower_case_name}{aliases if icon.descriptions else ''}\n" 43 | await character_file.write(line) 44 | -------------------------------------------------------------------------------- /src/picker/data/chakma.csv: -------------------------------------------------------------------------------- 1 | 𑄀 Chakma Sign Candrabindu 2 | 𑄁 Chakma Sign Anusvara 3 | 𑄂 Chakma Sign Visarga 4 | 𑄃 Chakma Letter Aa 5 | 𑄄 Chakma Letter I 6 | 𑄅 Chakma Letter U 7 | 𑄆 Chakma Letter E 8 | 𑄇 Chakma Letter Kaa 9 | 𑄈 Chakma Letter Khaa 10 | 𑄉 Chakma Letter Gaa 11 | 𑄊 Chakma Letter Ghaa 12 | 𑄋 Chakma Letter Ngaa 13 | 𑄌 Chakma Letter Caa 14 | 𑄍 Chakma Letter Chaa 15 | 𑄎 Chakma Letter Jaa 16 | 𑄏 Chakma Letter Jhaa 17 | 𑄐 Chakma Letter Nyaa 18 | 𑄑 Chakma Letter Ttaa 19 | 𑄒 Chakma Letter Tthaa 20 | 𑄓 Chakma Letter Ddaa 21 | 𑄔 Chakma Letter Ddhaa 22 | 𑄕 Chakma Letter Nnaa 23 | 𑄖 Chakma Letter Taa 24 | 𑄗 Chakma Letter Thaa 25 | 𑄘 Chakma Letter Daa 26 | 𑄙 Chakma Letter Dhaa 27 | 𑄚 Chakma Letter Naa 28 | 𑄛 Chakma Letter Paa 29 | 𑄜 Chakma Letter Phaa 30 | 𑄝 Chakma Letter Baa 31 | 𑄞 Chakma Letter Bhaa 32 | 𑄟 Chakma Letter Maa 33 | 𑄠 Chakma Letter Yyaa 34 | 𑄡 Chakma Letter Yaa 35 | 𑄢 Chakma Letter Raa 36 | 𑄣 Chakma Letter Laa 37 | 𑄤 Chakma Letter Waa 38 | 𑄥 Chakma Letter Saa 39 | 𑄦 Chakma Letter Haa 40 | 𑄧 Chakma Vowel Sign A 41 | 𑄨 Chakma Vowel Sign I 42 | 𑄩 Chakma Vowel Sign Ii 43 | 𑄪 Chakma Vowel Sign U 44 | 𑄫 Chakma Vowel Sign Uu 45 | 𑄬 Chakma Vowel Sign E 46 | 𑄭 Chakma Vowel Sign Ai 47 | 𑄮 Chakma Vowel Sign O 48 | 𑄯 Chakma Vowel Sign Au 49 | 𑄰 Chakma Vowel Sign Oi 50 | 𑄱 Chakma O Mark 51 | 𑄲 Chakma Au Mark 52 | 𑄳 Chakma Virama 53 | 𑄴 Chakma Maayyaa 54 | 𑄶 Chakma Digit Zero 55 | 𑄷 Chakma Digit One 56 | 𑄸 Chakma Digit Two 57 | 𑄹 Chakma Digit Three 58 | 𑄺 Chakma Digit Four 59 | 𑄻 Chakma Digit Five 60 | 𑄼 Chakma Digit Six 61 | 𑄽 Chakma Digit Seven 62 | 𑄾 Chakma Digit Eight 63 | 𑄿 Chakma Digit Nine 64 | 𑅀 Chakma Section Mark 65 | 𑅁 Chakma Danda 66 | 𑅂 Chakma Double Danda 67 | 𑅃 Chakma Question Mark 68 | 𑅄 Chakma Letter Lhaa 69 | 𑅅 Chakma Vowel Sign Aa 70 | 𑅆 Chakma Vowel Sign Ei 71 | 𑅇 Chakma Letter Vaa 72 | -------------------------------------------------------------------------------- /src/picker/data/sundanese.csv: -------------------------------------------------------------------------------- 1 | ᮀ Sundanese Sign Panyecek 2 | ᮁ Sundanese Sign Panglayar 3 | ᮂ Sundanese Sign Pangwisad 4 | ᮃ Sundanese Letter A 5 | ᮄ Sundanese Letter I 6 | ᮅ Sundanese Letter U 7 | ᮆ Sundanese Letter Ae 8 | ᮇ Sundanese Letter O 9 | ᮈ Sundanese Letter E 10 | ᮉ Sundanese Letter Eu 11 | ᮊ Sundanese Letter Ka 12 | ᮋ Sundanese Letter Qa 13 | ᮌ Sundanese Letter Ga 14 | ᮍ Sundanese Letter Nga 15 | ᮎ Sundanese Letter Ca 16 | ᮏ Sundanese Letter Ja 17 | ᮐ Sundanese Letter Za 18 | ᮑ Sundanese Letter Nya 19 | ᮒ Sundanese Letter Ta 20 | ᮓ Sundanese Letter Da 21 | ᮔ Sundanese Letter Na 22 | ᮕ Sundanese Letter Pa 23 | ᮖ Sundanese Letter Fa 24 | ᮗ Sundanese Letter Va 25 | ᮘ Sundanese Letter Ba 26 | ᮙ Sundanese Letter Ma 27 | ᮚ Sundanese Letter Ya 28 | ᮛ Sundanese Letter Ra 29 | ᮜ Sundanese Letter La 30 | ᮝ Sundanese Letter Wa 31 | ᮞ Sundanese Letter Sa 32 | ᮟ Sundanese Letter Xa 33 | ᮠ Sundanese Letter Ha 34 | ᮡ Sundanese Consonant Sign Pamingkal 35 | ᮢ Sundanese Consonant Sign Panyakra 36 | ᮣ Sundanese Consonant Sign Panyiku 37 | ᮤ Sundanese Vowel Sign Panghulu 38 | ᮥ Sundanese Vowel Sign Panyuku 39 | ᮦ Sundanese Vowel Sign Panaelaeng 40 | ᮧ Sundanese Vowel Sign Panolong 41 | ᮨ Sundanese Vowel Sign Pamepet 42 | ᮩ Sundanese Vowel Sign Paneuleung 43 | ᮪ Sundanese Sign Pamaaeh 44 | ᮫ Sundanese Sign Virama 45 | ᮬ Sundanese Consonant Sign Pasangan Ma 46 | ᮭ Sundanese Consonant Sign Pasangan Wa 47 | ᮮ Sundanese Letter Kha 48 | ᮯ Sundanese Letter Sya 49 | ᮰ Sundanese Digit Zero 50 | ᮱ Sundanese Digit One 51 | ᮲ Sundanese Digit Two 52 | ᮳ Sundanese Digit Three 53 | ᮴ Sundanese Digit Four 54 | ᮵ Sundanese Digit Five 55 | ᮶ Sundanese Digit Six 56 | ᮷ Sundanese Digit Seven 57 | ᮸ Sundanese Digit Eight 58 | ᮹ Sundanese Digit Nine 59 | ᮺ Sundanese Avagraha 60 | ᮻ Sundanese Letter Reu 61 | ᮼ Sundanese Letter Leu 62 | ᮽ Sundanese Letter Bha 63 | ᮾ Sundanese Letter Final K 64 | ᮿ Sundanese Letter Final M 65 | -------------------------------------------------------------------------------- /src/picker/data/aegean_numbers.csv: -------------------------------------------------------------------------------- 1 | 𐄀 Aegean Word Separator Line 2 | 𐄁 Aegean Word Separator Dot 3 | 𐄂 Aegean Check Mark 4 | 𐄇 Aegean Number One 5 | 𐄈 Aegean Number Two 6 | 𐄉 Aegean Number Three 7 | 𐄊 Aegean Number Four 8 | 𐄋 Aegean Number Five 9 | 𐄌 Aegean Number Six 10 | 𐄍 Aegean Number Seven 11 | 𐄎 Aegean Number Eight 12 | 𐄏 Aegean Number Nine 13 | 𐄐 Aegean Number Ten 14 | 𐄑 Aegean Number Twenty 15 | 𐄒 Aegean Number Thirty 16 | 𐄓 Aegean Number Forty 17 | 𐄔 Aegean Number Fifty 18 | 𐄕 Aegean Number Sixty 19 | 𐄖 Aegean Number Seventy 20 | 𐄗 Aegean Number Eighty 21 | 𐄘 Aegean Number Ninety 22 | 𐄙 Aegean Number One Hundred 23 | 𐄚 Aegean Number Two Hundred 24 | 𐄛 Aegean Number Three Hundred 25 | 𐄜 Aegean Number Four Hundred 26 | 𐄝 Aegean Number Five Hundred 27 | 𐄞 Aegean Number Six Hundred 28 | 𐄟 Aegean Number Seven Hundred 29 | 𐄠 Aegean Number Eight Hundred 30 | 𐄡 Aegean Number Nine Hundred 31 | 𐄢 Aegean Number One Thousand 32 | 𐄣 Aegean Number Two Thousand 33 | 𐄤 Aegean Number Three Thousand 34 | 𐄥 Aegean Number Four Thousand 35 | 𐄦 Aegean Number Five Thousand 36 | 𐄧 Aegean Number Six Thousand 37 | 𐄨 Aegean Number Seven Thousand 38 | 𐄩 Aegean Number Eight Thousand 39 | 𐄪 Aegean Number Nine Thousand 40 | 𐄫 Aegean Number Ten Thousand 41 | 𐄬 Aegean Number Twenty Thousand 42 | 𐄭 Aegean Number Thirty Thousand 43 | 𐄮 Aegean Number Forty Thousand 44 | 𐄯 Aegean Number Fifty Thousand 45 | 𐄰 Aegean Number Sixty Thousand 46 | 𐄱 Aegean Number Seventy Thousand 47 | 𐄲 Aegean Number Eighty Thousand 48 | 𐄳 Aegean Number Ninety Thousand 49 | 𐄷 Aegean Weight Base Unit 50 | 𐄸 Aegean Weight First Subunit 51 | 𐄹 Aegean Weight Second Subunit 52 | 𐄺 Aegean Weight Third Subunit 53 | 𐄻 Aegean Weight Fourth Subunit 54 | 𐄼 Aegean Dry Measure First Subunit 55 | 𐄽 Aegean Liquid Measure First Subunit 56 | 𐄾 Aegean Measure Second Subunit 57 | 𐄿 Aegean Measure Third Subunit 58 | -------------------------------------------------------------------------------- /src/picker/data/latin_extended-g.csv: -------------------------------------------------------------------------------- 1 | 𝼀 Latin Small Letter Feng Digraph With Trill 2 | 𝼁 Latin Small Letter Reversed Script G 3 | 𝼂 Latin Letter Small Capital Turned G 4 | 𝼃 Latin Small Letter Reversed K 5 | 𝼄 Latin Letter Small Capital L With Belt 6 | 𝼅 Latin Small Letter Lezh With Retroflex Hook 7 | 𝼆 Latin Small Letter Turned Y With Belt 8 | 𝼇 Latin Small Letter Reversed Eng 9 | 𝼈 Latin Small Letter Turned R With Long Leg And Retroflex Hook 10 | 𝼉 Latin Small Letter T With Hook And Retroflex Hook 11 | 𝼊 Latin Letter Retroflex Click With Retroflex Hook 12 | 𝼋 Latin Small Letter Esh With Double Bar 13 | 𝼌 Latin Small Letter Esh With Double Bar And Curl 14 | 𝼍 Latin Small Letter Turned T With Curl 15 | 𝼎 Latin Letter Inverted Glottal Stop With Curl 16 | 𝼏 Latin Letter Stretched C With Curl 17 | 𝼐 Latin Letter Small Capital Turned K 18 | 𝼑 Latin Small Letter L With Fishhook 19 | 𝼒 Latin Small Letter Dezh Digraph With Palatal Hook 20 | 𝼓 Latin Small Letter L With Belt And Palatal Hook 21 | 𝼔 Latin Small Letter Eng With Palatal Hook 22 | 𝼕 Latin Small Letter Turned R With Palatal Hook 23 | 𝼖 Latin Small Letter R With Fishhook And Palatal Hook 24 | 𝼗 Latin Small Letter Tesh Digraph With Palatal Hook 25 | 𝼘 Latin Small Letter Ezh With Palatal Hook 26 | 𝼙 Latin Small Letter Dezh Digraph With Retroflex Hook 27 | 𝼚 Latin Small Letter I With Stroke And Retroflex Hook 28 | 𝼛 Latin Small Letter O With Retroflex Hook 29 | 𝼜 Latin Small Letter Tesh Digraph With Retroflex Hook 30 | 𝼝 Latin Small Letter C With Retroflex Hook 31 | 𝼞 Latin Small Letter S With Curl 32 | 𝼥 Latin Small Letter D With Mid-Height Left Hook 33 | 𝼦 Latin Small Letter L With Mid-Height Left Hook 34 | 𝼧 Latin Small Letter N With Mid-Height Left Hook 35 | 𝼨 Latin Small Letter R With Mid-Height Left Hook 36 | 𝼩 Latin Small Letter S With Mid-Height Left Hook 37 | 𝼪 Latin Small Letter T With Mid-Height Left Hook 38 | -------------------------------------------------------------------------------- /src/extractors/blockextractor.py: -------------------------------------------------------------------------------- 1 | import typing 2 | from pathlib import Path 3 | 4 | import aiofiles 5 | import aiohttp 6 | 7 | from .blockfactory import Block, BlockFactory 8 | from .characterfactory import CharacterFactory 9 | from .extractor import Extractor 10 | 11 | 12 | class BlockExtractor(Extractor): 13 | __blocks: typing.List[Block] 14 | __block_factory: BlockFactory 15 | 16 | def __init__(self, character_factory: CharacterFactory): 17 | super().__init__() 18 | self.__blocks = [] 19 | self.__block_factory = BlockFactory(character_factory) 20 | 21 | async def extract_to(self, target: Path) -> None: 22 | await self.__fetch_blocks() 23 | await self.__write_to_files(target) 24 | print("Finished Unicode") 25 | 26 | async def __fetch_blocks(self) -> None: 27 | async with aiohttp.ClientSession() as session: 28 | async with session.get("https://www.unicode.org/Public/17.0.0/ucd/Blocks.txt") as response: 29 | lines = (await response.text()).split("\n") 30 | 31 | for line in lines: 32 | if not line or line.startswith(("#", "@")): 33 | continue 34 | key, _, value = line.partition(";") 35 | self.__blocks.append(self.__block_factory.build_block_from_range(value.strip(), key.strip())) 36 | 37 | async def __write_to_files(self, target: Path) -> None: 38 | for block in self.__blocks: 39 | if not block.characters: 40 | continue 41 | 42 | async with aiofiles.open( 43 | target / f"{block.name.lower().replace(' ', '_')}.csv", mode="w" 44 | ) as character_file: 45 | for character in block.characters: 46 | await character_file.write(f"{character.directional_char} {character.title_case_name}\n") 47 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: Upload Python Package 2 | 3 | on: 4 | push: 5 | tags: 6 | - "[0-9]+.[0-9]+.[0-9]+" 7 | 8 | permissions: 9 | contents: write 10 | id-token: write 11 | 12 | jobs: 13 | build: 14 | name: Build distribution 15 | runs-on: ubuntu-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v4 19 | - name: Set up Python and uv 20 | uses: astral-sh/setup-uv@v5 21 | with: 22 | python-version: 3.13 23 | enable-cache: true 24 | cache-dependency-glob: "uv.lock" 25 | github-token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} 26 | 27 | - name: Build a binary wheel and a source tarball 28 | run: uv build 29 | 30 | - name: Store the distribution packages 31 | uses: actions/upload-artifact@v4 32 | with: 33 | name: python-package-distributions 34 | path: dist/ 35 | 36 | publish-to-pypi: 37 | name: Publish to PyPI 38 | needs: 39 | - build 40 | runs-on: ubuntu-latest 41 | environment: 42 | name: pypi 43 | url: https://pypi.org/p/rofimoji 44 | 45 | steps: 46 | - name: Download all the dists 47 | uses: actions/download-artifact@v4 48 | with: 49 | name: python-package-distributions 50 | path: dist/ 51 | 52 | - name: Publish distribution 53 | uses: pypa/gh-action-pypi-publish@release/v1 54 | 55 | publish-on-github: 56 | name: Publish release on GitHub 57 | needs: 58 | - build 59 | runs-on: ubuntu-latest 60 | 61 | steps: 62 | - name: Download all the dists 63 | uses: actions/download-artifact@v4 64 | with: 65 | name: python-package-distributions 66 | path: dist/ 67 | 68 | - name: Release 69 | uses: softprops/action-gh-release@v2 70 | with: 71 | files: dist/*.whl 72 | -------------------------------------------------------------------------------- /src/picker/data/beria_erfe.csv: -------------------------------------------------------------------------------- 1 | 𖺠 Beria Erfe Capital Letter Arkab 2 | 𖺡 Beria Erfe Capital Letter Basigna 3 | 𖺢 Beria Erfe Capital Letter Darbai 4 | 𖺣 Beria Erfe Capital Letter Eh 5 | 𖺤 Beria Erfe Capital Letter Fitko 6 | 𖺥 Beria Erfe Capital Letter Goway 7 | 𖺦 Beria Erfe Capital Letter Hirdeabo 8 | 𖺧 Beria Erfe Capital Letter I 9 | 𖺨 Beria Erfe Capital Letter Djai 10 | 𖺩 Beria Erfe Capital Letter Kobo 11 | 𖺪 Beria Erfe Capital Letter Lakko 12 | 𖺫 Beria Erfe Capital Letter Meri 13 | 𖺬 Beria Erfe Capital Letter Nini 14 | 𖺭 Beria Erfe Capital Letter Gna 15 | 𖺮 Beria Erfe Capital Letter Ngay 16 | 𖺯 Beria Erfe Capital Letter Oi 17 | 𖺰 Beria Erfe Capital Letter Pi 18 | 𖺱 Beria Erfe Capital Letter Erigo 19 | 𖺲 Beria Erfe Capital Letter Erigo Tamura 20 | 𖺳 Beria Erfe Capital Letter Seri 21 | 𖺴 Beria Erfe Capital Letter Shep 22 | 𖺵 Beria Erfe Capital Letter Tatasoue 23 | 𖺶 Beria Erfe Capital Letter Ui 24 | 𖺷 Beria Erfe Capital Letter Wasse 25 | 𖺸 Beria Erfe Capital Letter Ay 26 | 𖺻 Beria Erfe Small Letter Arkab 27 | 𖺼 Beria Erfe Small Letter Basigna 28 | 𖺽 Beria Erfe Small Letter Darbai 29 | 𖺾 Beria Erfe Small Letter Eh 30 | 𖺿 Beria Erfe Small Letter Fitko 31 | 𖻀 Beria Erfe Small Letter Goway 32 | 𖻁 Beria Erfe Small Letter Hirdeabo 33 | 𖻂 Beria Erfe Small Letter I 34 | 𖻃 Beria Erfe Small Letter Djai 35 | 𖻄 Beria Erfe Small Letter Kobo 36 | 𖻅 Beria Erfe Small Letter Lakko 37 | 𖻆 Beria Erfe Small Letter Meri 38 | 𖻇 Beria Erfe Small Letter Nini 39 | 𖻈 Beria Erfe Small Letter Gna 40 | 𖻉 Beria Erfe Small Letter Ngay 41 | 𖻊 Beria Erfe Small Letter Oi 42 | 𖻋 Beria Erfe Small Letter Pi 43 | 𖻌 Beria Erfe Small Letter Erigo 44 | 𖻍 Beria Erfe Small Letter Erigo Tamura 45 | 𖻎 Beria Erfe Small Letter Seri 46 | 𖻏 Beria Erfe Small Letter Shep 47 | 𖻐 Beria Erfe Small Letter Tatasoue 48 | 𖻑 Beria Erfe Small Letter Ui 49 | 𖻒 Beria Erfe Small Letter Wasse 50 | 𖻓 Beria Erfe Small Letter Ay 51 | -------------------------------------------------------------------------------- /src/picker/data/egyptian_hieroglyph_format_controls.csv: -------------------------------------------------------------------------------- 1 | 𓐰 Egyptian Hieroglyph Vertical Joiner 2 | 𓐱 Egyptian Hieroglyph Horizontal Joiner 3 | 𓐲 Egyptian Hieroglyph Insert At Top Start 4 | 𓐳 Egyptian Hieroglyph Insert At Bottom Start 5 | 𓐴 Egyptian Hieroglyph Insert At Top End 6 | 𓐵 Egyptian Hieroglyph Insert At Bottom End 7 | 𓐶 Egyptian Hieroglyph Overlay Middle 8 | 𓐷 Egyptian Hieroglyph Begin Segment 9 | 𓐸 Egyptian Hieroglyph End Segment 10 | 𓐹 Egyptian Hieroglyph Insert At Middle 11 | 𓐺 Egyptian Hieroglyph Insert At Top 12 | 𓐻 Egyptian Hieroglyph Insert At Bottom 13 | 𓐼 Egyptian Hieroglyph Begin Enclosure 14 | 𓐽 Egyptian Hieroglyph End Enclosure 15 | 𓐾 Egyptian Hieroglyph Begin Walled Enclosure 16 | 𓐿 Egyptian Hieroglyph End Walled Enclosure 17 | 𓑀 Egyptian Hieroglyph Mirror Horizontally 18 | 𓑁 Egyptian Hieroglyph Full Blank 19 | 𓑂 Egyptian Hieroglyph Half Blank 20 | 𓑃 Egyptian Hieroglyph Lost Sign 21 | 𓑄 Egyptian Hieroglyph Half Lost Sign 22 | 𓑅 Egyptian Hieroglyph Tall Lost Sign 23 | 𓑆 Egyptian Hieroglyph Wide Lost Sign 24 | 𓑇 Egyptian Hieroglyph Modifier Damaged At Top Start 25 | 𓑈 Egyptian Hieroglyph Modifier Damaged At Bottom Start 26 | 𓑉 Egyptian Hieroglyph Modifier Damaged At Start 27 | 𓑊 Egyptian Hieroglyph Modifier Damaged At Top End 28 | 𓑋 Egyptian Hieroglyph Modifier Damaged At Top 29 | 𓑌 Egyptian Hieroglyph Modifier Damaged At Bottom Start And Top End 30 | 𓑍 Egyptian Hieroglyph Modifier Damaged At Start And Top 31 | 𓑎 Egyptian Hieroglyph Modifier Damaged At Bottom End 32 | 𓑏 Egyptian Hieroglyph Modifier Damaged At Top Start And Bottom End 33 | 𓑐 Egyptian Hieroglyph Modifier Damaged At Bottom 34 | 𓑑 Egyptian Hieroglyph Modifier Damaged At Start And Bottom 35 | 𓑒 Egyptian Hieroglyph Modifier Damaged At End 36 | 𓑓 Egyptian Hieroglyph Modifier Damaged At Top And End 37 | 𓑔 Egyptian Hieroglyph Modifier Damaged At Bottom And End 38 | 𓑕 Egyptian Hieroglyph Modifier Damaged 39 | -------------------------------------------------------------------------------- /src/picker/data/gurung_khema.csv: -------------------------------------------------------------------------------- 1 | 𖄀 Gurung Khema Letter A 2 | 𖄁 Gurung Khema Letter Ka 3 | 𖄂 Gurung Khema Letter Kha 4 | 𖄃 Gurung Khema Letter Ga 5 | 𖄄 Gurung Khema Letter Gha 6 | 𖄅 Gurung Khema Letter Nga 7 | 𖄆 Gurung Khema Letter Ca 8 | 𖄇 Gurung Khema Letter Cha 9 | 𖄈 Gurung Khema Letter Ja 10 | 𖄉 Gurung Khema Letter Jha 11 | 𖄊 Gurung Khema Letter Ha 12 | 𖄋 Gurung Khema Letter Tta 13 | 𖄌 Gurung Khema Letter Ttha 14 | 𖄍 Gurung Khema Letter Dda 15 | 𖄎 Gurung Khema Letter Ddha 16 | 𖄏 Gurung Khema Letter Va 17 | 𖄐 Gurung Khema Letter Ta 18 | 𖄑 Gurung Khema Letter Tha 19 | 𖄒 Gurung Khema Letter Da 20 | 𖄓 Gurung Khema Letter Dha 21 | 𖄔 Gurung Khema Letter Na 22 | 𖄕 Gurung Khema Letter Pa 23 | 𖄖 Gurung Khema Letter Pha 24 | 𖄗 Gurung Khema Letter Ba 25 | 𖄘 Gurung Khema Letter Bha 26 | 𖄙 Gurung Khema Letter Ma 27 | 𖄚 Gurung Khema Letter Ya 28 | 𖄛 Gurung Khema Letter Ra 29 | 𖄜 Gurung Khema Letter La 30 | 𖄝 Gurung Khema Letter Sa 31 | 𖄞 Gurung Khema Vowel Sign Aa 32 | 𖄟 Gurung Khema Vowel Sign I 33 | 𖄠 Gurung Khema Vowel Sign Ii 34 | 𖄡 Gurung Khema Vowel Sign U 35 | 𖄢 Gurung Khema Vowel Sign Uu 36 | 𖄣 Gurung Khema Vowel Sign E 37 | 𖄤 Gurung Khema Vowel Sign Ee 38 | 𖄥 Gurung Khema Vowel Sign Ai 39 | 𖄦 Gurung Khema Vowel Sign O 40 | 𖄧 Gurung Khema Vowel Sign Oo 41 | 𖄨 Gurung Khema Vowel Sign Au 42 | 𖄩 Gurung Khema Vowel Length Mark 43 | 𖄪 Gurung Khema Consonant Sign Medial Ya 44 | 𖄫 Gurung Khema Consonant Sign Medial Va 45 | 𖄬 Gurung Khema Consonant Sign Medial Ha 46 | 𖄭 Gurung Khema Sign Anusvara 47 | 𖄮 Gurung Khema Consonant Sign Medial Ra 48 | 𖄯 Gurung Khema Sign Tholhoma 49 | 𖄰 Gurung Khema Digit Zero 50 | 𖄱 Gurung Khema Digit One 51 | 𖄲 Gurung Khema Digit Two 52 | 𖄳 Gurung Khema Digit Three 53 | 𖄴 Gurung Khema Digit Four 54 | 𖄵 Gurung Khema Digit Five 55 | 𖄶 Gurung Khema Digit Six 56 | 𖄷 Gurung Khema Digit Seven 57 | 𖄸 Gurung Khema Digit Eight 58 | 𖄹 Gurung Khema Digit Nine 59 | -------------------------------------------------------------------------------- /src/picker/recent.py: -------------------------------------------------------------------------------- 1 | import hashlib 2 | from pathlib import Path 3 | from typing import List 4 | 5 | from .paths import recents_file_location 6 | 7 | 8 | def load_recent_characters(max_recent: int, files: List[str]) -> List[str]: 9 | try: 10 | return [char.strip("\n") for char in __filename_for(files).read_text().strip("\n").split("\n")][:max_recent] 11 | except FileNotFoundError: 12 | return [] 13 | except NotADirectoryError: 14 | recents = [char.strip("\n") for char in recents_file_location.read_text().strip("\n").split("\n")][:max_recent] 15 | recents_file_location.unlink() 16 | save_recent_characters("".join(recents), max_recent, files) 17 | return recents 18 | 19 | 20 | def save_recent_characters(new_characters: str, max_recent: int, files: List[str]) -> None: 21 | if max_recent == 0: 22 | return 23 | max_recent = min(max_recent, 10) 24 | 25 | old_file_name = __filename_for(files) 26 | new_file_name = old_file_name.with_suffix(".tmp") 27 | 28 | new_file_name.parent.mkdir(parents=True, exist_ok=True) 29 | with new_file_name.open("w+") as new_file: 30 | new_file.write(new_characters + "\n") 31 | 32 | try: 33 | with old_file_name.open("r") as old_file: 34 | index = 0 35 | for line in old_file: 36 | if new_characters != line.strip("\n"): 37 | if index == max_recent - 1: 38 | break 39 | new_file.write(line) 40 | index += 1 41 | 42 | old_file_name.unlink() 43 | except FileNotFoundError: 44 | pass 45 | 46 | new_file_name.rename(old_file_name) 47 | 48 | 49 | def __filename_for(files: List[str]) -> Path: 50 | return recents_file_location / hashlib.sha256(b"\0".join(f.encode() for f in sorted(files))).hexdigest() 51 | -------------------------------------------------------------------------------- /src/picker/data/cyrillic_supplement.csv: -------------------------------------------------------------------------------- 1 | Ԁ Cyrillic Capital Letter Komi De 2 | ԁ Cyrillic Small Letter Komi De 3 | Ԃ Cyrillic Capital Letter Komi Dje 4 | ԃ Cyrillic Small Letter Komi Dje 5 | Ԅ Cyrillic Capital Letter Komi Zje 6 | ԅ Cyrillic Small Letter Komi Zje 7 | Ԇ Cyrillic Capital Letter Komi Dzje 8 | ԇ Cyrillic Small Letter Komi Dzje 9 | Ԉ Cyrillic Capital Letter Komi Lje 10 | ԉ Cyrillic Small Letter Komi Lje 11 | Ԋ Cyrillic Capital Letter Komi Nje 12 | ԋ Cyrillic Small Letter Komi Nje 13 | Ԍ Cyrillic Capital Letter Komi Sje 14 | ԍ Cyrillic Small Letter Komi Sje 15 | Ԏ Cyrillic Capital Letter Komi Tje 16 | ԏ Cyrillic Small Letter Komi Tje 17 | Ԑ Cyrillic Capital Letter Reversed Ze 18 | ԑ Cyrillic Small Letter Reversed Ze 19 | Ԓ Cyrillic Capital Letter El With Hook 20 | ԓ Cyrillic Small Letter El With Hook 21 | Ԕ Cyrillic Capital Letter Lha 22 | ԕ Cyrillic Small Letter Lha 23 | Ԗ Cyrillic Capital Letter Rha 24 | ԗ Cyrillic Small Letter Rha 25 | Ԙ Cyrillic Capital Letter Yae 26 | ԙ Cyrillic Small Letter Yae 27 | Ԛ Cyrillic Capital Letter Qa 28 | ԛ Cyrillic Small Letter Qa 29 | Ԝ Cyrillic Capital Letter We 30 | ԝ Cyrillic Small Letter We 31 | Ԟ Cyrillic Capital Letter Aleut Ka 32 | ԟ Cyrillic Small Letter Aleut Ka 33 | Ԡ Cyrillic Capital Letter El With Middle Hook 34 | ԡ Cyrillic Small Letter El With Middle Hook 35 | Ԣ Cyrillic Capital Letter En With Middle Hook 36 | ԣ Cyrillic Small Letter En With Middle Hook 37 | Ԥ Cyrillic Capital Letter Pe With Descender 38 | ԥ Cyrillic Small Letter Pe With Descender 39 | Ԧ Cyrillic Capital Letter Shha With Descender 40 | ԧ Cyrillic Small Letter Shha With Descender 41 | Ԩ Cyrillic Capital Letter En With Left Hook 42 | ԩ Cyrillic Small Letter En With Left Hook 43 | Ԫ Cyrillic Capital Letter Dzzhe 44 | ԫ Cyrillic Small Letter Dzzhe 45 | Ԭ Cyrillic Capital Letter Dche 46 | ԭ Cyrillic Small Letter Dche 47 | Ԯ Cyrillic Capital Letter El With Descender 48 | ԯ Cyrillic Small Letter El With Descender 49 | -------------------------------------------------------------------------------- /src/picker/data/pau_cin_hau.csv: -------------------------------------------------------------------------------- 1 | 𑫀 Pau Cin Hau Letter Pa 2 | 𑫁 Pau Cin Hau Letter Ka 3 | 𑫂 Pau Cin Hau Letter La 4 | 𑫃 Pau Cin Hau Letter Ma 5 | 𑫄 Pau Cin Hau Letter Da 6 | 𑫅 Pau Cin Hau Letter Za 7 | 𑫆 Pau Cin Hau Letter Va 8 | 𑫇 Pau Cin Hau Letter Nga 9 | 𑫈 Pau Cin Hau Letter Ha 10 | 𑫉 Pau Cin Hau Letter Ga 11 | 𑫊 Pau Cin Hau Letter Kha 12 | 𑫋 Pau Cin Hau Letter Sa 13 | 𑫌 Pau Cin Hau Letter Ba 14 | 𑫍 Pau Cin Hau Letter Ca 15 | 𑫎 Pau Cin Hau Letter Ta 16 | 𑫏 Pau Cin Hau Letter Tha 17 | 𑫐 Pau Cin Hau Letter Na 18 | 𑫑 Pau Cin Hau Letter Pha 19 | 𑫒 Pau Cin Hau Letter Ra 20 | 𑫓 Pau Cin Hau Letter Fa 21 | 𑫔 Pau Cin Hau Letter Cha 22 | 𑫕 Pau Cin Hau Letter A 23 | 𑫖 Pau Cin Hau Letter E 24 | 𑫗 Pau Cin Hau Letter I 25 | 𑫘 Pau Cin Hau Letter O 26 | 𑫙 Pau Cin Hau Letter U 27 | 𑫚 Pau Cin Hau Letter Ua 28 | 𑫛 Pau Cin Hau Letter Ia 29 | 𑫜 Pau Cin Hau Letter Final P 30 | 𑫝 Pau Cin Hau Letter Final K 31 | 𑫞 Pau Cin Hau Letter Final T 32 | 𑫟 Pau Cin Hau Letter Final M 33 | 𑫠 Pau Cin Hau Letter Final N 34 | 𑫡 Pau Cin Hau Letter Final L 35 | 𑫢 Pau Cin Hau Letter Final W 36 | 𑫣 Pau Cin Hau Letter Final Ng 37 | 𑫤 Pau Cin Hau Letter Final Y 38 | 𑫥 Pau Cin Hau Rising Tone Long 39 | 𑫦 Pau Cin Hau Rising Tone 40 | 𑫧 Pau Cin Hau Sandhi Glottal Stop 41 | 𑫨 Pau Cin Hau Rising Tone Long Final 42 | 𑫩 Pau Cin Hau Rising Tone Final 43 | 𑫪 Pau Cin Hau Sandhi Glottal Stop Final 44 | 𑫫 Pau Cin Hau Sandhi Tone Long 45 | 𑫬 Pau Cin Hau Sandhi Tone 46 | 𑫭 Pau Cin Hau Sandhi Tone Long Final 47 | 𑫮 Pau Cin Hau Sandhi Tone Final 48 | 𑫯 Pau Cin Hau Mid-Level Tone 49 | 𑫰 Pau Cin Hau Glottal Stop Variant 50 | 𑫱 Pau Cin Hau Mid-Level Tone Long Final 51 | 𑫲 Pau Cin Hau Mid-Level Tone Final 52 | 𑫳 Pau Cin Hau Low-Falling Tone Long 53 | 𑫴 Pau Cin Hau Low-Falling Tone 54 | 𑫵 Pau Cin Hau Glottal Stop 55 | 𑫶 Pau Cin Hau Low-Falling Tone Long Final 56 | 𑫷 Pau Cin Hau Low-Falling Tone Final 57 | 𑫸 Pau Cin Hau Glottal Stop Final 58 | -------------------------------------------------------------------------------- /src/picker/data/number_forms.csv: -------------------------------------------------------------------------------- 1 | ⅐ Vulgar Fraction One Seventh 2 | ⅑ Vulgar Fraction One Ninth 3 | ⅒ Vulgar Fraction One Tenth 4 | ⅓ Vulgar Fraction One Third 5 | ⅔ Vulgar Fraction Two Thirds 6 | ⅕ Vulgar Fraction One Fifth 7 | ⅖ Vulgar Fraction Two Fifths 8 | ⅗ Vulgar Fraction Three Fifths 9 | ⅘ Vulgar Fraction Four Fifths 10 | ⅙ Vulgar Fraction One Sixth 11 | ⅚ Vulgar Fraction Five Sixths 12 | ⅛ Vulgar Fraction One Eighth 13 | ⅜ Vulgar Fraction Three Eighths 14 | ⅝ Vulgar Fraction Five Eighths 15 | ⅞ Vulgar Fraction Seven Eighths 16 | ⅟ Fraction Numerator One 17 | Ⅰ Roman Numeral One 18 | Ⅱ Roman Numeral Two 19 | Ⅲ Roman Numeral Three 20 | Ⅳ Roman Numeral Four 21 | Ⅴ Roman Numeral Five 22 | Ⅵ Roman Numeral Six 23 | Ⅶ Roman Numeral Seven 24 | Ⅷ Roman Numeral Eight 25 | Ⅸ Roman Numeral Nine 26 | Ⅹ Roman Numeral Ten 27 | Ⅺ Roman Numeral Eleven 28 | Ⅻ Roman Numeral Twelve 29 | Ⅼ Roman Numeral Fifty 30 | Ⅽ Roman Numeral One Hundred 31 | Ⅾ Roman Numeral Five Hundred 32 | Ⅿ Roman Numeral One Thousand 33 | ⅰ Small Roman Numeral One 34 | ⅱ Small Roman Numeral Two 35 | ⅲ Small Roman Numeral Three 36 | ⅳ Small Roman Numeral Four 37 | ⅴ Small Roman Numeral Five 38 | ⅵ Small Roman Numeral Six 39 | ⅶ Small Roman Numeral Seven 40 | ⅷ Small Roman Numeral Eight 41 | ⅸ Small Roman Numeral Nine 42 | ⅹ Small Roman Numeral Ten 43 | ⅺ Small Roman Numeral Eleven 44 | ⅻ Small Roman Numeral Twelve 45 | ⅼ Small Roman Numeral Fifty 46 | ⅽ Small Roman Numeral One Hundred 47 | ⅾ Small Roman Numeral Five Hundred 48 | ⅿ Small Roman Numeral One Thousand 49 | ↀ Roman Numeral One Thousand C D 50 | ↁ Roman Numeral Five Thousand 51 | ↂ Roman Numeral Ten Thousand 52 | Ↄ Roman Numeral Reversed One Hundred 53 | ↄ Latin Small Letter Reversed C 54 | ↅ Roman Numeral Six Late Form 55 | ↆ Roman Numeral Fifty Early Form 56 | ↇ Roman Numeral Fifty Thousand 57 | ↈ Roman Numeral One Hundred Thousand 58 | ↉ Vulgar Fraction Zero Thirds 59 | ↊ Turned Digit Two 60 | ↋ Turned Digit Three 61 | --------------------------------------------------------------------------------