Skip to content

xan2622/PurrMoji

Repository files navigation

PurrMoji Emoji Picker

Downloads@latest ¯¯

Release Version Badge Issues Badge Closed Issues Badge

PurrMoji is a lightweight cross-platform open-source emoji picker designed to make browsing, searching, and copying emojis quick and easy.

light theme medium theme dark theme

Supported emoji packages:

Emoji Package Preview
Emojitwo 2.2.5 emojipedia.org/joypixels/2.2.5
Noto Emoji 17.0 emojipedia.org/google/17.0
OpenMoji 16.0 emojipedia.org/openmoji
Segoe UI Emoji 1.33 emojipedia.org/microsoft
Twemoji 14.0 emojipedia.org/twitter/twemoji-14.0
Kaomoji Includes support for various kaomoji sets
Custom Allows you to add your own images, icons or emojis (PNG, SVG, TTF)

💡 Origin of PurrMoji

This project was initially created specifically for the OpenMoji open-source emoji library. OpenMoji's mission is to create and maintain a consistent set of open-source emojis but not to develop an emoji picker app, hence this software.

Since then, the goal of the PurrMoji project has evolved, expanding its support to include multiple emoji packages.

📋 Some of its features

  • A drop-down menu to choose between 5 available emoji sets (EmojiTwo, Noto, OpenMoji, Segoe UI Emoji, Twemoji) + a few Kaomojis
  • A drop-down menu to display All emojis / Only the ones with variations / Only the ones without variations
  • A search field (to quickly find emojis by name or by unicode) and a button to clear the search field
  • Radio buttons to display either Colored or Black emojis, PNG / SVG / TTF emojis, 72 px or 618 px emojis sets
  • A button to view Recent / Favorite / Frequently used emojis
  • 12 buttons to switch between emoji categories
  • Up to 3 rows of tabs for sub-categories (depending on the category)
  • An emoji preview with emoji name and unicode code
  • A contrast button to invert emoji colors (useful when viewing black emojis with the Dark theme)
  • A color button to change emoji background color (located next to the "Size" controls)
  • An input field to directly set the emoji size and two - + buttons to decrease or increase emojis size
  • A 'Hotkeys' dialog to give information about available hotkeys and customize them
  • A 'Settings' dialog to configure which preferences are saved persistently across app restarts
  • "Add to favorites" button, a "Copy to clipboard" button, a "Clear" button in Recent / Favorites
  • Custom folder support: add your own PNG, SVG, or TTF icons and emojis alongside the bundled emoji packages
  • A Global Hotkey to instantly show/hide PurrMoji from anywhere using a customizable shortcut (default: Ctrl+Alt+X)
  • An Auto-Start option to automatically launch PurrMoji when the OS session starts (Windows, Linux, macOS)
  • An option to minimize PurrMoji to the system tray for background operation

💬 Feedback & Community

If you have ideas or want to report a bug about PurrMoji, feel free to open an issue on this Github repository.

If you want to contribute to the emoji library projects themselves, please visit their respective repositories linked above.

If you want to chat about PurrMoji, you can join my Discord server: https://discord.gg/DSVQthQKsf

----- Other info -----

⚙️ Under the hood

Rendering Engine

  • All emoji formats (PNG, SVG, TTF) are rendered using Skia-Python for optimal performance and quality. Skia provides hardware-accelerated rendering with direct memory processing, ensuring fast loading and beautiful emoji display across all formats.

  • When Skia is not available or fails to render an emoji, PyQt5's native renderer (QSvgRenderer for SVG, QPixmap for PNG) is used as a fallback system.

First Launch Setup

On the first launch, PurrMoji will display an extraction dialog window to unpack the emoji packages from their compressed ZIP archives.

The extraction takes a few moments and shows a progress bar with the current operation. Once completed, the emoji packages are stored in:

  • Windows: %APPDATA%\PurrMoji\emoji_packages\
  • macOS: ~/Library/Application Support/PurrMoji/emoji_packages/
  • Linux: ~/.local/share/PurrMoji/emoji_packages/

The Custom emoji folder and Kaomoji data remain in the application directory and don't require extraction. Segoe UI Emoji also doesn't require extraction as it uses the system TTF font already installed on Windows ; these emojis are only available on Windows and won't be shown on Linux/MacOS.

⚖️ Licenses

Emoji Packages

Each emoji package included in PurrMoji retains its original license:

Emoji Package License
Emojitwo (2.2.5) https://emojitwo.github.io/#emojione-2x-artwork-license
Noto Emoji (17.0) https://github.com/googlefonts/noto-emoji?tab=OFL-1.1-1-ov-file
OpenMoji (16.0) https://github.com/hfg-gmuend/openmoji?tab=CC-BY-SA-4.0-1-ov-file#readme
Segoe UI Emoji (1.33) https://learn.microsoft.com/en-us/typography/fonts/font-faq (these emojis are not bundled in PurrMoji, they are just displayed on Windows and not available on Linux)
Twemoji (14.0) https://github.com/twitter/twemoji/blob/master/LICENSE-GRAPHICS

Each emoji has been designed by contributors to their respective projects, who remain the original authors of their works.

A huge "thanks" to all contributors of these projects.

Custom Folder Test Icons

The "Custom" folder allows you to add your own PNG/SVG/TTF icons or emojis. The test icons provided in "Custom" are from the following websites. You can remove them from the "Custom" folder and add your own ones.

File type License
SVG Icons: SVGrepo.com SVGrepo Licensing (CC0)
PNG Icons: 3dicons.co 3dicons License (CC0)

UI Icons Credits

Icon Source License
Sleeping Kitty freesvg.org/sleeping-kitty Public Domain
Mono Contrast freesvg.org/mono-contrast Public Domain
Refresh icons8.com/icon/14296/refresh CC BY-SA 4.0

PurrMoji

  • PurrMoji has been released under the GPL 3.0 license. This license only covers the source code of PurrMoji.

About

A cross-platform open-source emoji picker written in Python (using PyQt and Skia libraries) and released under the GPL 3.0 license that allows to display Emojitwo / Noto / OpenMoji / Segoe UI Emoji / Twemoji emojis packages

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages