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.
Emoji Picker for Linux written in GTK3
Home Page: https://snapcraft.io/emote
License: GNU General Public License v3.0
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.
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.
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?
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.
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 :(
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.
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
Hi Tom! Just wanted to ask if you still need help with the logo for Emote
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:
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 example:
Scroll example:
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. 😀
Line 7444 in c6be700
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?
raising
person
Also show man or woman emojis alongside the person emojis. This would be a convenience add.
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.
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.
(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:
Lines 335 to 344 in cfa8021
Some ideas:
all_emojis
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.
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.
See #48 (comment). This is currently blocking new releases.
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.
$ 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
User on 16.04 reporting that about dialog doesn't close when he presses close button
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?
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.
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!
Currently, U+1F38F(🎏) is displayed as "Flag" in Emote.
It is not a Flag. It is a koinobori.
https://en.wikipedia.org/wiki/Koinobori
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:
If at all possible, please include an emoji-capable font in the snap, and use that one (as a fallback?).
This is a request to add a skin tone picker for the emoji that support them.
Firstly, thank you for creating the best emoji app for linux.
This feature is similar to windows emoji picker, demonstrated in this video. This will be very intuitive for regular mouse users.
I installed this on my Manjaro system, but it's displaying all squares in the application. Any way to fix this problem?
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.
The emoji keyboard does not close when out of focus, this should be an option.
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$
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!
Was hoping you would consider adding the new-ish transgender flag emoji. Thanks.
Noto Color emoji has been updated to version 14.
Release Tag
I needed this emoji but I didn't find it 🟢
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.
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.
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 -
Line 7375 in c6be700
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.
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"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.