Nerd Fonts contain glyphs that allow things like the git strip you see at the bottom of code editors ("powerline"), along with ligatures (e.g. if you type <= it merges so it looks more like the math symbol of a less than sign and a single line at the same angle just below the < sign...)
And here's an example of ligatures (see the image on the right - you type what's on the left, and the right image is what shows in your editor):
https://hilton.org.uk/blog/fira-code
I think but am not sure as I haven't looked in a while, that the folder and file icons are part of the nerdfonts as well, that regular fonts would just show as the generic "missing glyph" symbol.
There's no technical reason the font couldn't be shipped in/with the binary. The main reasons this doesn't happen are probably:
- this is what a package manager is for
- installing the font/s (from the application?) would be a bit of a dick move and also presents a technical challenge (in other words: that's what a package manager is for)
- concerns about the efficiency of many applications all shipping duplicate assets (package manager again)
- concerns about distribution rights
- not all users will want to use the same font and this is an unsolvable problem -- do you ship: no fonts | one unwanted font | the user's preferred font that they already have installed plus all the other user's fonts
My first experience running a cool-looking TUI file manager yesterday (I actually ended up trying yazi first) was that I got a lot of blank squares in place of missing icons and emojis due to missing fonts. I had to spend 20 minutes figuring that out before I got a good experience.
Interestingly, I also tried wezterm[1] in the process. It actually ships with the required fonts as fallback, but the version from my distro's package manager didn't work (the AppImage did). I'm guessing my distro removed them, maybe for some of the reasons you cited. I started installing the nerd-fonts group for my distro. 6.5GB... no thanks. After manually poking through them and some googling I finally installed a couple and it's working now.
My overall point is that it's possible for app developers to provide good defaults like wezterm does. It's also possible for distro's to break those defaults.
> not all users will want to use the same font and this is an unsolvable problem -- do you ship: no fonts | one unwanted font | the user's preferred font that they already have installed plus all the other user's fonts
For me, I would absolutely prefer one unwanted font instead of losing those 20 minutes. If I don't like the font it ships with I should be able to override it. If size is a concern then don't ship the font, but detect that I don't have a working one and offer to download a default for me.
On Linux you can just chuck fonts in .local/share/fonts in your home directory. You can keep them in folders in there so just unzip the whole nerdfont archive there.
https://www.nerdfonts.com/
And here's an example of ligatures (see the image on the right - you type what's on the left, and the right image is what shows in your editor): https://hilton.org.uk/blog/fira-code
I think but am not sure as I haven't looked in a while, that the folder and file icons are part of the nerdfonts as well, that regular fonts would just show as the generic "missing glyph" symbol.