{"id":13501198,"url":"https://github.com/tom-james-watson/Emote","last_synced_at":"2025-03-29T08:32:13.308Z","repository":{"id":40453283,"uuid":"253234080","full_name":"tom-james-watson/Emote","owner":"tom-james-watson","description":"Emoji Picker for Linux written in GTK3","archived":false,"fork":false,"pushed_at":"2024-09-26T07:30:17.000Z","size":20343,"stargazers_count":656,"open_issues_count":30,"forks_count":36,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-31T20:39:21.336Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://snapcraft.io/emote","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tom-james-watson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2020-04-05T12:51:47.000Z","updated_at":"2024-10-31T06:48:52.000Z","dependencies_parsed_at":"2022-07-12T02:01:48.653Z","dependency_job_id":"780b0922-c4c6-4ad8-81a6-ee6372193be1","html_url":"https://github.com/tom-james-watson/Emote","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-james-watson%2FEmote","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-james-watson%2FEmote/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-james-watson%2FEmote/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tom-james-watson%2FEmote/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tom-james-watson","download_url":"https://codeload.github.com/tom-james-watson/Emote/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246162092,"owners_count":20733351,"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":[],"created_at":"2024-07-31T22:01:28.919Z","updated_at":"2025-03-29T08:32:12.609Z","avatar_url":"https://github.com/tom-james-watson.png","language":"Python","funding_links":[],"categories":["Python","Development"],"sub_categories":["Icons"],"readme":"# \u003cspan\u003e\u003cimg width=\"24\" height=\"24\" src=\"https://github.com/tom-james-watson/Emote/blob/master/static/logo.svg\"\u003e\u003c/span\u003e Emote\n\nEmote is a modern emoji picker for Linux 🚀. Written in GTK3, Emote is lightweight and stays out of your way.\n\nLaunch the emoji picker with the configurable keyboard shortcut `Ctrl+Alt+E`, and select one or more emojis to have them be automatically pasted into your currently focused app.\n\n- 🍾 Built as a popup: quick invocation, and disappears when not needed, does not stay as a standalone window\n- 🫠 Provide a large and up-to-date list of emojis retrieved from [openmoji.org](https://openmoji.org/)\n- 🧠 Shows the last used emojis by default\n- 🔎 Search text box automatically focused and ready to type when invoked\n- ⌨️ Can use shortcuts to navigates and select emojis\n- ✒️ Selected emoji automatically pasted to your currently focused app (on X11 only)\n\nℹ️ Note:\n\n- ⚡️ Emote [shows up faster](https://github.com/tom-james-watson/Emote/issues/54) when invoked using the built-in keyboard shortcut (`Ctrl+Alt+E` by default), than when using a manually registered keyboard shortcut.\n- 🪟 Emote under Wayland cannot automatically paste the emoji into other apps, and also requires manual registering of a global keyboard shortcut - [Hotkey In Wayland](https://github.com/tom-james-watson/Emote/wiki/Hotkey-In-Wayland). This is due to intentional restrictions in the design of Wayland itself.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"500\" src=\"https://raw.githubusercontent.com/tom-james-watson/Emote/master/images/screenshot.png\"\u003e\n\u003c/p\u003e\n\n## 📥️ Installation\n\nEmote can be installed using various popular package managers:\n\n### 📦️ Install with Flatpak (preferred)\n\n\u003ca href='https://flathub.org/apps/com.tomjwatson.Emote'\u003e\u003cimg width='240' alt='Download on Flathub' src='https://dl.flathub.org/assets/badges/flathub-badge-en.png'/\u003e\u003c/a\u003e\n\nor\n\n```bash\nflatpak install com.tomjwatson.Emote\n```\n\n### 🦜 Install with Snap\n\n[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/emote)\n\nor\n\n```bash\nsudo snap install emote\n```\n\n### 🐧 Unofficial installation methods\n\nAn unofficial build of Emote is also available in the AUR : https://aur.archlinux.org/packages/emote.\n\n## 📖 Guide\n\n### 🚀 Launching\n\nEmote runs in the background and automatically starts when you log in.\n\nThe emoji picker can be opened with either the keyboard shortcut, or by clicking the app icon again.\n\n### ℹ️ Usage\n\nSelect an emoji to and have it be pasted to your currently focused app. The emoji will also be copied to your clipboard, so you can then paste the emoji wherever you need.\n\nYou can select multiple emojis by selecting them with right click.\n\n### ⌨️ Keyboard Shortcuts\n\nOpen Emoji Picker: `Ctrl+Alt+E` (configurable)\n\nSelect Emoji: `Enter`\n\nAdd Emoji to Selection: `Shift+Enter`\n\nFocus Search: `Ctrl+F`\n\nNext Emoji Category: `Ctrl+Tab`\n\nPrevious Emoji Category: `Ctrl+Shift+Tab`\n\n## 🧑‍💻 Development\n\n[![Build package](https://github.com/tom-james-watson/Emote/actions/workflows/build.yml/badge.svg)](https://github.com/tom-james-watson/Emote/actions/workflows/build.yml)\n\n### 📥️ Requirements\n\nInstall development libraries:\n\n```bash\nsudo apt install xdotool libgtk-3-dev libgirepository1.0-dev python3-venv gir1.2-keybinder-3.0 libkeybinder-dev desktop-file-utils\n# or with dnf\nsudo dnf install xdotool gtk3-devel keybinder3-devel libgirepository1.0-dev desktop-file-utils gobject-introspection-devel flatpak-builder\n\nsudo dnf install libffi-devel\n```\n\nInstall pipenv:\n\n```bash\nsudo pip3 install pipenv\n```\n\nInstall dependencies:\n\n```bash\nmake install\n```\n\n### 🛩️ Running\n\nRun the development version:\n\n```bash\nmake dev\n```\n\n### 🔄 Update emojis\n\nTo update the list of emojis to the latest available on [openmoji.org](https://openmoji.org), run:\n\n```bash\nmake update-emojis\n```\n\n### 🐞 Debugging GTK3 with GtkInspector\n\nEnable debug keybinding:\n\n```bash\ngsettings set org.gtk.Settings.Debug enable-inspector-keybinding true\n```\n\nLaunch app in debug mode with interactive inspector:\n\n```bash\nmake dev-debug\n```\n\n## 🚢 Publishing\n\n### Releasing a new version\n\n1. Bump the version number in `snapcraft.yaml` for snap and in `meson.build` for flatpak.\n2. Add a release entry to the `com.tomjwatson.Emote.metainfo.xml`.\n\n### 📦️ Package with Flatpak\n\nTo develop locally you will need to have [`flatpak`](https://flatpak.org/setup/) installed.\n\n#### Install\n\nInstall `flatpak-builder`, the GNOME SDK, and `flatpak-pip-generator`:\n\n```bash\nmake flatpak-install\n```\n\nOptionally re-generate the `flatpak/python3-requirements.json` if the dependencies in the `Pipfile` have been changed:\n\n```bash\nmake flatpak-requirements\n```\n\n#### Build\n\nBuild the flatpak package and install it locally:\n\n```bash\nmake flatpak\n```\n\nRun Emote with flatpak (can also be done from the desktop entry):\n\n```bash\nflatpak run com.tomjwatson.Emote\n```\n\n#### Debug\n\nIn case you are facing issues with the cache not properly updating, or need to reset user data, you can clean the cache with:\n\n```bash\nmake flatpak-clean\n```\n\nTo see potential error messages of the flatpak app you can use `journalctl`: \n\n```bash\njournalctl -f -n 50\n```\n\nRun the command below if you want to access inside the containerized flatpak app to debug.\n\n```bash\nflatpak run --command=sh --devel com.tomjwatson.Emote\n```\n\n#### Publish to Flathub\n\nEmote is published to Flathub using the repository [github.com/flathub/com.tomjwatson.Emote](https://github.com/flathub/com.tomjwatson.Emote).\n\nFlathub builds can be monitored at [buildbot.flathub.org/#/apps/com.tomjwatson.Emote](https://buildbot.flathub.org/#/apps/com.tomjwatson.Emote)\n\nTo update the version published to Flathub:\n\n1. In the [`com.tomjwatson.Emote.yml` manifest](https://github.com/flathub/com.tomjwatson.Emote/blob/master/com.tomjwatson.Emote.yml#L66) of the flathub/com.tomjwatson.Emote repo: change the commit hash to the commit of the Emote repository you want to publish\n2. Flathub checks the GitHub repo every few minutes, and will start a build if a change has been detected. If the build succeeds, it is published automatically after 3 hours. You can use the [Flathub BuildBot web UI](https://buildbot.flathub.org/#/apps/com.tomjwatson.Emote) to monitor, start or publish builds manually (click the Publish button at the top of a successful build page).\n\nMore documentation for maintaining a Flathub package is available at [docs.flathub.org/docs/for-app-authors/maintanance](https://docs.flathub.org/docs/for-app-authors/maintanance#buildbot).\n\n### 🦜 Package with Snap\n\nEnsure you have `snapcraft` installed:\n\n```bash\nsudo snap install --classic snapcraft\n```\n\nCreate a packaged `.snap` file:\n\n```bash\nmake snap\n```\n\nClean the cache:\n\n```bash\nmake snap-clean\n```\n\n#### Publishing\n\nFirst, ensure a git tag for the current version has been pushed.\n\nEnsure you are logged in to snapcraft:\n\n```bash\nsnapcraft login\n```\n\nPush the packaged snap to the `edge` channel on the snap store.\n\n```bash\nsnapcraft push --release=edge \u003cpath to .snap\u003e\n```\n\n## 🤝 Attribution\n\nEmoji 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 🫠.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom-james-watson%2FEmote","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftom-james-watson%2FEmote","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftom-james-watson%2FEmote/lists"}