Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch to devicons/devicon #1691

Draft
wants to merge 9 commits into
base: master
Choose a base branch
from
Draft

Switch to devicons/devicon #1691

wants to merge 9 commits into from

Conversation

Finii
Copy link
Collaborator

@Finii Finii commented Aug 25, 2024

Description

Switch from https://github.com/vorillaz/devicons to https://github.com/devicons/devicon to get more relevant developer icons

Fixes: #615

Requirements / Checklist

  • Read the Contributing Guidelines
  • I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan.
    Issue number where discussion took place: #xxx
  • If this contains a font/glyph add its origin as background info below (e.g. URL)
  • Verified the license of any newly added font, glyph, or glyph set. License is: xxx

What does this Pull Request (PR) do?

  • Change upstream for the Devicons
  • Introduce a codepoint guarantee (as long as icons are not dropped)
  • Create new font from new upstream release with our custom codepoints
  • Also introduces: Glyphs in patched fonts are named after their IDs

How should this be manually tested?

Any background context you can provide?

What are the relevant tickets (if any)?

Fixes: #1693

Screenshots (if appropriate or helpful)

image

For more screenshots see further down

@Finii Finii added this to the v3.3.0 milestone Aug 25, 2024
@Finii
Copy link
Collaborator Author

Finii commented Aug 25, 2024

Here a list of which icons will get an update. and which have been dropped in devicons (they have a -).
There are 95 icons dropped and 103 have updates.

