Code Monkey home page Code Monkey logo

catmoji's Introduction

Catmoji

Latest Release Discord

preview

Catmoji is a project to create a COLR/CPAL-based color OpenType font from the Twemoji collection of emoji images while overriding default face emojis with cat edits.

Note that the resulting font will only be useful on systems that support layered color TrueType fonts; this includes Windows 8.1 and later, as well as Mozilla Firefox and other Gecko-based applications running on any platform.

Systems that do not support such color fonts will show blank glyphs if they try to use this font.

Getting started

This project makes use of grunt-webfont and an additional node.js script. Therefore, installation of Node.js (Node.js 17 is recommended) (and its package manager npm) is a prerequisite. Grunt will be installed as a package dependency โ€” no need to install it globally.

The necessary tools can be installed via npm:

# install dependencies from packages.json, including `grunt-webfont`.
npm install

The build process also requires fontforge and the TTX script from the font-tools package to be installed, and assumes standard Perl and Python are available.

Both FontForge and font-tools can be installed via package managers on Linux:

# Ubuntu, for example
sudo apt-get install fonttools fontforge python3-fontforge python3-distutils

Building the font

Once the necessary build tools are all in place, simply running:

make

should build the color-emoji font build/Catmoji.ttf from the source SVG files found in twe-svg.zip file and extras, overrides directories.

Example of usage in Mozilla Firefox

Copy Catmoji.ttf from build directory to ~/.local/share/fonts/

In your terminal emulator run:

fc-cache -f -v

Restart Mozilla Firefox if you had it open during fc-cache.

Visit about:config and find "font.name-list.emoji"

Replace its value with "Catmoji".

Example of usage in Android (root access required)

(Systemless, recommended) Download Magisk module from releases and install it with Magisk Manager.

(/system method, not recommended) Download .ttf file from releases and replace /system/fonts/NotoColorEmoji.ttf or /system/fonts/SamsungColorEmoji.ttf with Catmoji depending what ROM you have.

After replacing font file or installing Magisk module, reboot and Catmoji will be seen instead of regular emojis.

Installing Catmoji systemwide on Debian based distributions

Download Noto font release and put Catmoji .ttf file into /usr/share/fonts/.

Open /etc/fonts/conf.d/45-generic.conf file with your preferred text editor and above list of emoji fonts add

<alias binding="same">
        <family>Twemoji</family> <!-- Catmoji -->
        <default><family>emoji</family></default>
</alias>

Now open /etc/fonts/conf.d/60-generic.conf file with your preferred text editor and above list of emoji fonts add

<family>Twemoji</family>

catmoji's People

Contributors

jfkthame avatar kwanesq avatar mozilla-github-standards avatar surfaceflinger avatar thaqalayn avatar theessem avatar timdream 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

Watchers

 avatar  avatar

catmoji's Issues

Catmoji crashes telegram-desktop

telegram-desktop will sometimes crash if Catmoji is being forced with fontconfig.
strace output:

openat(AT_FDCWD, "/home/nat/.local/share/fonts/Catmoji.ttf", O_RDONLY) = 38
fcntl(38, F_SETFD, FD_CLOEXEC)          = 0
fstat(38, {st_mode=S_IFREG|0644, st_size=1404132, ...}) = 0
mmap(NULL, 1404132, PROT_READ, MAP_PRIVATE, 38, 0) = 0x7f84e828c000
close(38)                               = 0
brk(0x55a9b340b000)                     = 0x55a9b340b000
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7ffe4a37d000} ---
+++ killed by SIGSEGV +++

Invalid Font File

Neither Windows nor FontForge will load the .ttf File. They both say that the Font is corrupted and cannot be loaded.

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.