jesseduffield / lazygit

simple terminal UI for git commands
MIT License
48.42k stars 1.74k forks source link

[FR] Allow to use a specific font family for icons #2236

Open xfzv opened 1 year ago

xfzv commented 1 year ago

I'm using JetBrains Mono as my terminal font and also have Nerd Font Symbols on my system. This is the recommended way according to Kitty terminal maintainer, and we can use a specific font family for symbols in kitty config file.

Since we cannot do the same with LazyGit, the icons aren't picked from Nerd Font Symbols and are most likely coming from my terminal font:

image image

It would be nice if we could explicitly set a specific font family for the icons in LazyGit config file so that they're rendered properly in this case. I know I could just use a patched nerd font which includes symbols but I don't want to.

David-Else commented 1 year ago

I have just discovered this very unfortunate circumstance myself! @xfzv Did you ever get LazyGit working using Nerd Font Symbols?

The correct symbols actually appear when I select the line in LazyGit, that is the weird thing!

Screenshot from 2022-11-30 23-08-04

xfzv commented 1 year ago

I have just discovered this very unfortunate circumstance myself! @xfzv Did you ever get LazyGit working using Nerd Font Symbols?

The correct symbols actually appear when I select the line in LazyGit, that is the weird thing!

Screenshot from 2022-11-30 23-08-04

I ended up switching back to JetBrains Mono Nerd Font for now.

David-Else commented 1 year ago

@xfzv I have solved it! (mostly)

Make sure you added to lazygit .config/lazygit/config.yml:

gui:
  showIcons: true

You need to install the exact file, it has to be the 1000 and Mono version: https://github.com/ryanoasis/nerd-fonts/releases/download/v2.2.2/NerdFontsSymbolsOnly.zip Screenshot from 2022-12-01 10-24-54

Symbols-1000-em Nerd Font Complete Mono.ttf

You also need to add the recommended config to Kitty, note it points to Symbols Nerd Font Mono:

# Nerd Fonts v2.2.2

symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E634,U+E700-U+E7C5,U+EA60-U+EBEB,U+F000-U+F2E0,U+F300-U+F32F,U+F400-U+F4A9,U+F500-U+F8FF Symbols Nerd Font Mono

It may not seem to work at first, but you need to log in and out of Gnome for the change to be seen. Now all the symbols are there, apart from the 'local branches' uses the wrong symbol. Here is my result:

Screenshot from 2022-12-01 10-50-23

If it works for you then you could shut the issue.

xfzv commented 1 year ago

@David-Else

Thanks for the detailed instructions. I'm getting the same behavior, so this workaround is only partially valid since some icons are still not rendered properly. Feel free to close, I won't because of the above, not to mention the initial feature request hasn't been addressed yet.