# old name                codepoint      new file
bing_small                E700           -
css_tricks                E701           - !
git                       E702           git/git-plain.svg
bitbucket                 E703           bitbucket/bitbucket-original.svg
mysql                     E704           mysql/mysql-original.svg
streamline                E705           -
database                  E706           - !
dropbox                   E707           - !
github_alt                E708           -
github_badge              E709           github/github-original.svg
github                    E70A           -
wordpress                 E70B           wordpress/wordpress-plain.svg
visualstudio              E70C           visualstudio/visualstudio-plain.svg
jekyll_small              E70D           jekyll/jekyll-plain.svg
android                   E70E           android/android-plain.svg
windows                   E70F           windows8/windows8-original.svg
stackoverflow             E710           stackoverflow/stackoverflow-plain.svg
apple                     E711           apple/apple-original.svg
linux                     E712           linux/linux-plain.svg
appstore                  E713           -
ghost_small               E714           ghost/ghost-original.svg
yahoo                     E715           -
codepen                   E716           codepen/codepen-original.svg
github_full               E717           github/github-original-wordmark.svg
nodejs_small              E718           nodejs/nodejs-plain.svg
nodejs                    E719           nodejs/nodejs-plain-wordmark.svg
hackernews                E71A           - !
ember                     E71B           ember/ember-plain.svg (change from wordmark)
dojo                      E71C           -
django                    E71D           django/django-plain.svg (change from wordmark)
npm                       E71E           npm/npm-original-wordmark.svg
ghost                     E71F           ghost/ghost-original-wordmark.svg
modernizr                 E720           -
unity_small               E721           unity/unity-plain.svg
rasberry_pi               E722           raspberrypi/raspberrypi-plain.svg
blackberry                E723           -
go                        E724           go/go-line.svg
git_branch                E725           - !
git_pull_request          E726           - !
git_merge                 E727           - !
git_compare               E728           - !
git_commit                E729           - !
cssdeck                   E72A           -
yahoo_small               E72B           -
techcrunch                E72C           -
smashing_magazine         E72D           -
netmagazine               E72E           -
codrops                   E72F           -
phonegap                  E730           -
google_drive              E731           - !
html5_multimedia          E732           - ?
html5_device_access       E733           - ?
html5_connectivity        E734           - ?
html5_3d_effects          E735           - ?
html5                     E736           html5/html5-plain.svg
scala                     E737           scala/scala-plain.svg
java                      E738           java/java-plain.svg
ruby                      E739           ruby/ruby-plain.svg
ubuntu                    E73A           ubuntu/ubuntu-plain.svg
ruby_on_rails             E73B           rails/rails-plain.svg
python                    E73C           python/python-plain.svg
php                       E73D           php/php-plain.svg
markdown                  E73E           markdown/markdown-original.svg
laravel                   E73F           laravel/laravel-original.svg
magento                   E740           magento/magento-original.svg
joomla                    E741           -
drupal                    E742           drupal/drupal-plain.svg
chrome                    E743           chrome/chrome-plain.svg
ie                        E744           ie10/ie10-original.svg
firefox                   E745           firefox/firefox-plain.svg
opera                     E746           opera/opera-plain.svg
bootstrap                 E747           bootstrap/bootstrap-plain.svg
safari                    E748           safari/safari-plain.svg
css3                      E749           css3/css3-plain.svg
css3_full                 E74A           css3/css3-plain-wordmark.svg
sass                      E74B           sass/sass-original.svg
grunt                     E74C           grunt/grunt-line.svg
bower                     E74D           bower/bower-line.svg
javascript                E74E           -
javascript_shield         E74F           -
jquery                    E750           jquery/jquery-plain.svg
coffeescript              E751           coffeescript/coffeescript-original.svg
backbone                  E752           backbonejs/backbonejs-plain.svg
angular                   E753           angular/angular-plain.svg
jquery_ui                 E754           -
swift                     E755           swift/swift-plain.svg
symfony                   E756           -
symfony_badge             E757           symfony/symfony-original.svg
less                      E758           less/less-plain-wordmark.svg
stylus                    E759           stylus/stylus-original.svg
trello                    E75A           trello/trello-plain.svg
atlassian                 E75B           -
jira                      E75C           jira/jira-plain.svg
envato                    E75D           -
snap_svg                  E75E           -
raphael                   E75F           -
chart                     E760           -
compass                   E761           -
onedrive                  E762           -
gulp                      E763           gulp/gulp-plain.svg
atom                      E764           atom/atom-original.svg
cisco                     E765           -
nancy                     E766           -
jenkins                   E767           jenkins/jenkins-plain.svg
clojure                   E768           clojure/clojure-line.svg
perl                      E769           perl/perl-plain.svg
clojure_alt               E76A           - ?
celluloid                 E76B           -
w3c                       E76C           -
redis                     E76D           redis/redis-plain.svg
postgresql                E76E           postgresql/postgresql-plain.svg
webplatform               E76F           -
requirejs                 E770           -
opensource                E771           -
typo3                     E772           typo3/typo3-original.svg
uikit                     E773           -
doctrine                  E774           doctrine/doctrine-plain.svg
groovy                    E775           groovy/groovy-plain.svg
nginx                     E776           nginx/nginx-original.svg
haskell                   E777           haskell/haskell-plain.svg
zend                      E778           zend/zend-original.svg
gnu                       E779           -
yeoman                    E77A           -
heroku                    E77B           heroku/heroku-plain.svg
msql_server               E77C           -
debian                    E77D           debian/debian-plain.svg
travis                    E77E           travis/travis-plain.svg
dotnet                    E77F           dot-net/dot-net-plain.svg
codeigniter               E780           codeigniter/codeigniter-plain.svg
javascript_badge          E781           javascript/javascript-plain.svg
yii                       E782           yii/yii-plain.svg
composer                  E783           composer/composer-line.svg
krakenjs_badge            E784           krakenjs/krakenjs-plain.svg
krakenjs                  E785           -
mozilla                   E786           -
firebase                  E787           firebase/firebase-plain.svg
sizzlejs                  E788           -
creativecommons           E789           - ?
creativecommons_badge     E78A           -
mitlicence                E78B           -
senchatouch               E78C           -
bugsense                  E78D           -
extjs                     E78E           -
mootools_badge            E78F           -
mootools                  E790           -
ruby_rough                E791           -
komodo                    E792           -
coda                      E793           -
bintray                   E794           -
terminal                  E795           - ?
code                      E796           - ?
responsive                E797           -
dart                      E798           dart/dart-plain.svg
aptana                    E799           -
mailchimp                 E79A           -
netbeans                  E79B           -
dreamweaver               E79C           dreamweaver/dreamweaver-plain.svg
brackets                  E79D           -
eclipse                   E79E           eclipse/eclipse-plain.svg
cloud9                    E79F           -
scrum                     E7A0           -
prolog                    E7A1           prolog/prolog-plain.svg
terminal_badge            E7A2           - ?
code_badge                E7A3           - ?
mongodb                   E7A4           mongodb/mongodb-plain.svg
meteor                    E7A5           meteor/meteor-plain.svg
meteorfull                E7A6           meteor/meteor-plain-wordmark.svg
fsharp                    E7A7           fsharp/fsharp-plain.svg
rust                      E7A8           rust/rust-original.svg
ionic                     E7A9           ionic/ionic-original.svg
sublime                   E7AA           -
appcelerator              E7AB           appcelerator/appcelerator-original.svg
asterisk                  E7AC           -
aws                       E7AD           amazonwebservices/amazonwebservices-plain-wordmark.svg
digital_ocean             E7AE           digitalocean/digitalocean-original.svg
dlang                     E7AF           - !
docker                    E7B0           docker/docker-plain.svg
erlang                    E7B1           erlang/erlang-plain.svg
google_cloud_platform     E7B2           -
grails                    E7B3           grails/grails-plain.svg
illustrator               E7B4           illustrator/illustrator-plain.svg
intellij                  E7B5           intellij/intellij-plain.svg
materializecss            E7B6           materializecss/materializecss-plain.svg
openshift                 E7B7           -
photoshop                 E7B8           photoshop/photoshop-plain.svg
rackspace                 E7B9           -
react                     E7BA           react/react-original.svg
redhat                    E7BB           redhat/redhat-plain.svg
scriptcs                  E7BC           -
-                         E7BD           -
-                         E7BE           -
-                         E7BF           -
-                         E7C0           -
-                         E7C1           -
-                         E7C2           -
-                         E7C3           -
sqllite                   E7C4           sqlite/sqlite-plain.svg
vim                       E7C5           vim/vim-plain.svg

I marked some with a - ! where I think it could be good to still keep the old/dropped icon because people might miss it.
Marked with - ? when I'm not sure if that should be a - !.

@Finii Finii changed the title Switch to devisons/devicon Switch to devicons/devicon Aug 25, 2024
[why]
sqlite is referred to as sqllite (with two L).

[how]
Correct i_dev and rebuild css and glyphnames via generate-css.sh

Signed-off-by: Fini Jastrow <[email protected]>
[why]
The glyphnames in the font files are sometimes off. We take them from
the symbol source/font and ofter they are empty or even plain wrong (esp
if we move to other codepoints).

[how]
We have the list of all glyphnames that is generated by collecting all
data from the i_*.sh files. When patching we take this information now
and use it if appropriate.

Make sure the glyphname.json file is included in our zip patcher release
and also in the Docker image. It will run as before if the file can not
be found or is invalid etc.

Suggested-by: Ulices <[email protected]>
Signed-off-by: Fini Jastrow <[email protected]>
@Finii
Copy link
Collaborator Author

Finii commented Aug 27, 2024

Here a visual of which icons got dropped upstream (i.e. were in Vorillaz but are not in Devicons/Devicon) marked with blue, and the existing icons updated to Devicons/Devicon.

image

Dropped icons often are in another set, so the impact is not too bad (e.g. Dropbox, Hackernews, ...)
The other dropped icons are presumably not important nowadays or dead. 🤞

All the vacant codepoints are now used to fill in new icons; so that we have no gaps and still all icons of Devicons v2.16.0:

Side by side:

image

And all:

image

Some svgs taken from Devicons/Devicon had a problem, that I fixed, and also added a non-wordmark awk icon that is used (Devicons has only wordmark icons for awk):

image

As I write this I already notice some more problems that I will fix and force-push away soon.

Ping to @Snailedlt, discussions if needed can be better done here

This adds the current mapping file (which has been hand-crafted) and the
scripts to update the Devicons.

This also fixes Vorillaz' typo 'rasberry_pi' -> 'raspberry_pi'.

Signed-off-by: Fini Jastrow <[email protected]>
@Snailedlt
Copy link

Great work!
If you want any of the icons to be fixed upstream (a.k.a in the devicons repo), feel free to make issues or PRs there and tag me in them. I'll prioritize those over others

@Finii
Copy link
Collaborator Author

Finii commented Sep 5, 2024

Backport improved fixed icons from PRs in devicons/devicon; force push.

@Finii
Copy link
Collaborator Author

Finii commented Sep 5, 2024

List of dropped icons, their codepoints are reused for new icons.
Amount: 88 icons
No replacement suggestion: 48

image

codepoint name comment used by default of
E700 bing_small use md F00A4
E701 css_tricks use fa F069
E705 streamline use oct F472
E708 github_alt use fa F113
E70A github 🔴, use fa F113
E713 appstore use fa F0BD
E715 yahoo 🔴, use fa F19E
E71A hackernews use fa F1D4
E71C dojo 🔴
E720 modernizr 🔴
E723 blackberry use fa F117
E72A cssdeck 🔴
E72B yahoo_small use fa F19E
E72C techcrunch 🔴
E72E netmagazine use md F0AAE
E72F codrops 🔴, maybe use one of the 'drops'
E730 phonegap 🔴
E731 google_drive use fa F2DF
E732 html5_multimedia 🔴
E733 html5_device_access 🔴
E734 html5_connectivity 🔴
E735 html5_3d_effects 🔴
E741 joomla use fa F1AA
E74F javascript_shield 🔴
E754 jquery_ui 🔴
E756 symfony no replacement, maybe use dev E757
E75B atlassian updated icon use fa EF32
E75D envato 🔴
E75E snap_svg 🔴
E75F raphael 🔴
E760 chart numerous similar ones
E761 compass 🔴
E762 onedrive use md F03CA
E765 cisco 🔴
E766 nancy 🔴
E76B celluloid 🔴
E76C w3c use fae E212
E76F webplatform 🔴
E771 opensource use logos F36C
E773 uikit use fa ED32
E77A yeoman 🔴
E77C msql_server 🔴
E785 krakenjs use dev E784
E788 sizzlejs 🔴
E789 creativecommons use fa F25E
E78A creativecommons_badge 🔴
E78B mitlicence 🔴
E78C senchatouch 🔴
E78D bugsense 🔴
E78E extjs 🔴
E790 mootools 🔴
E792 komodo 🔴
E793 coda 🔴, use some other leaf
E794 bintray 🔴
E796 code use fa F121
E797 responsive use md F045E
E799 aptana 🔴, maybe use fa F013
E79A mailchimp use fa EE67
E79B netbeans use md F01A7
E79D brackets use md F016A
E79F cloud9 🔴, use some cloud
E7A0 scrum 🔴
E7A2 terminal_badge use fa F120
E7A3 code_badge use cod EAE9
E7AC asterisk 🔴
E7B2 google_cloud_platform 🔴
E7B7 openshift 🔴
E7B9 rackspace 🔴
E7BC scriptcs 🔴
E7BD - 🔴
E7BE - 🔴
E7BF - 🔴
E7C0 - 🔴
E7C1 - 🔴
E7C2 - 🔴
E7C3 - 🔴

