Giter Club home page Giter Club logo

emote's Introduction

Hey 👋

I'm a software engineer, open source software enthusiast and all round linux nerd.

You can find out a bit more about me on my personal website or follow me on twitter.

emote's People

Contributors

0x4c4a avatar abgita avatar dobicinaitis avatar gagangulyani avatar lkrms avatar plnech avatar sonjoonho avatar tom-james-watson avatar vemonet avatar waldyrious avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

emote's Issues

Hide Emote windows given it is focused when shortcut is pressed again

Feature request:
Given Emote has the focus (the user has pressed the shortcut, ctrl+atl+e)
When the shortcut is pressed again
Then Emote should close itself

This would provide another way to dismiss emote using the same shortcut.
Thus the shortcut will be able to show and hide the main window.

Can't launch

on Ubuntu 20.04

anil@dev:~/Desktop$ emote 

(emote:5616): Gtk-WARNING **: 10:16:31.200: Locale not supported by C library.
	Using the fallback 'C' locale.

(emote:5616): GdkPixbuf-WARNING **: 10:16:31.253: Cannot open pixbuf loader module file '/home/anil/snap/emote/common/.cache/gdk-pixbuf-loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /home/anil/snap/emote/common/.cache/gdk-pixbuf-loaders.cache
to make things work again for the time being.
Gtk-Message: 10:16:31.301: Failed to load module "canberra-gtk-module"
Launching emote daemon

(emote:5616): Gtk-WARNING **: 10:16:31.309: Theme parsing error: style.css:22:11: Not using units is deprecated. Assuming 'px'.

