8000 GitHub - coolreader18/jome: An emoji picker desktop application
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

coolreader18/jome

< 8000 style data-styled="true" data-styled-version="5.3.11">.fQZdXd{margin-bottom:0;}/*!sc*/ .gMOVLe[data-size="medium"]{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:0;}/*!sc*/ .gMOVLe[data-size="medium"] svg{color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .gMOVLe[data-size="medium"] > span{width:inherit;}/*!sc*/ .gUkoLg{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}/*!sc*/ .bZBlpz{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:100%;}/*!sc*/ .lhTYNA{margin-right:4px;color:var(--fgColor-muted,var(--color-fg-muted,#656d76));}/*!sc*/ .ffLUq{font-size:14px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}/*!sc*/ .bmcJak{min-width:0;}/*!sc*/ .hUCRAk{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}/*!sc*/ data-styled.g1[id="Box-sc-g0xbh4-0"]{content:"fQZdXd,gMOVLe,gUkoLg,bZBlpz,lhTYNA,ffLUq,bmcJak,hUCRAk,"}/*!sc*/ .brGdpi{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;-webkit-clip:rect(0,0,0,0);clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}/*!sc*/ data-styled.g4[id="_VisuallyHidden__VisuallyHidden-sc-11jhm7a-0"]{content:"brGdpi,"}/*!sc*/ .hWlpPn{position:relative;display:inline-block;}/*!sc*/ .hWlpPn::after{position:absolute;z-index:1000000;display:none;padding:0.5em 0.75em;font:normal normal 11px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";-webkit-font-smoothing:subpixel-antialiased;color:var(--tooltip-fgColor,var(--fgColor-onEmphasis,var(--color-fg-on-emphasis,#ffffff)));text-align:center;-webkit-text-decoration:none;text-decoration:none;text-shadow:none;text-transform:none;-webkit-letter-spacing:normal;-moz-letter-spacing:normal;-ms-letter-spacing:normal;letter-spacing:normal;word-wrap:break-word;white-space:pre;pointer-events:none;content:attr(aria-label);background:var(--tooltip-bgColor,var(--bgColor-emphasis,var(--color-neutral-emphasis-plus,#24292f)));border-radius:6px;opacity:0;}/*!sc*/ @-webkit-keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ @keyframes tooltip-appear{from{opacity:0;}to{opacity:1;}}/*!sc*/ .hWlpPn:hover::after,.hWlpPn:active::after,.hWlpPn:focus::after,.hWlpPn:focus-within::after{display:inline-block;-webkit-text-decoration:none;text-decoration:none;-webkit-animation-name:tooltip-appear;animation-name:tooltip-appear;-webkit-animation-duration:0.1s;animation-duration:0.1s;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in;-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-no-delay:hover::after,.hWlpPn.tooltipped-no-delay:active::after,.hWlpPn.tooltipped-no-delay:focus::after,.hWlpPn.tooltipped-no-delay:focus-within::after{-webkit-animation-delay:0s;animation-delay:0s;}/*!sc*/ .hWlpPn.tooltipped-multiline:hover::after,.hWlpPn.tooltipped-multiline:active::after,.hWlpPn.tooltipped-multiline:focus::after,.hWlpPn.tooltipped-multiline:focus-within::after{display:table-cell;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-se::after,.hWlpPn.tooltipped-sw::after{top:100%;right:50%;margin-top:6px;}/*!sc*/ .hWlpPn.tooltipped-se::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-sw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-n::after,.hWlpPn.tooltipped-ne::after,.hWlpPn.tooltipped-nw::after{right:50%;bottom:100%;margin-bottom:6px;}/*!sc*/ .hWlpPn.tooltipped-ne::after{right:auto;left:50%;margin-left:-16px;}/*!sc*/ .hWlpPn.tooltipped-nw::after{margin-right:-16px;}/*!sc*/ .hWlpPn.tooltipped-s::after,.hWlpPn.tooltipped-n::after{-webkit-transform:translateX(50%);-ms-transform:translateX(50%);transform:translateX(50%);}/*!sc*/ .hWlpPn.tooltipped-w::after{right:100%;bottom:50%;margin-right:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-e::after{bottom:50%;left:100%;margin-left:6px;-webkit-transform:translateY(50%);-ms-transform:translateY(50%);transform:translateY(50%);}/*!sc*/ .hWlpPn.tooltipped-multiline::after{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:250px;word-wrap:break-word;white-space:pre-line;border-collapse:separate;}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-s::after,.hWlpPn.tooltipped-multiline.tooltipped-n::after{right:auto;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);}/*!sc*/ .hWlpPn.tooltipped-multiline.tooltipped-w::after,.hWlpPn.tooltipped-multiline.tooltipped-e::after{right:100%;}/*!sc*/ .hWlpPn.tooltipped-align-right-2::after{right:0;margin-right:0;}/*!sc*/ .hWlpPn.tooltipped-align-left-2::after{left:0;margin-left:0;}/*!sc*/ data-styled.g5[id="Tooltip__TooltipBase-sc-17tf59c-0"]{content:"hWlpPn,"}/*!sc*/ .liVpTx{display:inline-block;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap;max-width:125px;}/*!sc*/ data-styled.g6[id="Truncate__StyledTruncate-sc-23o1d2-0"]{content:"liVpTx,"}/*!sc*/
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jome 😏

jome (joh·mee) is a ⌨️ centric emoji picker 🖥 application.

You can also pick an emoji with the 🖱, don’t worry.

jome has most of the interesting emojis of Emoji 14.0.

I’m not a fan of the usual very broad categories of emojis which do not intersect so I made my own categories. A given emoji can be found in more than 1️⃣ category. For example, 🦈 is found in both the animals (no faces) and water categories. I find that it’s easier to 🔍 by theme than by very general category. Feel 🆓 to suggest more categories.

jome is currently only tested on 🐧.

Preview

all
palm
wom
wom fact
transp cat
transp cat car
transp cat car lig

🏗

You need:

  • CMake ≥ 3.1.0

  • A C++14 compiler

  • Boost ≥ 1.58 (only to 🏗)

  • Qt 5 (Core, GUI, Widgets, and Network modules)

🏗 jome
$ mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=release .. && make -j$(nproc)
Note
You need to install jome for it to find the correct data 📄. If you don’t want to install it on your system, use -DCMAKE_INSTALL_PREFIX=path/to/install/directory when you run cmake.
Install jome
$ sudo make install

Install on Arch Linux

To install on Arch Linux from the jome-git AUR package:

$ yay -Sy jome-git

Usage

jome’s purpose is to help you pick an emoji.

When you accept an emoji (with the ⌨️ or with the 🖱), jome 🖨 the UTF-8 emoji or the Unicode codepoints (see the -f option), with an optional prefix (see the -p option) for each codepoint, to the standard output. Additionally, jome can:

  • Execute a custom command which receives the UTF-8 emoji or the Unicode codepoints, with an optional prefix for each codepoint, as its last argument(s). See the -c option.

  • Send the UTF-8 emoji or the Unicode codepoints, with an optional prefix for each codepoint, in response to a client which requested picking an emoji. See the -s option.

If you close the window (you can 👇 Escape to do this), then jome 🖨 nothing to the standard output and executes nothing.

If you don’t start jome in server mode (-s option) and you don’t specify the -q option, then jome immediately quits after you accept an emoji or close the window.

Graphical interface

all

There are 4️⃣ sections:

🔍 box (⬆️)

Input box where you can ⌨️ a query to 🔍 emojis.

Emojis

All emojis (with an empty 🔍 box) or 🔍 results.

When there’s at least 1️⃣ emoji, there’s always a selected emoji with a 🔴 box around it.

🖱 an emoji to accept it.

Hover an emoji to update the ⬇️ emoji info text temporarily.

Use the -d option to make the background behind emojis dark.

Category list

List of available categories.

When all emojis are 👁 (the 🔍 box is empty), 🖱 a category name to scroll to this emoji category.

The first category, Recent, is a special category with the recently accepted emojis.

Emoji info text (⬇️)

Name, Unicode codepoints, and Emoji version of the selected or hovered emoji.

🔍 emojis

The power of jome is its 🔍 box.

When you launch jome, the 🔍 box is focused, and it should stay focused unless you browse emojis manually with the intention of accepting one with the 🖱.

The format of a query is 1️⃣ of:

  • TERMS

  • CAT/

  • CAT/TERMS

where:

CAT

Partial name of categories in which to 🔍.

TERMS

Space-separated list of 🔍 terms.

For an emoji to be part of the results, at least 1️⃣ of its keywords must contain all the 🔍 terms.

Select and accept an emoji

To select an emoji, use the following ⌨️:

⬅️, ➡️, ⬆️, ⬇️

Go ⬅️/➡️/⬆️/⬇️.

Ctrl+⬅️, Ctrl+➡️

Go ⬅️/➡️ 5️⃣ emojis.

Page ⬆️, Page ⬇️

Go ⬆️/⬇️ 10 rows.

Home

Go to the first emoji.

End

Go to the last emoji.

To accept the selected emoji, 👇:

Enter

Accept the selected emoji with the default skin tone (if applicable).

F1, F2, F3, F4, F5

If the selected emoji supports skin tones, accept the selected emoji with a light, medium-light, medium, medium-dark, or dark skin tone.

To cancel, 👇 Escape or close the window.

Go to Emojipedia page

To go to the Emojipedia 📃 of the selected emoji, 👇 F12.

To go to the Emojipedia 📃 of any emoji with the 🖱, right-click it and click “Go to Emojipedia page”.

Command-line options

-f FMT

Set the output format to FMT:

utf-8 (default)

UTF-8 emoji.

cp

Space-separated Unicode codepoints (hexadecimal).

Example: 1f645 200d 2642 fe0f

-p PREFIX

Set the prefix to be prepended to each Unicode codepoint.

For example, with -f cp and -p U+: U+1f645 U+200d U+2642 U+fe0f.

-n

Do not 🖨 a newline after 🖨 the emoji or codepoints.

-c CMD

When you accept an emoji, execute command CMD 20 ms after closing the jome window.

jome interprets CMD like a 🐚 does, so you can have arguments too.

CMD receives the UTF-8 emoji or the Unicode codepoints (depending on the -f option) with their optional prefix as its last argument(s).

Examples with xdotool:

$ jome -c 'xdotool type'
$ jome -f cp -p U -c 'xdotool key --delay 20'
-q

Do not quit when you accept< 8000 /a> an emoji.

By default, when you accept an emoji (with the ⌨️ or with the 🖱), jome:

With the -q option, jome does not hide its window and does not quit when you accept an emoji so that you can make it 🖨 multiple emojis and/or execute a command multiple ⏲ with multiple emojis without restarting the application.

You cannot specify the -q and -s options at the same ⏲.

-s NAME

Start jome in server mode and set the server name to NAME.

On Unix, this creates the socket 📄 /tmp/NAME which must not exist before you start jome.

You cannot specify the -s and -q options at the same ⏲.

-d

Use a dark background for emojis.

-w WIDTH

Set the width of individual emojis to WIDTH pixels, amongst 16, 24, 32 (default), 40, or 48.

Server mode

jome features a server mode to avoid creating a process (a Qt window can be quite long to create) every ⏲ you need to pick an emoji. With this mode, you can 👁 the jome window instantaneously.

To start jome in server mode, use the -s option to specify the server name:

$ jome -s mein-server

This creates a local server named mein-server. On Unix, it creates the socket 📄 /tmp/mein-server.

Important

On Unix, the server mode won’t work if the socket 📄 already exists. Remove the 📄 before you start jome in server mode:

$ rm -f /tmp/mein-server
$ jome -s mein-server

When jome starts in server mode, it does not 👁 its window. Instead, it ⌛ for a command sent by the client, jome-ctl. To 👁 the window:

$ jome-ctl mein-server

When you accept an emoji, jome-ctl 🖨 what jome also 🖨 to the standard output and quits with exit code 0️⃣. Therefore, the output format of jome-ctl is 🎛 by the options passed to jome.

If you cancel jome (press Escape or close the window), jome-ctl 🖨 nothing and returns with exit code 1️⃣.

In server mode, jome does not quit once you accept an emoji or cancel: it hides the window and keeps 👂. To make it quit gracefully, which also removes the socket 📄:

$ jome-ctl mein-server quit

You don’t need to use what jome-ctl 🖨 to the standard output. You can use jome in server mode with the -c option to make jome execute a command itself. For example:

$ rm -f mein-server
$ jome -s mein-server -c 'xdotool type'

Then, bind a ⌨️ shortcut to:

$ jome-ctl mein-server

⌨️ the accepted emoji

Here are Bash 📜 to ⌨️ the accepted emoji with xdotool.

Non server mode

With xdotool key
#!/usr/bin/bash

codepoints="$(jome -f cp -p U)"

if [ $? -ne 0 ]; then
    exit 1
fi

xdotool key --delay 20 $codepoints
With xdotool type
#!/usr/bin/bash

emoji="$(jome)"

if [ $? -ne 0 ]; then
    exit 1
fi

xdotool type "$emoji"

Server mode

With xdotool key
#!/usr/bin/bash

socket_name="jome.socket.$(id -u)"

if ! pidof jome &>/dev/null; then
    rm -f "/tmp/$socket_name"
    jome -s "$socket_name" -f cp -p U -c 'xdotool key --delay 20' & disown

    while [ ! -e "/tmp/$socket_name" ]; do
        sleep .1
    done
fi

jome-ctl "$socket_name"
With xdotool type
#!/usr/bin/bash

socket_name="jome.socket.$(id -u)"

if ! pidof jome &>/dev/null; then
    rm -f "/tmp/$socket_name"
    jome -s "$socket_name" -c 'xdotool type' & disown

    while [ ! -e "/tmp/$socket_name" ]; do
        sleep .1
    done
fi

jome-ctl "$socket_name"

About

An emoji picker desktop application

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 95.9%
  • Python 3.0%
  • CMake 1.1%
0