Not dropped

codepoint name comment used by default of
E706 database use fa F1C0 nvim-devicons, eza, lazygit, vim-devicons
E707 dropbox use fa F16B nvim-devicons, lazygit, vim-devicons
E72D smashing_magazine 🔴 powerlevel10k
E74E javascript use seti E60C eza, lazygit, exa
E76A clojure_alt use seti E642 nvim-devicons, eza, lazygit, vim-devicons, exa
E770 requirejs 🔴 vim-devicons
E779 gnu maybe use logos F325 nvim-devicons, lazygit, exa, powerlevel10k
E786 mozilla 🔴 devicons
E78F mootools_badge 🔴 vim-devicons
E791 ruby_rough use md F0D2D nvim-devicons, lazygit, vim-devicoins
E795 terminal use oct F489 nvim-devicons, lazygit, vim-devicons
E7AA sublime use seti E696 nvim-devicons, eza, lazygit

@hasecilu
Copy link
Contributor

hasecilu commented Sep 5, 2024

This looks amazing, great job!

Just few notes:

  • E771 opensource -> you can use  nf_linux_osi at F36C
  • E779 gnu -> even though it could be a good fit on font linux, already is a "popular" glyph that is widely used on lot of places for example lazygit, nvim-web-devicons (Vim/Neovim), powerlevel10k, eza, etc. I can already see some people opening issues because the glyph is not there. Search on GitHub. So, I would recommend to include it again on devicons repo in order to not change the used codepoint. @Snailedlt, do you think it's a good fit on devicons?

@Finii
Copy link
Collaborator Author

Finii commented Sep 6, 2024

Thanks a lot @hasecilu !!

* `E771` _opensource_

Ah, thank you!

* `E779` _gnu_

[...]
is a "popular" glyph that is widely used on lot of places

I guess instead of adding it (back) to devicons/devicons I can just keep it, as the other few I already identified as 'must be kept' in the https://github.com/ryanoasis/nerd-fonts/tree/feature/update-devicons/src/glyphs/devicons/vorillaz directory (i.e. some git and dlang).
If you have any more we should keep, just tell me :-)

I change the entries in the table above.

@Finii
Copy link
Collaborator Author

Finii commented Sep 6, 2024

Made this small script to create a nice regex and will git grep the repos you mentioned...

#!/usr/bin/bash

ICONS=( E700 E701 E705 E706 E707 E708 E70A E713 E715 E71A E71C E720 E723 E72A E72B E72C E72D E72E E72F E730 E731 E732 E733 E734 E735 E741 E74E E74F E754 E756 E75B E75D E75E E75F E760 E761 E762 E765 E766 E76A E76B E76C E76F E770 E771 E773 E779 E77A E77C E785 E786 E788 E789 E78A E78B E78C E78D E78E E78F E790 E791 E792 E793 E794 E795 E796 E797 E799 E79A E79B E79D E79F E7A0 E7A2 E7A3 E7AA E7AC E7B2 E7B7 E7B9 E7BC E7BD E7BE E7BF E7C0 E7C1 E7C2 E7C3)

printf "["
for i in "${ICONS[@]}"; do
    printf "\u${i}"
done
printf "]"

for i in "${ICONS[@]}"; do
    j=$(echo "${i}" | tr '[:upper:]' '[:lower:]')
    printf "\\|%s\\|%s" "${i}" "${j}"
done

Above: regex.sh

image

Of course there are false positives etc, but I will collect some more data on which icons are used by default!

image

git grep "$(../regex.sh)" |  sed "s/.*\($(../regex.sh)\).*/\1/" | LC_ALL=C sort | uniq
nvim-web-devicons:
e706 e707 e76a e779 e786 e791 e795 e7aa

eza:
e706 e74e e76a e7aa

lazygit:
e706 e707 e74e e76a e779 e791 e795 e7aa

powerlevel10k:
e72d e779

vim-webdevicons:
e706 e707 e76a e770 e78f e791 e795

exa:
e74e e76a e779

ohmyzsh:
none

@Finii
Copy link
Collaborator Author

Finii commented Sep 6, 2024

@hasecilu

Thanks again for the valuable comment 💚

I guess I will just keep all the icons that I found in some default config.
Maybe you have more ideas for repos to examine?

In some moments I think maybe we should not drop any icon and just update and add new ones.
Although some are really really obsolete 😬

@Finii
Copy link
Collaborator Author

Finii commented Sep 6, 2024

image

image

Force push.

[why]
Some icons that have been dropped from devicons are in wide use and so
we want to keep those at their old codepoints.

The Vorillaz dropbox logo is very old. As the icons we keep from
Vorillaz will not be maintained by any upstream we have the
responsibility to keep it up to date.

[how]
Put the icons in the appropriate folder; icon files taken out of
vorillaz/devicons `!SVG/` directory.

Adapt rules and mapping.

The Dropbox icon has been hand-modified (simplified) with the original
logo as starting point.

