Repository: lsd-rs/lsd (language: rust)

Issue:
Some of my icons are wrong
Some of my icons are wrong, and I'm not sure if lsd is mapping incorrectly, or if my patched font has something off (sorry, I'm not sure how to troubleshoot further).

FWIW, most icons work fine (directories, python files, plain files, markdown, images, tarballs). The ones described below are the only exceptions I've found so far.

Screenshot:
![2020-04-21T10:29:51,727920152+02:00](https://user-images.githubusercontent.com/730811/79843828-0e48da80-83bb-11ea-8d06-36cefaa3e95d.png)

Copy-paste (so you know exactly which unicode points `lsd` is showing):
```
➜ lsd docker-compose.yml poetry.lock uwsgi.ini
  docker-compose.yml    poetry.lock    uwsgi.ini
```

The middle one is obviously broken.
The other two just don't match (OpenSUSE icon for docker, and Windows 10 logo for a config file).

I'm using Operator Mono, patched with nerd fonts.


Discussion / hints:
Did a bit more digging around this. I'd gotten my patched fonts from [this repository](https://github.com/piq9117/operator-mono-nerdfont)(note: paid license needed for it!), but it seems to have some glyphs wrong.

Checking with [Nerd Font's cheat sheet](https://www.nerdfonts.com/cheat-sheet), I've confirmed that the above code-points correspond to:

f308: docker
e21e: ruby
f178: right-arrow

So the first one is fine, but the other two seem wrong:
- `poetry.lock` is a python-specific lockfile
- `uwsgi.ini` is also a python-specific config file

Not sure if icons are based on full filename or just the extension -- if it's just the extension, then maybe something more generic is applicable.

I can try and see if I can work up a PR improving this if you thing it makes sense.

Fix patch:
diff --git a/src/icon.rs b/src/icon.rs
index 43e71da4e..3e5fa4d43 100644
--- a/src/icon.rs
+++ b/src/icon.rs
@@ -150,8 +150,6 @@ impl Icons {
         m.insert("node_modules", "\u{e718}"); // ""
         m.insert("npmignore", "\u{e71e}"); // ""
         m.insert("rubydoc", "\u{e73b}"); // ""
-        m.insert("yarn.lock", "\u{e718}"); // ""
-        m.insert("Cargo.lock", "\u{e7a8}"); // ""
 
         m
     }
@@ -235,7 +233,7 @@ impl Icons {
         m.insert("ico", "\u{f1c5}"); // ""
         m.insert("image", "\u{f1c5}"); // ""
         m.insert("iml", "\u{e7b5}"); // ""
-        m.insert("ini", "\u{f17a}"); // ""
+        m.insert("ini", "\u{e615}"); // ""
         m.insert("ipynb", "\u{e606}"); // ""
         m.insert("jar", "\u{e204}"); // ""
         m.insert("java", "\u{e204}"); // ""
@@ -249,7 +247,7 @@ impl Icons {
         m.insert("lhs", "\u{e777}"); // ""
         m.insert("license", "\u{f48a}"); // ""
         m.insert("localized", "\u{f179}"); // ""
-        m.insert("lock", "\u{e21e}"); // ""
+        m.insert("lock", "\u{f023}"); // ""
         m.insert("log", "\u{f18d}"); // ""
         m.insert("lua", "\u{e620}"); // ""
         m.insert("m4a", "\u{f001}"); // ""


Test patch: