cspeterson / splatmoji

Quickly look up and input emoji and/or emoticons/kaomoji on your GNU/Linux desktop via pop-up menu.
MIT License
212 stars 19 forks source link

Support for additional databases #27

Open iFreilicht opened 4 years ago

iFreilicht commented 4 years ago

Alright, let's have another look at this.

So far, we've had discussions on this in #16, #17 and #18.

Our goal is to create a standardised process for adding community-contributed databases to splatmoji. The new directory-based format lends itself well to expansion and community-created translations, so the basis is pretty good already.

I saw that Splatmoji now includes additional databases from ~/.local/share/splatmoji/data (and other places) in the same format that the default databases already use. This now gives us two options, essentially:

  1. Add new databases in this original repo
  2. Have community-databases in a separate repo

With the current size of the emoji-database alone being 29MB, and contributed databases (which are English only) taking up a fraction of that space, I see little purpose in separating the community contributions out, unless we start talking about separating all data out to give users more control.

Separating data out makes the whole thing quite a bit more complicated, and as this tool is still relatively niche, I don't think it's worth the effort.

What may be useful at some point is making the current --disable-* options more generic, so that you have all databases active by default, and can use --disable emoticon,nerdfont, for example, to disable certain databases you don't want.

An alternative approach may be to follow QMK, which contains thousands of community-contributed keyboard layouts. They use default and community sub-directories to differentiate, but I don't think this is necessary at the current scale of this project.

iFreilicht commented 4 years ago

As the alternative: When having the community-databases in a separate repo, it should have the same data and importer directories. Users could clone it directly to ~/.local/share/splatmoji/data and it could be packaged to be installed to /usr/local/share, if desired.