Signed-off-by: Fini Jastrow <[email protected]>
[how]

    $ ./analyze
    Found 198 mapping entries and 473 devicon directories
    # SVG change: code: E602 name: git, old: vorillaz/git.svg, new: git/git-plain.svg
    # SVG change: code: E603 name: bitbucket, old: vorillaz/bitbucket.svg, new: bitbucket/bitbucket-original.svg
    # SVG change: code: E604 name: mysql, old: vorillaz/mysql.svg, new: mysql/mysql-original.svg
    # SVG change: code: E609 name: github_badge, old: vorillaz/github_badge.svg, new: github/github-original.svg
    # SVG change: code: E60B name: wordpress, old: vorillaz/wordpress.svg, new: wordpress/wordpress-plain.svg
    # SVG change: code: E60C name: visualstudio, old: vorillaz/visualstudio.svg, new: visualstudio/visualstudio-plain.svg
    # SVG change: code: E60D name: jekyll, old: vorillaz/jekyll_small.svg, new: jekyll/jekyll-plain.svg
    # SVG change: code: E60E name: android, old: vorillaz/android.svg, new: android/android-plain.svg
    # SVG change: code: E60F name: windows, old: vorillaz/windows.svg, new: windows8/windows8-original.svg
    # SVG change: code: E610 name: stackoverflow, old: vorillaz/stackoverflow.svg, new: stackoverflow/stackoverflow-plain.svg
    # SVG change: code: E611 name: apple, old: vorillaz/apple.svg, new: apple/apple-original.svg
    # SVG change: code: E612 name: linux, old: vorillaz/linux.svg, new: linux/linux-plain.svg
    # SVG change: code: E614 name: ghost_small, old: vorillaz/ghost_small.svg, new: ghost/ghost-original.svg
    # SVG change: code: E616 name: codepen, old: vorillaz/codepen.svg, new: codepen/codepen-original.svg
    # SVG change: code: E617 name: github_full, old: vorillaz/github_full.svg, new: github/github-original-wordmark.svg
    # SVG change: code: E618 name: nodejs_small, old: vorillaz/nodejs_small.svg, new: nodejs/nodejs-plain.svg
    # SVG change: code: E619 name: nodejs, old: vorillaz/nodejs.svg, new: nodejs/nodejs-plain-wordmark.svg
    # SVG change: code: E61B name: ember, old: vorillaz/ember.svg, new: ember/ember-plain.svg
    # SVG change: code: E61D name: django, old: vorillaz/django.svg, new: django/django-plain.svg
    # SVG change: code: E61E name: npm, old: vorillaz/npm.svg, new: npm/npm-original-wordmark.svg
    # SVG change: code: E61F name: ghost, old: vorillaz/ghost.svg, new: ghost/ghost-original-wordmark.svg
    # SVG change: code: E621 name: unity, old: vorillaz/unity_small.svg, new: unity/unity-plain.svg
    # SVG change: code: E622 name: raspberry_pi, old: vorillaz/rasberry_pi.svg, new: raspberrypi/raspberrypi-plain.svg
    # SVG change: code: E624 name: go, old: vorillaz/go.svg, new: go/go-line.svg
    # SVG change: code: E636 name: html5, old: vorillaz/html5.svg, new: html5/html5-plain.svg
    # SVG change: code: E637 name: scala, old: vorillaz/scala.svg, new: scala/scala-plain.svg
    # SVG change: code: E638 name: java, old: vorillaz/java.svg, new: java/java-plain.svg
    # SVG change: code: E639 name: ruby, old: vorillaz/ruby.svg, new: ruby/ruby-plain.svg
    # SVG change: code: E63A name: ubuntu, old: vorillaz/ubuntu.svg, new: ubuntu/ubuntu-plain.svg
    # SVG change: code: E63B name: rails, old: vorillaz/ruby_on_rails.svg, new: rails/rails-plain.svg
    # SVG change: code: E63C name: python, old: vorillaz/python.svg, new: python/python-plain.svg
    # SVG change: code: E63D name: php, old: vorillaz/php.svg, new: php/php-plain.svg
    # SVG change: code: E63E name: markdown, old: vorillaz/markdown.svg, new: markdown/markdown-original.svg
    # SVG change: code: E63F name: laravel, old: vorillaz/laravel.svg, new: laravel/laravel-original.svg
    # SVG change: code: E640 name: magento, old: vorillaz/magento.svg, new: magento/magento-original.svg
    # SVG change: code: E642 name: drupal, old: vorillaz/drupal.svg, new: drupal/drupal-plain.svg
    # SVG change: code: E643 name: chrome, old: vorillaz/chrome.svg, new: chrome/chrome-plain.svg
    # SVG change: code: E644 name: ie, old: vorillaz/ie.svg, new: ie10/ie10-original.svg
    # SVG change: code: E645 name: firefox, old: vorillaz/firefox.svg, new: firefox/firefox-plain.svg
    # SVG change: code: E646 name: opera, old: vorillaz/opera.svg, new: opera/opera-plain.svg
    # SVG change: code: E647 name: bootstrap, old: vorillaz/bootstrap.svg, new: bootstrap/bootstrap-plain.svg
    # SVG change: code: E648 name: safari, old: vorillaz/safari.svg, new: safari/safari-plain.svg
    # SVG change: code: E649 name: css3, old: vorillaz/css3.svg, new: css3/css3-plain.svg
    # SVG change: code: E64A name: css3_full, old: vorillaz/css3_full.svg, new: css3/css3-plain-wordmark.svg
    # SVG change: code: E64B name: sass, old: vorillaz/sass.svg, new: sass/sass-original.svg
    # SVG change: code: E64C name: grunt, old: vorillaz/grunt.svg, new: grunt/grunt-line.svg
    # SVG change: code: E64D name: bower, old: vorillaz/bower.svg, new: bower/bower-line.svg
    # SVG change: code: E650 name: jquery, old: vorillaz/jquery.svg, new: jquery/jquery-plain.svg
    # SVG change: code: E651 name: coffeescript, old: vorillaz/coffeescript.svg, new: coffeescript/coffeescript-original.svg
    # SVG change: code: E652 name: backbonejs, old: vorillaz/backbone.svg, new: backbonejs/backbonejs-plain.svg
    # SVG change: code: E653 name: angular, old: vorillaz/angular.svg, new: angular/angular-plain.svg
    # SVG change: code: E655 name: swift, old: vorillaz/swift.svg, new: swift/swift-plain.svg
    # SVG change: code: E657 name: symfony_badge, old: vorillaz/symfony_badge.svg, new: symfony/symfony-original.svg
    # SVG change: code: E658 name: less, old: vorillaz/less.svg, new: less/less-plain-wordmark.svg
    # SVG change: code: E659 name: stylus, old: vorillaz/stylus.svg, new: stylus/stylus-original.svg
    # SVG change: code: E65A name: trello, old: vorillaz/trello.svg, new: trello/trello-plain.svg
    # SVG change: code: E65C name: jira, old: vorillaz/jira.svg, new: jira/jira-plain.svg
    # SVG change: code: E663 name: gulp, old: vorillaz/gulp.svg, new: gulp/gulp-plain.svg
    # SVG change: code: E664 name: atom, old: vorillaz/atom.svg, new: atom/atom-original.svg
    # SVG change: code: E667 name: jenkins, old: vorillaz/jenkins.svg, new: jenkins/jenkins-line.svg
    # SVG change: code: E668 name: clojure, old: vorillaz/clojure.svg, new: clojure/clojure-line.svg
    # SVG change: code: E669 name: perl, old: vorillaz/perl.svg, new: perl/perl-plain.svg
    # SVG change: code: E66D name: redis, old: vorillaz/redis.svg, new: redis/redis-plain.svg
    # SVG change: code: E66E name: postgresql, old: vorillaz/postgresql.svg, new: postgresql/postgresql-plain.svg
    # SVG change: code: E672 name: typo3, old: vorillaz/typo3.svg, new: typo3/typo3-original.svg
    # SVG change: code: E674 name: doctrine, old: vorillaz/doctrine.svg, new: doctrine/doctrine-plain.svg
    # SVG change: code: E675 name: groovy, old: vorillaz/groovy.svg, new: groovy/groovy-plain.svg
    # SVG change: code: E676 name: nginx, old: vorillaz/nginx.svg, new: nginx/nginx-original.svg
    # SVG change: code: E677 name: haskell, old: vorillaz/haskell.svg, new: haskell/haskell-plain.svg
    # SVG change: code: E678 name: zend, old: vorillaz/zend.svg, new: zend/zend-original.svg
    # SVG change: code: E67B name: heroku, old: vorillaz/heroku.svg, new: heroku/heroku-plain.svg
    # SVG change: code: E67D name: debian, old: vorillaz/debian.svg, new: debian/debian-plain.svg
    # SVG change: code: E67E name: travis, old: vorillaz/travis.svg, new: travis/travis-plain.svg
    # SVG change: code: E67F name: dotnet, old: vorillaz/dotnet.svg, new: dot-net/dot-net-plain.svg
    # SVG change: code: E680 name: codeigniter, old: vorillaz/codeigniter.svg, new: codeigniter/codeigniter-plain.svg
    # SVG change: code: E681 name: javascript_badge, old: vorillaz/javascript_badge.svg, new: javascript/javascript-plain.svg
    # SVG change: code: E682 name: yii, old: vorillaz/yii.svg, new: yii/yii-plain.svg
    # SVG change: code: E683 name: composer, old: vorillaz/composer.svg, new: composer/composer-line.svg
    # SVG change: code: E684 name: krakenjs_badge, old: vorillaz/krakenjs_badge.svg, new: krakenjs/krakenjs-plain.svg
    # SVG change: code: E687 name: firebase, old: vorillaz/firebase.svg, new: firebase/firebase-plain.svg
    # SVG change: code: E698 name: dart, old: vorillaz/dart.svg, new: dart/dart-plain.svg
    # SVG change: code: E69C name: dreamweaver, old: vorillaz/dreamweaver.svg, new: dreamweaver/dreamweaver-plain.svg
    # SVG change: code: E69E name: eclipse, old: vorillaz/eclipse.svg, new: eclipse/eclipse-plain.svg
    # SVG change: code: E6A1 name: prolog, old: vorillaz/prolog.svg, new: prolog/prolog-plain.svg
    # SVG change: code: E6A4 name: mongodb, old: vorillaz/mongodb.svg, new: mongodb/mongodb-plain.svg
    # SVG change: code: E6A5 name: meteor, old: vorillaz/meteor.svg, new: meteor/meteor-plain.svg
    # SVG change: code: E6A6 name: meteorfull, old: vorillaz/meteorfull.svg, new: meteor/meteor-plain-wordmark.svg
    # SVG change: code: E6A7 name: fsharp, old: vorillaz/fsharp.svg, new: fsharp/fsharp-plain.svg
    # SVG change: code: E6A8 name: rust, old: vorillaz/rust.svg, new: rust/rust-original.svg
    # SVG change: code: E6A9 name: ionic, old: vorillaz/ionic.svg, new: ionic/ionic-original.svg
    # SVG change: code: E6AB name: appcelerator, old: vorillaz/appcelerator.svg, new: appcelerator/appcelerator-original.svg
    # SVG change: code: E6AD name: amazonwebservices, old: vorillaz/aws.svg, new: amazonwebservices/amazonwebservices-plain-wordmark.svg
    # SVG change: code: E6AE name: digitalocean, old: vorillaz/digital_ocean.svg, new: digitalocean/digitalocean-original.svg
    # SVG change: code: E6B0 name: docker, old: vorillaz/docker.svg, new: docker/docker-plain.svg
    # SVG change: code: E6B1 name: erlang, old: vorillaz/erlang.svg, new: erlang/erlang-plain.svg
    # SVG change: code: E6B3 name: grails, old: vorillaz/grails.svg, new: grails/grails-plain.svg
    # SVG change: code: E6B4 name: illustrator, old: vorillaz/illustrator.svg, new: illustrator/illustrator-plain.svg
    # SVG change: code: E6B5 name: intellij, old: vorillaz/intellij.svg, new: intellij/intellij-plain.svg
    # SVG change: code: E6B6 name: materializecss, old: vorillaz/materializecss.svg, new: materializecss/materializecss-plain.svg
    # SVG change: code: E6B8 name: photoshop, old: vorillaz/photoshop.svg, new: photoshop/photoshop-plain.svg
    # SVG change: code: E6BA name: react, old: vorillaz/react.svg, new: react/react-original.svg
    # SVG change: code: E6BB name: redhat, old: vorillaz/redhat.svg, new: redhat/redhat-plain.svg
    # SVG change: code: E6C4 name: sqlite, old: vorillaz/sqllite.svg, new: sqlite/sqlite-plain.svg
    # SVG change: code: E6C5 name: vim, old: vorillaz/vim.svg, new: vim/vim-plain.svg

    # Icon dropped: code: E600 name: bing_small
    # Icon dropped: code: E601 name: css_tricks
    # Icon dropped: code: E605 name: streamline
    # Icon dropped: code: E608 name: github_alt
    # Icon dropped: code: E60A name: github
    # Icon dropped: code: E613 name: appstore
    # Icon dropped: code: E615 name: yahoo
    # Icon dropped: code: E61A name: hackernews
    # Icon dropped: code: E61C name: dojo
    # Icon dropped: code: E620 name: modernizr
    # Icon dropped: code: E623 name: blackberry
    # Icon dropped: code: E62A name: cssdeck
    # Icon dropped: code: E62B name: yahoo_small
    # Icon dropped: code: E62C name: techcrunch
    # Icon dropped: code: E62E name: netmagazine
    # Icon dropped: code: E62F name: codrops
    # Icon dropped: code: E630 name: phonegap
    # Icon dropped: code: E631 name: google_drive
    # Icon dropped: code: E632 name: html5_multimedia
    # Icon dropped: code: E633 name: html5_device_access
    # Icon dropped: code: E634 name: html5_connectivity
    # Icon dropped: code: E635 name: html5_3d_effects
    # Icon dropped: code: E641 name: joomla
    # Icon dropped: code: E64F name: javascript_shield
    # Icon dropped: code: E654 name: jquery_ui
    # Icon dropped: code: E656 name: symfony
    # Icon dropped: code: E65B name: atlassian
    # Icon dropped: code: E65D name: envato
    # Icon dropped: code: E65E name: snap_svg
    # Icon dropped: code: E65F name: raphael
    # Icon dropped: code: E660 name: chart
    # Icon dropped: code: E661 name: compass
    # Icon dropped: code: E662 name: onedrive
    # Icon dropped: code: E665 name: cisco
    # Icon dropped: code: E666 name: nancy
    # Icon dropped: code: E66B name: celluloid
    # Icon dropped: code: E66C name: w3c
    # Icon dropped: code: E66F name: webplatform
    # Icon dropped: code: E671 name: opensource
    # Icon dropped: code: E673 name: uikit
    # Icon dropped: code: E67A name: yeoman
    # Icon dropped: code: E67C name: msql_server
    # Icon dropped: code: E685 name: krakenjs
    # Icon dropped: code: E688 name: sizzlejs
    # Icon dropped: code: E689 name: creativecommons
    # Icon dropped: code: E68A name: creativecommons_badge
    # Icon dropped: code: E68B name: mitlicence
    # Icon dropped: code: E68C name: senchatouch
    # Icon dropped: code: E68D name: bugsense
    # Icon dropped: code: E68E name: extjs
    # Icon dropped: code: E690 name: mootools
    # Icon dropped: code: E692 name: komodo
    # Icon dropped: code: E693 name: coda
    # Icon dropped: code: E694 name: bintray
    # Icon dropped: code: E696 name: code
    # Icon dropped: code: E697 name: responsive
    # Icon dropped: code: E699 name: aptana
    # Icon dropped: code: E69A name: mailchimp
    # Icon dropped: code: E69B name: netbeans
    # Icon dropped: code: E69D name: brackets
    # Icon dropped: code: E69F name: cloud9
    # Icon dropped: code: E6A0 name: scrum
    # Icon dropped: code: E6A2 name: terminal_badge
    # Icon dropped: code: E6A3 name: code_badge
    # Icon dropped: code: E6AC name: asterisk
    # Icon dropped: code: E6B2 name: google_cloud_platform
    # Icon dropped: code: E6B7 name: openshift
    # Icon dropped: code: E6B9 name: rackspace
    # Icon dropped: code: E6BC name: scriptcs
    # Icon dropped: code: E6BD name: -
    # Icon dropped: code: E6BE name: -
    # Icon dropped: code: E6BF name: -
    # Icon dropped: code: E6C0 name: -
    # Icon dropped: code: E6C1 name: -
    # Icon dropped: code: E6C2 name: -
    # Icon dropped: code: E6C3 name: -

    Generated new mapping with 496 entries

