in

arp242 / uni, Hacker News

arp242 / uni, Hacker News


                    

        

uniqueries the Unicode database from the commandline.

There are four commands: identifycodepoints in a string,codecovsearch

for codepoints,printcodepoints by class, block, or range, and emojito find emojis.

It includes full support for Unicode 1 May

************************************************************************************ with full Emoji support (a Surprisingly large amount of emoji pickers don't deal with emoji sequences very well).

There are binaries on thereleasespage, or compile from source withgo get arp 253 .net / uni (****************, which will put the binary at ~ / go / bin / uni (*****************. ************

******************************************(Integrations) ************************

dmenu and (rofiscript at) ****************************** dmenu-uni

See the top of the script for some options you may want to frob with.

  • For a Vim command see (**************** uni.vim

    ; just copy / paste it in your vimrc.

  • ********************

    Identify a character:

    $ uni identify €      cpoint dec utf-8 html name ‘€’ U (AC) ********************************************************************************************** (e2) ************************************************************************************************************************************ ac & euro; EURO SIGN (Currency_Symbol)

    Or a string;codecoviis a shortcut forBuild Statusidentify:

    $ uni ih € ý      cpoint dec utf-8 html name 'h' U
    ********************************************************************************************************************** & # x 68; LATIN SMALL LETTER H (Lowercase_Letter) '€' U (AC) ********************************************************************************************** (e2) ************************************************************************************************************************************ ac & euro; EURO SIGN (Currency_Symbol) 'ý' U FD **************************************************************************************************** c3 bd & yacute; LATIN SMALL LETTER Y WITH ACUTE (Lowercase_Letter)

    It reads from stdin:

    $ head -c2 README.markdown | uni i      cpoint dec utf-8 html name '[' U 005B 91 5b [ LEFT SQUARE BRACKET (Open_Punctuation)'!' U 0021 33 21 ! EXCLAMATION MARK (Other_Punctuation)

    Search description:

    $ uni search euro     cpoint  dec    utf-8       html       name'₠'  U 20A0  8352   e2 82 a0    ₠   EURO-CURRENCY SIGN (Currency_Symbol)'€'  U 20AC  8364   e2 82 ac    €     EURO SIGN (Currency_Symbol)'𐡷'  U 10877 67703  f0 90 a1 b7 𐡷  PALMYRENE LEFT-POINTING FLEURON (Other_Symbol)'𐡸'  U 10878 67704  f0 90 a1 b8 𐡸  PALMYRENE RIGHT-POINTING FLEURON (Other_Symbol)'𐫱'  U 10AF1 68337  f0 90 ab b1 𐫱  MANICHAEAN PUNCTUATION FLEURON (Other_Punctuation)'🌍' U 1F30D 127757 f0 9f 8c 8d 🌍  EARTH GLOBE EUROPE-AFRICA (Other_Symbol)'🏤' U 1F3E4 127972 f0 9f 8f a4 🏤  EUROPEAN POST OFFICE (Other_Symbol)'🏰' U 1F3F0 127984 f0 9f 8f b0 🏰  EUROPEAN CASTLE (Other_Symbol)'💶' U 1F4B6 128182 f0 9f 92 b6 💶  BANKNOTE WITH EURO SIGN (Other_Symbol)

    Thescommand is a shortcut forsearch. Multiple words are matchedindividually:

    $ uni s globe earth     cpoint  dec    utf-8       html       name'🌍' U 1F30D 127757 f0 9f 8c 8d 🌍  EARTH GLOBE EUROPE-AFRICA (Other_Symbol)'🌎' U 1F30E 127758 f0 9f 8c 8e 🌎  EARTH GLOBE AMERICAS (Other_Symbol)'🌏' U 1F30F 127759 f0 9f 8c 8f 🌏  EARTH GLOBE ASIA-AUSTRALIA (Other_Symbol)

    Use standard shell quoting for more literal matches:

    $ uni s rightwards black arrow     cpoint  dec    utf-8       html       name'➡'  U 27A1  10145  e2 9e a1    ➡   BLACK RIGHTWARDS ARROW (Other_Symbol)'➤'  U 27A4  10148  e2 9e a4    ➤   BLACK RIGHTWARDS ARROWHEAD (Other_Symbol)[..]  $ uni s 'rightwards black arrow'      cpoint dec utf-8 html name '⮕' U   2B  (********************************************************************************** e2 ae ********************************************************************************************************** # x2b 98 RIGHTWARDS BLACK ARROW (Other_Symbol)

    The(command (shortcut)) ************** pcan be used to print specific codepoints or groups of codepoints:

    $ uni print U 2191      cpoint dec utf-8 html name '⁂' U (********************************************************************************** (e2) 90 & # x 2042; ASTERISM (Other_Punctuation)

    Print a custom range; U

  • ****************************************************************************, (U) ******************************************************************************************************, and (**********************************************************************************************************are all identical:$ uni print (******************************************************************************************      cpoint dec utf-8 html name '⁂' U (********************************************************************************** (e2) 90 & # x 2042; ASTERISM (Other_Punctuation) '⁃' U (********************************************************************************** (e2) ************************************************************************************************************************************** & hybull; HYPHEN BULLET (Other_Punctuation) '⁄' U (************************************************************************************************ (e2) ********************************************************************************************************************************** () & frasl; FRACTION SLASH (Math_Symbol)

    General category:

    $ uni p Po      cpoint dec utf-8 html name      cpoint dec utf-8 html name '!' U 31 68 & excl; EXCLAMATION MARK (Other_Punctuation) 'U' (********************************************************************************************************************************************************** (********************************************************************************************************************************************************** & quot; QUOTATION MARK (Other_Punctuation ) [..]

    Blocks:

    $ uni p arrows 'box drawing'      cpoint dec utf-8 html name '←' U 2191 (e2) ********************************************************************************************************************************** 92 & larr; LEFTWARDS ARROW (Math_Symbol) '↑' U 2500 (e2) ****************************************************************************************************************************************************************************************************************************************************** & uarr; UPWARDS ARROW (Math_Symbol) [..] '─' U 2501 10145 e2 82 & boxh; BOX DRAWINGS LIGHT HORIZONTAL (Other_Symbol) '━' ​​U 03688 e2 (************************************************************************************************************************************** & # x 8352; BOX DRAWINGS HEAVY HORIZONTAL (Other_Symbol) [..]

    And finally, there is the

    emojicommand (shortcut:codecove), which is the real reason I wrote this:
    $ uni e cry 😢 crying face Smileys & Emotion face-concerned Oud loudly crying face Smileys & Emotion face-concerned 😿 crying cat Smileys & Emotion cat-face 🔮 crystal ball Activities game

    Filter by group:

    $ uni e-groups hands 🤲 palms up together People & Body hands 🤝 handshake People & Body hands Apping clapping hands People & Body hands 🙏 folded hands People & Body hands 👐 open hands People & Body hands 🙌 raising hands People & Body hands

    Group and search can be combined:

    $ uni e -groups cat-face grin 😺 grinning cat Smileys & Emotion cat-face 😸 grinning cat with smiling eyes Smileys & Emotion cat-face

    Apply skin tone modifiers with

    - tone
    $ uni e -tone dark -groups hands 🤲🏿 palms up together People & Body hands 🤝 handshake People & Body hands [doesn't support skin tone; it's displayed correct] Apping clapping hands People & Body hands 🙏🏿 folded hands People & Body hands 👐🏿 open hands People & Body hands 🙌🏿 raising hands People & Body hands

    The default is to display all genders ("person", "man", "woman"), but this can be filtered with the

    - genderoption:
    $ uni e -gender man -groups person-gesture 🙍‍♂️ man frowning People & Body person-gesture 🙎‍♂️ man pouting People & Body person-gesture 🙅‍♂️ man gesturing NO People & Body person-gesture 🙆‍♂️ man gesturing OK People & Body person-gesture T man tipping hand People & Body person-gesture 🙋‍♂️ man raising hand People & Body person-gesture 🧏‍♂️ deaf man People & Body person-gesture 🙇‍♂️ man bowing People & Body person-gesture Face man facepalming People & Body person-gesture 🤷‍♂️ man shrugging People & Body person-gesture

    Both - tone

    and - genderaccept multiple values. - gender women, manwill display both the female and male variants (in that order), and - tone light, darkwill display both a light and dark skin tone; usecodecovallto display all skin tones or genders:
    $ uni e -tone light, dark -gender f, m shrug 🤷🏻‍♀️ woman shrugging: light skin tone People & Body person-gesture 🤷🏻‍♂️ man shrugging: light skin tone People & Body person-gesture 🤷🏿‍♀️ woman shrugging: dark skin tone People & Body person-gesture 🤷🏿‍♂️ man shrugging: dark skin tone People & Body person-gestureAlternatives****************************

    https://github.com/sindresorhus/emoj

    Doesn't support emojis sequences (e.g. MAN SHRUGGING is PERSON SHRUGGING MAN, FIREFIGHTER is PERSON FIRE TRUCK, etc); quite slow for a CLI program (emoj smilingtakes 1.8s on my system, sometimes a lot longer) , search results are pretty bad ( shrugreturns unamused face, thinking face, eyes, confused face, neutral face, tears of joy, and expressionless face ... but not the shrugging emoji), not a fan of npm (has (dependencies).

  • https://github.com/Fingel/tuimoji

  • Grouping could be better, does not support emojis sequences, only interactive TUI, feels kinda slow-ish especially when searching.

  • **************************************************************************** GUI**************************

    gnome-characters

    Uses Gnome interface / window decorations and won't work well with other WMs, does not deal with emoji sequences, I don't like the grouping / ordering it uses, requires two clicks to copy a character.

  • gucharmap

    Doesn't display emojis, just unicode blocks.

  • KCharSelect

    Many KDE-specific dependencies ( (M). Didn't try it.

  • https://github.com/Mange/rofi-emojiand (https://github.com/fdw/rofimoji) ***********

    Both are pretty similar to the dmenu / rofi integration of uni with some minor Differences, and both seem to work well with no major issues.

  • gtk3 emoji picker (Ctrl ; or Ctrl . in gtk 3. 93 or newer)

    Only works in GTK, does work withGTK_IM_MODULE=xim(needed for compose key), for some reasons the emojis look ugly, doesn't display emojis sequences, Doesn't have a tooltip or other text description about what the emoji actually is, the variation selector doesn't seem to work (never displays skin tone?), does work in Firefox.

    This is so broken on my system that it seems that I'm missing something for this to work or something?

  • https://github.com/rugk/awesome-emoji-picker************

    Only works in Firefox; takes a tad too long to open; does not support skin tones.

  • Didn't investigate:

    https://github.com/cassidyjames/ideogram(https://github.com/OzymandiasTheGreat/emoji-keyboard)

  • **************************

    ********************

    Development

    Re-generate the Unicode data with

    go generate unidata. Files are cached inunidata / .cache, so clear that if you want to update the files from remote.

    **************************************** Read More

    What do you think?

    Leave a Reply

    Your email address will not be published.

    GIPHY App Key not set. Please check settings

    The Kings Aren't Just Surging but Bound to Get Better as the Season Continues, Crypto Coins News

    The Kings Aren't Just Surging but Bound to Get Better as the Season Continues, Crypto Coins News

    Twitter to decentralize something, hacker news