{"id":13495232,"url":"https://github.com/arp242/uni","last_synced_at":"2025-05-16T06:06:49.635Z","repository":{"id":40440829,"uuid":"163366084","full_name":"arp242/uni","owner":"arp242","description":"Query the Unicode database from the commandline, with good support for emojis","archived":false,"fork":false,"pushed_at":"2024-09-10T23:59:53.000Z","size":4391,"stargazers_count":826,"open_issues_count":4,"forks_count":21,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-05-11T09:18:11.269Z","etag":null,"topics":["emoji","emoji-picker","go","golang","unicode"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arp242.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"arp242"}},"created_at":"2018-12-28T04:34:31.000Z","updated_at":"2025-05-09T01:20:20.000Z","dependencies_parsed_at":"2024-06-18T21:28:19.697Z","dependency_job_id":null,"html_url":"https://github.com/arp242/uni","commit_stats":{"total_commits":185,"total_committers":7,"mean_commits":"26.428571428571427","dds":"0.037837837837837784","last_synced_commit":"819b2104a02e5838586daefe960c1055a101498a"},"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arp242%2Funi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arp242%2Funi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arp242%2Funi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arp242%2Funi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arp242","download_url":"https://codeload.github.com/arp242/uni/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254478190,"owners_count":22077676,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emoji","emoji-picker","go","golang","unicode"],"created_at":"2024-07-31T19:01:32.756Z","updated_at":"2025-05-16T06:06:44.617Z","avatar_url":"https://github.com/arp242.png","language":"Go","readme":"`uni` queries the Unicode database from the commandline. It supports Unicode\n15.1 (September 2023) and has good support for emojis.\n\nThere are four commands: `identify` codepoints in a string, `search` for\ncodepoints, `print` codepoints by class, block, or range, and `emoji` to find\nemojis.\n\nThere are binaries on the [releases] page, and [packages] for a number of\nplatforms. You can also [run it in your browser][uni-wasm].\n\nCompile from source with:\n\n    % go install zgo.at/uni/v2@latest\n\nwhich will give you a `uni` binary in `~/go/bin`.\n\nREADME index:\n- [Integrations](#integrations)\n- [Usage](#usage)\n  - [Identify](#identify)\n  - [Search](#search)\n  - [Print](#identify)\n  - [Emoji](#emoji)\n  - [JSON](#json)\n- [ChangeLog](#changelog)\n- [Development](#development)\n- [Alternatives](#alternatives)\n\n[uni-wasm]: https://arp242.github.io/uni-wasm/\n[releases]: https://github.com/arp242/uni/releases\n[packages]: https://repology.org/project/uni/versions\n\nIntegrations\n------------\n\n- [dmenu], [rofi], and [fzf] script at [`dmenu-uni`](/dmenu-uni). See the top of\n  the script for some options you may want to frob with.\n\n- For a Vim command see [`uni.vim`](/uni.vim); just copy/paste it in your vimrc.\n\n[dmenu]: http://tools.suckless.org/dmenu\n[rofi]: https://github.com/davatorium/rofi\n[fzf]: https://github.com/junegunn/fzf\n\nUsage\n-----\n*Note: the alignment is slightly off for some entries due to the way GitHub\nrenders wide characters; in terminals it should be aligned correctly.*\n\n### Identify\n\nIdentify characters in a string, as a kind of a unicode-aware `hexdump`:\n\n    % uni identify €\n                 Dec    UTF8        HTML       Name\n    '€'  U+20AC  8364   e2 82 ac    \u0026euro;     EURO SIGN\n\n`i` is a shortcut for `identify`:\n\n    % uni i h€ý\n                 Dec    UTF8        HTML       Name\n    'h'  U+0068  104    68          \u0026#x68;     LATIN SMALL LETTER H\n    '€'  U+20AC  8364   e2 82 ac    \u0026euro;     EURO SIGN\n    'ý'  U+00FD  253    c3 bd       \u0026yacute;   LATIN SMALL LETTER Y WITH ACUTE\n\nIt reads from stdin:\n\n     % head -c5 README.md | uni i\n          CPoint  Dec    UTF8        HTML       Name\n     '`'  U+0060  96     60          \u0026grave;    GRAVE ACCENT [backtick, backquote]\n     'u'  U+0075  117    75          \u0026#x75;     LATIN SMALL LETTER U\n     'n'  U+006E  110    6e          \u0026#x6e;     LATIN SMALL LETTER N\n     'i'  U+0069  105    69          \u0026#x69;     LATIN SMALL LETTER I\n     '`'  U+0060  96     60          \u0026grave;    GRAVE ACCENT [backtick, backquote]\n\n    % echo 'U+1234 U+1111' | uni p\n         CPoint  Dec    UTF8        HTML       Name\n    'ᄑ' U+1111  4369   e1 84 91    \u0026#x1111;   HANGUL CHOSEONG PHIEUPH [P]\n    'ሴ'  U+1234  4660   e1 88 b4    \u0026#x1234;   ETHIOPIC SYLLABLE SEE\n\nYou can use `-compact` (or `-c`) to suppress the header, and `-format` (or `-f`)\nto control the output format:\n\n    % uni i -f '%unicode %name' a€🧟\n    Unicode Name\n    1.1     LATIN SMALL LETTER A\n    2.1     EURO SIGN\n    10.0    ZOMBIE\n\nIf the format string starts with `+` it will automatically be prepended with the\ncharacter, codepoint, and name:\n\n    % uni i -f +%unicode a€🧟\n                 Name                 Unicode\n    'a'  U+0061  LATIN SMALL LETTER A 1.1\n    '€'  U+20AC  EURO SIGN            2.1\n    '🧟' U+1F9DF ZOMBIE               10.0\n\nYou can add more advanced options with `%(name flags)`; for example to generate\nan aligned codepoint to X11 keysym mapping:\n\n    % uni i -c -f '0x%(hex l:auto f:0): %(keysym l:auto q:\":\",) // %name' h€ý\n    0x6800: \"h\",        // LATIN SMALL LETTER H\n    0x20ac: \"EuroSign\", // EURO SIGN\n    0xfd00: \"yacute\",   // LATIN SMALL LETTER Y WITH ACUTE\n\nSee `uni help` for more details on the `-format` flag; this flag can also be\nadded to other commands.\n\n### Search\n\nSearch description:\n\n    % uni search euro\n                 Dec    UTF8        HTML       Name\n    '₠'  U+20A0  8352   e2 82 a0    \u0026#x20a0;   EURO-CURRENCY SIGN\n    '€'  U+20AC  8364   e2 82 ac    \u0026euro;     EURO SIGN\n    '𐡷'  U+10877 67703  f0 90 a1 b7 \u0026#x10877;  PALMYRENE LEFT-POINTING FLEURON\n    '𐡸'  U+10878 67704  f0 90 a1 b8 \u0026#x10878;  PALMYRENE RIGHT-POINTING FLEURON\n    '𐫱'  U+10AF1 68337  f0 90 ab b1 \u0026#x10af1;  MANICHAEAN PUNCTUATION FLEURON\n    '🌍' U+1F30D 127757 f0 9f 8c 8d \u0026#x1f30d;  EARTH GLOBE EUROPE-AFRICA\n    '🏤' U+1F3E4 127972 f0 9f 8f a4 \u0026#x1f3e4;  EUROPEAN POST OFFICE\n    '🏰' U+1F3F0 127984 f0 9f 8f b0 \u0026#x1f3f0;  EUROPEAN CASTLE\n    '💶' U+1F4B6 128182 f0 9f 92 b6 \u0026#x1f4b6;  BANKNOTE WITH EURO SIGN\n\nThe `s` command is a shortcut for `search`. Multiple words are matched\nindividually:\n\n    % uni s globe earth\n                 Dec    UTF8        HTML       Name\n    '🌍' U+1F30D 127757 f0 9f 8c 8d \u0026#x1f30d;  EARTH GLOBE EUROPE-AFRICA\n    '🌎' U+1F30E 127758 f0 9f 8c 8e \u0026#x1f30e;  EARTH GLOBE AMERICAS\n    '🌏' U+1F30F 127759 f0 9f 8c 8f \u0026#x1f30f;  EARTH GLOBE ASIA-AUSTRALIA\n\nUse shell quoting for more literal matches:\n\n    % uni s rightwards black arrow\n                 Dec    UTF8        HTML       Name\n    '➡'  U+27A1  10145  e2 9e a1    \u0026#x27a1;   BLACK RIGHTWARDS ARROW\n    '➤'  U+27A4  10148  e2 9e a4    \u0026#x27a4;   BLACK RIGHTWARDS ARROWHEAD\n    …\n\n    % uni s 'rightwards black arrow'\n                 Dec    UTF8        HTML       Name\n    '⮕'  U+2B95  11157  e2 ae 95    \u0026#x2b95;   RIGHTWARDS BLACK ARROW\n\nAdd `-or` or `-o` to combine the search terms with \"OR\" instead of \"AND\":\n\n    % uni s -o globe milky\n                 Dec    UTF8        HTML       Name\n    '🌌' U+1F30C 127756 f0 9f 8c 8c \u0026#x1f30c;  MILKY WAY\n    '🌍' U+1F30D 127757 f0 9f 8c 8d \u0026#x1f30d;  EARTH GLOBE EUROPE-AFRICA\n    '🌎' U+1F30E 127758 f0 9f 8c 8e \u0026#x1f30e;  EARTH GLOBE AMERICAS\n    '🌏' U+1F30F 127759 f0 9f 8c 8f \u0026#x1f30f;  EARTH GLOBE ASIA-AUSTRALIA\n    '🌐' U+1F310 127760 f0 9f 8c 90 \u0026#x1f310;  GLOBE WITH MERIDIANS\n\n### Print\n\nPrint specific codepoints or groups of codepoints:\n\n    % uni print U+2042\n                 Dec    UTF8        HTML       Name\n    '⁂'  U+2042  8258   e2 81 82    \u0026#x2042;   ASTERISM\n\nPrint a custom range; `U+2042`, `U2042`, and `2042` are all identical:\n\n    % uni print 2042..2044\n                 Dec    UTF8        HTML       Name\n    '⁂'  U+2042  8258   e2 81 82    \u0026#x2042;   ASTERISM\n    '⁃'  U+2043  8259   e2 81 83    \u0026hybull;   HYPHEN BULLET\n    '⁄'  U+2044  8260   e2 81 84    \u0026frasl;    FRACTION SLASH [solidus]\n\nYou can also use hex, octal, and binary numbers: `0x2024`, `0o20102`, or\n`0b10000001000010`.\n\nGeneral category:\n\n    % uni p Po\n    Showing category Po (Other_Punctuation)\n                 Dec    UTF8        HTML       Name\n    '!'  U+0021  33     21          \u0026excl;     EXCLAMATION MARK [factorial, bang]\n    …\n\nBlocks:\n\n    % uni p arrows 'box drawing'\n    Showing block Arrows\n    Showing block Box Drawing\n                 Dec    UTF8        HTML       Name\n    '←'  U+2190  8592   e2 86 90    \u0026larr;     LEFTWARDS ARROW\n    '↑'  U+2191  8593   e2 86 91    \u0026uarr;     UPWARDS ARROW\n    …\n\nPrint as table, and with a shorter name:\n\n    % uni p -as table box\n    Showing block Box Drawing\n             0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F\n           ┌────────────────────────────────────────────────────────────────\n    U+250x │ ─   ━   │   ┃   ┄   ┅   ┆   ┇   ┈   ┉   ┊   ┋   ┌   ┍   ┎   ┏\n           │\n    U+251x │ ┐   ┑   ┒   ┓   └   ┕   ┖   ┗   ┘   ┙   ┚   ┛   ├   ┝   ┞   ┟\n           │\n    U+252x │ ┠   ┡   ┢   ┣   ┤   ┥   ┦   ┧   ┨   ┩   ┪   ┫   ┬   ┭   ┮   ┯\n           │\n    U+253x │ ┰   ┱   ┲   ┳   ┴   ┵   ┶   ┷   ┸   ┹   ┺   ┻   ┼   ┽   ┾   ┿\n           │\n    U+254x │ ╀   ╁   ╂   ╃   ╄   ╅   ╆   ╇   ╈   ╉   ╊   ╋   ╌   ╍   ╎   ╏\n           │\n    U+255x │ ═   ║   ╒   ╓   ╔   ╕   ╖   ╗   ╘   ╙   ╚   ╛   ╜   ╝   ╞   ╟\n           │\n    U+256x │ ╠   ╡   ╢   ╣   ╤   ╥   ╦   ╧   ╨   ╩   ╪   ╫   ╬   ╭   ╮   ╯\n           │\n    U+257x │ ╰   ╱   ╲   ╳   ╴   ╵   ╶   ╷   ╸   ╹   ╺   ╻   ╼   ╽   ╾   ╿\n           │\n\nOr more compact table:\n\n    % uni p -as table box -compact\n             0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F\n           ┌────────────────────────────────────────────────────────────────\n    U+250x │ ─   ━   │   ┃   ┄   ┅   ┆   ┇   ┈   ┉   ┊   ┋   ┌   ┍   ┎   ┏\n    U+251x │ ┐   ┑   ┒   ┓   └   ┕   ┖   ┗   ┘   ┙   ┚   ┛   ├   ┝   ┞   ┟\n    U+252x │ ┠   ┡   ┢   ┣   ┤   ┥   ┦   ┧   ┨   ┩   ┪   ┫   ┬   ┭   ┮   ┯\n    U+253x │ ┰   ┱   ┲   ┳   ┴   ┵   ┶   ┷   ┸   ┹   ┺   ┻   ┼   ┽   ┾   ┿\n    U+254x │ ╀   ╁   ╂   ╃   ╄   ╅   ╆   ╇   ╈   ╉   ╊   ╋   ╌   ╍   ╎   ╏\n    U+255x │ ═   ║   ╒   ╓   ╔   ╕   ╖   ╗   ╘   ╙   ╚   ╛   ╜   ╝   ╞   ╟\n    U+256x │ ╠   ╡   ╢   ╣   ╤   ╥   ╦   ╧   ╨   ╩   ╪   ╫   ╬   ╭   ╮   ╯\n    U+257x │ ╰   ╱   ╲   ╳   ╴   ╵   ╶   ╷   ╸   ╹   ╺   ╻   ╼   ╽   ╾   ╿\n\n### Emoji\nThe `emoji` command (shortcut: `e`) is is the real reason I wrote this:\n\n    % uni e cry\n    \tName                      CLDR\n    🥹\tface holding back tears  [admiration, aww, cry, embarrassed, feelings, grateful, gratitude, joy, please, proud, resist, sad]\n    😢\tcrying face              [awful, feels, miss, sad, tear, triste, unhappy]\n    😭\tloudly crying face       [bawling, sad, sob, tear, tears, unhappy]\n    😿\tcrying cat               [animal, face, sad, tear]\n    🔮\tcrystal ball             [fairy, fairytale, fantasy, fortune, future, magic, tale, tool]\n\nBy default both the name and CLDR data are searched; the CLDR data is a list of\nkeywords for an emoji; prefix with `name:` or `n:` to search on the name only:\n\n    % uni e smile\n    \tName                              CLDR\n    😀\tgrinning face                    [cheerful, cheery, happy, laugh, nice, smile, smiling, teeth]\n    😃\tgrinning face with big eyes      [awesome, happy, mouth, open, smile, smiling, teeth, yay]\n    …\n\n    % uni e name:smile\n    \tName                 CLDR\n    😼\tcat with wry smile  [animal, face, ironic]\n\nAs you can see, the CLDR is pretty useful, as \"smile\" only gives one result as\nmost emojis use \"smiling\".\n\nPrefix with `group:` to search by group:\n\n    % uni e group:hands\n    \tName                CLDR\n    👏\tclapping hands     [applause, approval, awesome, congrats, congratulations, excited, good, great, homie, job, nice, prayed, well, yay]\n    🙌\traising hands      [celebration, gesture, hooray, praise, raised]\n    🫶\theart hands        [\u003c3, love, you]\n    👐\topen hands         [hug, jazz, swerve]\n    🤲\tpalms up together  [cupped, dua, hands, pray, prayer, wish]\n    🤝\thandshake          [agreement, deal, meeting]\n    🙏\tfolded hands       [appreciate, ask, beg, blessed, bow, cmon, five, gesture, high, please, pray, thanks, thx]\n\nGroup and search can be combined, and `group:` can be abbreviated to `g:`:\n\n    % uni e g:cat-face grin\n    \tName                             CLDR\n    😺\tgrinning cat                    [animal, face, mouth, open, smile, smiling]\n    😸\tgrinning cat with smiling eyes  [animal, face, smile]\n\nLike with `search`, use `-or` to OR the parameters together instead of AND:\n\n    % uni e -or g:face-glasses g:face-hat\n    \tName                           CLDR\n    🤠\tcowboy hat face               [cowgirl]\n    🥳\tpartying face                 [bday, birthday, celebrate, celebration, excited, happy, hat, hooray, horn]\n    🥸\tdisguised face                [eyebrow, glasses, incognito, moustache, mustache, nose, person, spy, tache, tash]\n    😎\tsmiling face with sunglasses  [awesome, beach, bright, bro, chilling, cool, rad, relaxed, shades, slay, smile, style, swag, win]\n    🤓\tnerd face                     [brainy, clever, expert, geek, gifted, glasses, intelligent, smart]\n    🧐\tface with monocle             [classy, fancy, rich, stuffy, wealthy]\n\nApply skin tone modifiers with `-tone`:\n\n    % uni e -tone dark g:hands\n    \tName                                CLDR\n    👏🏿\tclapping hands: dark skin tone     [applause, approval, awesome, congrats, congratulations, excited, good, great, homie, job, nice, prayed, well, yay]\n    🙌🏿\traising hands: dark skin tone      [celebration, gesture, hooray, praise, raised]\n    🫶🏿\theart hands: dark skin tone        [\u003c3, love, you]\n    👐🏿\topen hands: dark skin tone         [hug, jazz, swerve]\n    🤲🏿\tpalms up together: dark skin tone  [cupped, dua, hands, pray, prayer, wish]\n    🤝🏿\thandshake: dark skin tone          [agreement, deal, meeting]\n    🙏🏿\tfolded hands: dark skin tone       [appreciate, ask, beg, blessed, bow, cmon, five, gesture, high, please, pray, thanks, thx]\n\nThe handshake emoji supports setting individual skin tones per hand since\nUnicode 14, but this isn't supported, mostly because I can't really really think\na good CLI interface for setting this without breaking compatibility (there are\nsome other emojis too, like \"holding hands\" and \"kissing\" where you can set both\nthe gender and skin tone of both sides individually). Maybe for uni v3 someday.\n\nThe default is to display only the gender-neutral \"person\", but this can be\nchanged with the `-gender` option:\n\n    % uni e -gender man g:person-gesture\n    \tName               CLDR\n    🙍‍♂️\tman frowning      [annoyed, disappointed, disgruntled, disturbed, frustrated, gesture, irritated, person, upset]\n    🙎‍♂️\tman pouting       [disappointed, downtrodden, frown, grimace, person, scowl, sulk, upset, whine]\n    🙅‍♂️\tman gesturing NO  [forbidden, gesture, hand, not, person, prohibit]\n    🙆‍♂️\tman gesturing OK  [exercise, gesture, hand, omg, person]\n    💁‍♂️\tman tipping hand  [fetch, flick, flip, gossip, person, sarcasm, sarcastic, sassy, seriously, whatever]\n    🙋‍♂️\tman raising hand  [gesture, here, know, me, person, pick, question, raise]\n    🧏‍♂️\tdeaf man          [accessibility, ear, gesture, hear, person]\n    🙇‍♂️\tman bowing        [apology, ask, beg, favor, forgive, gesture, meditate, meditation, person, pity, regret, sorry]\n    🤦‍♂️\tman facepalming   [again, bewilder, disbelief, exasperation, no, not, oh, omg, person, shock, smh]\n    🤷‍♂️\tman shrugging     [doubt, dunno, guess, idk, ignorance, indifference, knows, maybe, person, whatever, who]\n\nBoth `-tone` and `-gender` accept multiple values. `-gender women,man` will\ndisplay both the female and male variants, and `-tone light,dark` will display\nboth a light and dark skin tone; use `all` to display all skin tones or genders:\n\n    % uni e -tone light,dark -gender f,m shrug\n    \tName                               CLDR\n    🤷🏻‍♂️\tman shrugging: light skin tone    [doubt, dunno, guess, idk, ignorance, indifference, knows, maybe, person, whatever, who]\n    🤷🏻‍♀️\twoman shrugging: light skin tone  [doubt, dunno, guess, idk, ignorance, indifference, knows, maybe, person, whatever, who]\n    🤷🏿‍♂️\tman shrugging: dark skin tone     [doubt, dunno, guess, idk, ignorance, indifference, knows, maybe, person, whatever, who]\n    🤷🏿‍♀️\twoman shrugging: dark skin tone   [doubt, dunno, guess, idk, ignorance, indifference, knows, maybe, person, whatever, who]\n\nLike `print` and `identify`, you can use `-format`:\n\n    % uni e g:cat-face -c -format '%(name): %(emoji)'\n    grinning cat: 😺\n    grinning cat with smiling eyes: 😸\n    cat with tears of joy: 😹\n    smiling cat with heart-eyes: 😻\n    cat with wry smile: 😼\n    kissing cat: 😽\n    weary cat: 🙀\n    crying cat: 😿\n    pouting cat: 😾\n\nSee `uni help` for more details on the `-format` flag.\n\n### JSON\n\nWith `-as json` or `-as j` you can output the data as JSON:\n\n    % uni i -as json h€ý\n    [{\n    \t\"aliases\": \"\",\n    \t\"char\":    \"h\",\n    \t\"cpoint\":  \"U+0068\",\n    \t\"dec\":     \"104\",\n    \t\"html\":    \"\u0026#x68;\",\n    \t\"name\":    \"LATIN SMALL LETTER H\",\n    \t\"utf8\":    \"68\"\n    }, {\n    \t\"aliases\": \"\",\n    \t\"char\":    \"€\",\n    \t\"cpoint\":  \"U+20AC\",\n    \t\"dec\":     \"8364\",\n    \t\"html\":    \"\u0026euro;\",\n    \t\"name\":    \"EURO SIGN\",\n    \t\"utf8\":    \"e2 82 ac\"\n    }, {\n    \t\"aliases\": \"\",\n    \t\"char\":    \"ý\",\n    \t\"cpoint\":  \"U+00FD\",\n    \t\"dec\":     \"253\",\n    \t\"html\":    \"\u0026yacute;\",\n    \t\"name\":    \"LATIN SMALL LETTER Y WITH ACUTE\",\n    \t\"utf8\":    \"c3 bd\"\n    }]\n\nAll the columns listed in `-f` will be included; you can use `-f all` to include\nall columns:\n\n    % uni i -as json -f all h€ý\n    [{\n    \t\"aliases\": \"\",\n    \t\"bin\":     \"1101000\",\n    \t\"block\":   \"Basic Latin\",\n    \t\"cat\":     \"Lowercase_Letter\",\n    \t\"cells\":   \"1\",\n    \t\"char\":    \"h\",\n    \t\"cpoint\":  \"U+0068\",\n    \t\"dec\":     \"104\",\n    \t\"digraph\": \"h\",\n    \t\"hex\":     \"68\",\n    \t\"html\":    \"\u0026#x68;\",\n    \t\"json\":    \"\\\\u0068\",\n    \t\"keysym\":  \"h\",\n    \t\"name\":    \"LATIN SMALL LETTER H\",\n    \t\"oct\":     \"150\",\n    \t\"plane\":   \"Basic Multilingual Plane\",\n    \t\"props\":   \"\",\n    \t\"refs\":    \"U+04BB, U+210E\",\n    \t\"script\":  \"Latin\",\n    \t\"unicode\": \"1.1\",\n    \t\"utf16be\": \"00 68\",\n    \t\"utf16le\": \"68 00\",\n    \t\"utf8\":    \"68\",\n    \t\"width\":   \"neutral\",\n    \t\"xml\":     \"\u0026#x68;\"\n    }, {\n    \t\"aliases\": \"\",\n    \t\"bin\":     \"10000010101100\",\n    \t\"block\":   \"Currency Symbols\",\n    \t\"cat\":     \"Currency_Symbol\",\n    \t\"cells\":   \"1\",\n    \t\"char\":    \"€\",\n    \t\"cpoint\":  \"U+20AC\",\n    \t\"dec\":     \"8364\",\n    \t\"digraph\": \"=e\",\n    \t\"hex\":     \"20ac\",\n    \t\"html\":    \"\u0026euro;\",\n    \t\"json\":    \"\\\\u20ac\",\n    \t\"keysym\":  \"EuroSign\",\n    \t\"name\":    \"EURO SIGN\",\n    \t\"oct\":     \"20254\",\n    \t\"plane\":   \"Basic Multilingual Plane\",\n    \t\"props\":   \"\",\n    \t\"refs\":    \"U+20A0\",\n    \t\"script\":  \"Common\",\n    \t\"unicode\": \"2.1\",\n    \t\"utf16be\": \"20 ac\",\n    \t\"utf16le\": \"ac 20\",\n    \t\"utf8\":    \"e2 82 ac\",\n    \t\"width\":   \"ambiguous\",\n    \t\"xml\":     \"\u0026#x20ac;\"\n    }, {\n    \t\"aliases\": \"\",\n    \t\"bin\":     \"11111101\",\n    \t\"block\":   \"Latin-1 Supplement\",\n    \t\"cat\":     \"Lowercase_Letter\",\n    \t\"cells\":   \"1\",\n    \t\"char\":    \"ý\",\n    \t\"cpoint\":  \"U+00FD\",\n    \t\"dec\":     \"253\",\n    \t\"digraph\": \"y'\",\n    \t\"hex\":     \"fd\",\n    \t\"html\":    \"\u0026yacute;\",\n    \t\"json\":    \"\\\\u00fd\",\n    \t\"keysym\":  \"yacute\",\n    \t\"name\":    \"LATIN SMALL LETTER Y WITH ACUTE\",\n    \t\"oct\":     \"375\",\n    \t\"plane\":   \"Basic Multilingual Plane\",\n    \t\"props\":   \"\",\n    \t\"refs\":    \"\",\n    \t\"script\":  \"Latin\",\n    \t\"unicode\": \"1.1\",\n    \t\"utf16be\": \"00 fd\",\n    \t\"utf16le\": \"fd 00\",\n    \t\"utf8\":    \"c3 bd\",\n    \t\"width\":   \"narrow\",\n    \t\"xml\":     \"\u0026#xfd;\"\n    }]\n\nThis also works for the `emoji` command:\n\n    % uni e -as json -f all 'kissing cat'\n    [{\n    \t\"cldr\":      \"animal, closed, eye, eyes, face\",\n    \t\"cldr_full\": \"animal, cat, closed, eye, eyes, face, kiss, kissing\",\n    \t\"cpoint\":    \"U+1F63D\",\n    \t\"emoji\":     \"😽\",\n    \t\"group\":     \"Smileys \u0026 Emotion\",\n    \t\"name\":      \"kissing cat\",\n    \t\"subgroup\":  \"cat-face\"\n    }]\n\nAll values are always a string, even numerical values. This makes things a bit\neasier/consistent as JSON doesn't support hex literals and such. Use `jq` or\nsome other tool if you want to process the data further.\n\nChangeLog\n---------\nMoved to [CHANGELOG.md](/CHANGELOG.md).\n\nDevelopment\n-----------\nRe-generate the Unicode data with `go generate unidata`. Files are cached in\n`unidata/.cache`, so clear that if you want to update the files from remote.\nThis requires zsh and GNU awk (gawk).\n\nAlternatives\n------------\nNote this is from ~2017/2018 when I first wrote this; I don't re-evaluate every\nprogram every year, and I don't go finding newly created tools every year\neither.\n\n### CLI/TUI\n\n- https://github.com/philpennock/character\n\n  More or less similar to uni, but very different CLI, and has some additional\n  features. Seems pretty good.\n\n- https://github.com/sindresorhus/emoj\n\n  Doesn't support emojis sequences (e.g. MAN SHRUGGING is PERSON SHRUGGING +\n  MAN, FIREFIGHTER is PERSON + FIRE TRUCK, etc); quite slow for a CLI program\n  (`emoj smiling` takes 1.8s on my system, sometimes a lot longer), search\n  results are pretty bad (`shrug` returns unamused face, thinking face, eyes,\n  confused face, neutral face, tears of joy, and expressionless face ... but not\n  the shrugging emoji), not a fan of npm (has 1862 dependencies).\n\n- https://github.com/Fingel/tuimoji\n\n  Grouping could be better, doesn't support emojis sequences, only interactive\n  TUI, feels kinda slow-ish especially when searching.\n\n- https://github.com/pemistahl/chr\n\n  Only deals with codepoints, not emojis.\n\n### GUI\n\n- gnome-characters\n\n  Uses Gnome interface/window decorations and won't work well with other WMs,\n  doesn't deal with emoji sequences, I don't like the grouping/ordering it uses,\n  requires two clicks to copy a character.\n\n- gucharmap\n\n  Doesn't display emojis, just unicode blocks.\n\n- KCharSelect\n\n  Many KDE-specific dependencies (106M). Didn't try it.\n\n- https://github.com/Mange/rofi-emoji and https://github.com/fdw/rofimoji\n\n  Both are pretty similar to the dmenu/rofi integration of uni with some minor\n  differences, and both seem to work well with no major issues.\n\n- gtk3 emoji picker (Ctrl+; or Ctrl+. in gtk 3.93 or newer)\n\n  Only works in GTK, doesn't work with `GTK_IM_MODULE=xim` (needed for compose\n  key), for some reasons the emojis look ugly, doesn't display emojis sequences,\n  doesn't have a tooltip or other text description about what the emoji actually\n  is, the variation selector doesn't seem to work (never displays skin tone?),\n  doesn't work in Firefox.\n\n  This is so broken on my system that it seems that I'm missing something for\n  this to work or something?\n\n- https://github.com/rugk/awesome-emoji-picker\n\n  Only works in Firefox; takes a tad too long to open; doesn't support skin\n  tones.\n\n### Didn't investigate (yet)\n\nSome alternatives people have suggested that I haven't looked at; make an issue\nor email me if you know of any others.\n\n- https://github.com/cassidyjames/ideogram\n- https://github.com/OzymandiasTheGreat/emoji-keyboard\n- https://github.com/salty-horse/ibus-uniemoji\n- https://fcitx-im.org/wiki/Unicode\n- http://kassiopeia.juls.savba.sk/~garabik/software/unicode/ and https://github.com/garabik/unicode (same?)\n- https://billposer.org/Software/unidesc.html\n- https://github.com/NoraCodes/charpicker (rofi)\n","funding_links":["https://github.com/sponsors/arp242"],"categories":["Go","Other","Unicode"],"sub_categories":["Open USP Tsukubai"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farp242%2Funi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farp242%2Funi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farp242%2Funi/lists"}