Signed-off-by: Fini Jastrow <[email protected]>
@Finii
Copy link
Collaborator Author

Finii commented Sep 6, 2024

As the old Vorillaz icons are unsupported, checked all those (that we keep) and only dropbox needs an update:

image

Force push.

@Finii
Copy link
Collaborator Author

Finii commented Sep 6, 2024

Current set of to-be-dropped icons

image

Compare with #1691 (comment)

[why]
Some entries are only needed to adapt the Vorillaz Devicons to the
Devicons Devicon. After the mapping file has been adapted we can remove
them to clean up for coming updates.

Signed-off-by: Fini Jastrow <[email protected]>
[why]
The fixed icons have been improved and suggested as fixes upstream.
The improvements were missing here.

Signed-off-by: Fini Jastrow <[email protected]>
    $ ./generate
    Program root: /usr

    Reading mapping file
    Found 496 entries

    Unpacking Devicons archive

    Mixing Vorillaz Devicons and possible fixes in
    Found 1688 svgs
    Bad RGB color spec: rgb(0%,0%,0%)
    Bad RGB color spec: rgb(0%,0%,0%)
    Bad RGB color spec: rgb(0%,0%,0%)
    Bad RGB color spec: rgb(0%,0%,0%)
    Using fixed svg for angularjs-plain.svg
    Using fixed svg for awk-plain.svg
    Bad RGB color spec: rgb(0%,0%,0%)
    Using fixed svg for bash-plain.svg
    Bad RGB color spec: rgb(25.882353%,12.156863%,37.254902%)
    Using fixed svg for llvm-plain.svg
    Bad RGB color spec: rgb(9.411765%,71.372549%,96.470588%)
    Generating devicons.ttf with 496 glyphs
    Generating GlyphInfo i_dev.sh
    Finished