(emote:5616): Gtk-WARNING **: 10:16:31.309: Theme parsing error: style.css:27:19: Not using units is deprecated. Assuming 'px'.
Traceback (most recent call last):
  File "/snap/emote/7/lib/python3.6/site-packages/emote/__init__.py", line 67, in do_activate
    self.start_daemon()
  File "/snap/emote/7/lib/python3.6/site-packages/emote/__init__.py", line 23, in start_daemon
    emojis.init()
  File "/snap/emote/7/lib/python3.6/site-packages/emote/emojis.py", line 26, in init
    emojis = json.load(f)
  File "/snap/emote/7/usr/lib/python3.6/json/__init__.py", line 296, in load
    return loads(fp.read(),
  File "/snap/emote/7/usr/lib/python3.6/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xf0 in position 96: ordinal not in range(128)
anil@dev:~/Desktop$ 

Inspiration from Element for a v2 of ui

I'm planning on rewriting the UI at some point using GTK4 and libhandy.

Copying useful comment from @afv from #17 (comment)

Element web has a very nice emoji picker. Some features I like about it, that could be a suggestion for Emote:

  • search results grouped by category
  • status bar with hovered emoji details (no need for waiting for a tooltip)
  • continuous scroll between categories

Search example:

Element_Emoji_Picker

Element_Emoji_Picker_notes

Scroll example:

2020-10-12_13-12-03_Element_emoji_picker

Upgrade to core20

We need to upgrade the app to core20 base and gnome-3-38 extension to update the fonts and therefore the list of supported emojis.

I've tried to do this on https://github.com/tom-james-watson/Emote/tree/core20 but have hit some roadblocks. The python code does / emote binary no longer appears to be making it into the snap and I don't understand how to fix it.

ASCII Emoji support

I was wondering if there are any plans to add ascii emoji support to the app (like ಠ_ಠ). I would be more than happy to help if it's possible.

can I use a different font?

I currently have the Apple Color Emoji as my default font, but emojis in the app still use the Google Noto emojis, how can I use the Apple font?

[Debian] Apparmor errors

Thanks for the great project!

I've been trying to get this working on Debian following directions from the Snap store:
https://snapcraft.io/install/emote/debian#install

Under the hood it seems like there is no apparmor profile installed along with the package so I'm running into runtime permissions and other errors due to apparmor denying requests. That looks something like this:

Jan  7 14:16:22 steam kernel: [ 2356.065131] audit: type=1400 audit(1641586582.426:217): apparmor="DENIED" operation="open" profile="/usr/bin/snap" name="/sys/kernel/mm/transparent_hugepage/hpage_pmd_size" pid=10750 comm="emote" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Jan  7 14:16:22 steam kernel: [ 2356.067778] audit: type=1400 audit(1641586582.430:218): apparmor="DENIED" operation="open" profile="/usr/bin/snap" name="/proc/version" pid=10750 comm="emote" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Jan  7 14:16:22 steam kernel: [ 2356.073432] audit: type=1400 audit(1641586582.434:219): apparmor="DENIED" operation="open" profile="/usr/bin/snap" name="/proc/cmdline" pid=10750 comm="emote" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0
Jan  7 14:16:22 steam kernel: [ 2356.073477] audit: type=1400 audit(1641586582.434:220): apparmor="DENIED" operation="open" profile="/usr/bin/snap" name="/snap/core/11993/usr/lib/snapd/info" pid=10750 comm="emote" requested_mask="r" denied_mask="r" fsuid=1000 ouid=0

I've been fooling around with creating an apparmor profile but it seems like too much additional work and doesn't solve the problem. I've got emote running at least but when I choose an emoji it never appears at the cursor :(

Search individually on each word of an emoji name to improve search

Hi! 😀

How is the search done?
When searching for "shr", only "shrimp" appears, and "man_shrugging" is missing.

image

image

Searching for "man " (with a space) returns nothing:

image

On the other hand (and it is OK), searching for "laugh" makes "rofl" appear (which has no "laugh" in the name?):

image

Thanks!

Set process name/title

When I run:

emote &
killall emote

I expect the program started in the first line to be killed by the second. Unfortunately, emote starts a process named python3.

There may be different avenues:

  • In Python, e.g. using dvarrazzo/py-setproctitle.
  • Using a Bash wrapper script.
  • Maybe there's something in snap, I don't know.

Opening the emoji picker window takes ~2 seconds

Hi, thank you for your work on this!

I just installed Emote on my Ubuntu 21.10 laptop (so Wayland if relevant), and it looks great!

My one concern is when opening Emote either by my shortcut or from the terminal with the emote command, it takes about 2 seconds until the window opens.

The README.md suggests:

Emote runs in the background and automatically starts when you log in.

So is this expected? Is there any limitation that makes this open so slow? Can this be related to my computer? I have a fairly high-end developer-focused Dell XPS.

The only log I can provide immediately is when opening from the terminal:

(emote:12717): dbind-WARNING **: 11:04:32.457: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-aQHT5tmbfL: No such file or directory

(emote:12717): Gtk-WARNING **: 11:04:32.689: Theme parsing error: gtk.css:1427:23: 'font-feature-settings' is not a valid property name

(emote:12717): Gtk-WARNING **: 11:04:32.692: Theme parsing error: gtk.css:3317:25: 'font-feature-settings' is not a valid property name

(emote:12717): Gtk-WARNING **: 11:04:32.693: Theme parsing error: gtk.css:3779:23: 'font-feature-settings' is not a valid property name

I am happy to provide more information if needed. 🙂

This might be low-priority, and if there is nothing to do/there is an upstream blockage, feel free to close this issue.

When active window is a Terminal use Ctrl-Shift-V to paste, not Ctrl-V

I know this will be most helpful for x11 initially but here is a list of wm_class names you can use for the terminal app grouping.

Be sure to make things case insensitive.

"alacritty","cutefish-terminal","deepin-terminal","eterm","gnome-terminal","guake","hyper","io.elementary.terminal","kitty","konsole","lxterminal","mate-terminal","qterminal","st","sakura","station","tabby","terminator","termite","tilda","tilix","urxvt","xfce4-terminal","xterm"

Gif support

Coming from Windows (hotkey: Win + .) I really enjoy this app but I still miss gif support (e.g. tenor, giphy), are there any plans on that?

Pasting into terminal doesn't work

Pasting into a terminal usually requires sending Ctrl+Shift+V, rather than Ctrl+V. The default setup of this program produces weird behaviour, because Ctrl+V is usually used to perform other existing behaviour in the shell (unrelated to pasting of text).

I noticed that an xdotool approach was proposed in #41 and #42. While I appreciate that it has other problems, it feels like it would resolve the issue of pasting into terminals.

Searches are sluggish until a few characters have been entered

(Disclaimer: I'm on the AUR build)

When I open the picker and start typing, it takes a fraction of a second for each character I type to show up. Presumably this is because it blocks on updating the search bar (at least visually) until the search has finished.

The search function is probably executing for each character the user types, which starts out pretty slow:

Emote/emote/emojis.py

Lines 335 to 344 in cfa8021

def search(query):
query = query.lower()
def search_filter(emoji):
parts = emoji["name"].split("_")
search_terms = parts + [" ".join(parts)] + emoji["keywords"]
search_terms = [search_term.lower() for search_term in search_terms]
return any(query in search_term for search_term in search_terms)
return list(filter(search_filter, all_emojis))

Some ideas:

  • Wait until a few hundred milliseconds of inactivity/no typing before running search
  • Use a more efficient data structure to store all_emojis

Use packaged emoji font instead of system font

I disabled (read: uninstalled) the default emoji font on my i3 Ubuntu system because I found it to be visually inconsistent and invasive for my overall UX (cf. askubuntu#1030690). Hence, the emote picker doesn't look all that attractive:

image

If at all possible, please include an emoji-capable font in the snap, and use that one (as a fallback?).

Skin tones

This is a request to add a skin tone picker for the emoji that support them.

Thai language reported can cause repeated keystrokes

I'm on Ubuntu Budgie 21.04.

It works great using the US keyboard layout, but if I'm using Thai, and I pick an emoji, there will be a long delay, the emoji will be correctly pasted, then it will be stuck spamming the "v" key until you press a key to stop it and remove the extra keystrokes.

e.g. using US keyboard layout:
😁

e.g using TH keyboard layout
😁อออออออออออออออออออออออออออออออออออออออออออออ(forever)

Ctrl+V usually works fine as a keyboard shortcut in Thai so I'm not sure why it would do this.

how can i clear my emoji history

like how does the app know which emojis i have used, where is the file
Solution for people who used the AUR: delete this file ~/.local/share/Emote/user_data then reload emote by killall emote and re-open it

solution for people who used the snap store is below this

Allow selection of multiple emojis

If the user right clicks on an emoji, or selects it with shift+enter, instead of just selecting the emoji and closing the picker, it should add the emoji to a list.

As you select emojis in this manner, the list of selected emojis should appear in a preview at the bottom of the picker window.

For example, if I right click 🎉, then 🎁, then 🎂, it should show something along the lines of Selection: 🎉🎁🎂 at the bottom of the screen.

Left clicking an emoji after having right clicked others should add the final emoji to the selection and close the picker.

Alternative distribution formats

Currently I have Snap installed just for this application, so it would be nice if I could install Emote via APT or a .deb package instead and uninstall Snap.

Show code for emojis

Hey!

Could we add the github / slack short code anyhow to this awesome app?

For instance, let's say that you want to know the code for this emoji: 😊 If you go to emojipedia you get: :blush: Can we add this code to the app? Maybe when the mouse pointer is over the emoji?

Switch emoji data source

Manually adding emojis to emojis.json is not scalable. I have been looking for a better source of emoji data that is actually going to be maintained. There are some that are produced from https://unicode.org/Public/emoji/13.0/emoji-test.txt, which can be seen as the source of truth, but these do not include any aliases, which makes it way less useful.

I think the best option I have found is to use the github data, as these actually include some aliases, though less than we currently have.

https://github.com/github/gemoji/blob/master/db/emoji.json

Skin tone isn't configurable for some `people-body` emojis

Problem

When I select a skin tone, I expect all people/body emojis to change to that skin tone. Instead, I see that certain (seemingly random) people/body emojis still have the default skin tone.

Screenshots

image

image

The README states

Emoji data is sourced from https://raw.githubusercontent.com/hfg-gmuend/openmoji/master/data/openmoji.csv which is compiled by the lovely people at https://openmoji.org.

But I see that https://raw.githubusercontent.com/hfg-gmuend/openmoji/master/data/openmoji.csv seems to have all the skin tones for all the people/body emojis.

For example, here is the `hand-fingers-open` data from the csv.

image

Environment

I'm using the snap distribution on Ubuntu 21.10, GNOME 40.4.0 with Wayland

⚡ snap list emote
Name   Version  Rev  Tracking       Publisher         Notes
emote  3.0.3    19   latest/stable  tom-james-watson  -

Option to disable automatic copying to clipboard

Somewhat of a tiny problem. Currently selecting an emoji will also copy that emoji to your clipboard. I personally do not really find that much use for this feature, and find that it clogs up my clipboard history with emojis. Would be nice if there was an option to disable it. 😀

Python 3.9 issue?

$ date
Fri Dec 18 03:11:25 PM PST 2020

$ yay -Ss emote | grep -w emote
aur/emote 1.0.1-2 (+2 0.74) (Installed)

$ which emote
/usr/bin/emote

$ emote
Traceback (most recent call last):
  File "/usr/bin/emote", line 33, in <module>
    sys.exit(load_entry_point('Emote==1.0.1', 'gui_scripts', 'emote')())
  File "/usr/bin/emote", line 22, in importlib_load_entry_point
    for entry_point in distribution(dist_name).entry_points
  File "/usr/lib/python3.9/importlib/metadata.py", line 524, in distribution
    return Distribution.from_name(distribution_name)
  File "/usr/lib/python3.9/importlib/metadata.py", line 187, in from_name
    raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: Emote

$ python --version
Python 3.9.1

$ uname -a
Linux victoria 5.9.14-arch1-1 #1 SMP PREEMPT Sat, 12 Dec 2020 14:37:12 +0000 x86_64 GNU/Linux

Tab should select the first emoji in the list

It's very surprising and unintuitive for tab to select the preference button at the top right, followed by the emoji category list, before tabbing into the actual emoji list. This breaks the intuitive flow of using tab to choose which emoji I want to insert.

I think that only the emoji list should be tabbable. There's already ctrl+f to choose the search bar, and ctrl+tab to choose the emoji category.

Add the "smiling face with tear" emoji

There are some emoji missing from the list, and Smiling face with tear is one of them. → 🥲

I noticed similar issues, like #34 and #19. It would be nice to have some guidance on the README about how to add new emoji, or whether that depends on upstream updates. For example, would changes like those of f6fec5a work generally? Are the emoji that can be added limited to a specific Unicode version? Etc.

If some pointers are provided, I'd be happy to submit a PR!

Unable to set binding to `<Super>e`

I tried binding Super+e and the console log show this error on startup.

I made sure to have disable Kubuntu builtin emoji shortcut bound to Meta+e beforehand.

$ emote
Launching emote daemon

** (emote:26718): WARNING **: 10:58:26.486: Binding '<Super>e' failed!

Do not use (main) clipboard

emote uses the "main" clipboard to paste emojis; that tends to break some workflows ("copy image; write tweet; paste im ... fuck").

As per askubuntu#591686, xdotool can send Unicode characters directly which should provide a neat solution that does not "pollute" the clipboard.

As an alternative, you could use xsel -s to use the seconday selection instead, in the hope of causing fewer conflicts.

Logo for Emote

Hi Tom! Just wanted to ask if you still need help with the logo for Emote

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.