Signed-off-by: Fini Jastrow <[email protected]>
@hasecilu
Copy link
Contributor

hasecilu commented Sep 6, 2024

git grep "$(../regex.sh)" | sed "s/.*\($(../regex.sh)\).*/\1/" | LC_ALL=C sort | uniq

On lsd:
e74e e76a e779 e786 e795 e7aa

The only icon that don't have a replacement is mozilla but it seems is very outdated, here is new mozilla branding, on mozilla community seems to be some references to old logo, should the glyph be updated to have the m logo?

Click here to show/hide pictures

image
image

@Finii
Copy link
Collaborator Author

Finii commented Sep 7, 2024

Thanks for digging deeper!

12 not dropped anymore icons:
E706 E707 E72D E74E E76A E770 E779 E786 E78F E791 E795 E7AA

I think all of lsd's icons are covered. 👍

Regarding Mozilla E786, it is used by nvim-devicons and lsd, lets check the purpose.

  • .xpi (nvim-devicons) Mozilla Cross Platform Install
  • .mozilla (lsd)

These both look like - if they are still relevant which I am not sure - can live with an icon update.
I just thought the dinosaur is possibly used for something unrelated.
While I had no problem updating the dropbox logo I'm not so sure here.

@Finii Finii mentioned this pull request Oct 17, 2024
2 tasks
@hasecilu
Copy link
Contributor

hasecilu commented Oct 28, 2024

I noticed the nginx current logo is not easy to identify on the terminal so I made a little PR to devicon with their "favicon" version: devicons/devicon#2291

2024-10-28-110547_hyprshot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants