diff --git a/docs/Config.md b/docs/Config.md index 938aaba29..5c14b2da9 100644 --- a/docs/Config.md +++ b/docs/Config.md @@ -62,7 +62,8 @@ gui: experimentalShowBranchHeads: false # visualize branch heads with (*) in commits list showBottomLine: true # for hiding the bottom information line (unless it has important information to tell you) showCommandLog: true - showIcons: false + showIcons: false # deprecated: use nerdFontsVersion instead + nerdFontsVersion: "" # nerd fonts version to use ("2" or "3"); empty means don't show nerd font icons commandLogSize: 8 splitDiff: 'auto' # one of 'auto' | 'always' skipRewordInEditorWarning: false # for skipping the confirmation before launching the reword editor @@ -420,9 +421,12 @@ If you are using [Nerd Fonts](https://www.nerdfonts.com), you can display icons. ```yaml gui: - showIcons: true + nerdFontsVersion: "3" ``` +Supported versions are "2" and "3". The deprecated config `showIcons` sets the +version to "2" for backwards compatibility. + ## Keybindings For all possible keybinding options, check [Custom_Keybindings.md](https://github.com/jesseduffield/lazygit/blob/master/docs/keybindings/Custom_Keybindings.md) diff --git a/pkg/config/user_config.go b/pkg/config/user_config.go index 597253e3d..dcc0e0ef6 100644 --- a/pkg/config/user_config.go +++ b/pkg/config/user_config.go @@ -49,6 +49,7 @@ type GuiConfig struct { ShowCommandLog bool `yaml:"showCommandLog"` ShowBottomLine bool `yaml:"showBottomLine"` ShowIcons bool `yaml:"showIcons"` + NerdFontsVersion string `yaml:"nerdFontsVersion"` ShowBranchCommitHash bool `yaml:"showBranchCommitHash"` ExperimentalShowBranchHeads bool `yaml:"experimentalShowBranchHeads"` CommandLogSize int `yaml:"commandLogSize"` @@ -426,6 +427,7 @@ func GetDefaultConfig() *UserConfig { ShowFileTree: true, ShowRandomTip: true, ShowIcons: false, + NerdFontsVersion: "", ExperimentalShowBranchHeads: false, ShowBranchCommitHash: false, CommandLogSize: 8, diff --git a/pkg/gui/gui.go b/pkg/gui/gui.go index b429bda27..b922c5f77 100644 --- a/pkg/gui/gui.go +++ b/pkg/gui/gui.go @@ -496,7 +496,11 @@ func NewGui( gui.c = helperCommon authors.SetCustomAuthors(gui.UserConfig.Gui.AuthorColors) - icons.SetIconEnabled(gui.UserConfig.Gui.ShowIcons) + if gui.UserConfig.Gui.NerdFontsVersion != "" { + icons.SetNerdFontsVersion(gui.UserConfig.Gui.NerdFontsVersion) + } else if gui.UserConfig.Gui.ShowIcons { + icons.SetNerdFontsVersion("2") + } presentation.SetCustomBranches(gui.UserConfig.Gui.BranchColors) gui.BackgroundRoutineMgr = &BackgroundRoutineMgr{gui: gui} diff --git a/pkg/gui/presentation/icons/file_icons.go b/pkg/gui/presentation/icons/file_icons.go index 6e647038b..b4ff58919 100644 --- a/pkg/gui/presentation/icons/file_icons.go +++ b/pkg/gui/presentation/icons/file_icons.go @@ -57,260 +57,270 @@ var nameIconMap = map[string]string{ } var extIconMap = map[string]string{ - ".ai": "\ue7b4", //  - ".android": "\ue70e", //  - ".apk": "\ue70e", //  - ".apple": "\uf179", //  - ".avi": "\uf03d", //  - ".avif": "\uf1c5", //  - ".avro": "\ue60b", //  - ".awk": "\uf489", //  - ".bash": "\uf489", //  - ".bash_history": "\uf489", //  - ".bash_profile": "\uf489", //  - ".bashrc": "\uf489", //  - ".bat": "\uf17a", //  - ".bats": "\uf489", //  - ".bmp": "\uf1c5", //  - ".bz": "\uf410", //  - ".bz2": "\uf410", //  - ".c": "\ue61e", //  - ".c++": "\ue61d", //  - ".cab": "\ue70f", //  - ".cc": "\ue61d", //  - ".cfg": "\ue615", //  - ".class": "\ue256", //  - ".clj": "\ue768", //  - ".cljs": "\ue76a", //  - ".cls": "\uf034", //  - ".cmd": "\ue70f", //  - ".coffee": "\uf0f4", //  - ".conf": "\ue615", //  - ".cp": "\ue61d", //  - ".cpio": "\uf410", //  - ".cpp": "\ue61d", //  - ".cs": "\uf81a", //  - ".csh": "\uf489", //  - ".cshtml": "\uf1fa", //  - ".csproj": "\uf81a", //  - ".css": "\ue749", //  - ".csv": "\uf1c3", //  - ".csx": "\uf81a", //  - ".cxx": "\ue61d", //  - ".d": "\ue7af", //  - ".dart": "\ue798", //  - ".db": "\uf1c0", //  - ".deb": "\ue77d", //  - ".diff": "\uf440", //  - ".djvu": "\uf02d", //  - ".dll": "\ue70f", //  - ".doc": "\uf1c2", //  - ".docx": "\uf1c2", //  - ".ds_store": "\uf179", //  - ".DS_store": "\uf179", //  - ".dump": "\uf1c0", //  - ".ebook": "\ue28b", //  - ".ebuild": "\uf30d", //  - ".editorconfig": "\ue615", //  - ".ejs": "\ue618", //  - ".elm": "\ue62c", //  - ".env": "\uf462", //  - ".eot": "\uf031", //  - ".epub": "\ue28a", //  - ".erb": "\ue73b", //  - ".erl": "\ue7b1", //  - ".ex": "\ue62d", //  - ".exe": "\uf17a", //  - ".exs": "\ue62d", //  - ".fish": "\uf489", //  - ".flac": "\uf001", //  - ".flv": "\uf03d", //  - ".font": "\uf031", //  - ".fs": "\ue7a7", //  - ".fsi": "\ue7a7", //  - ".fsx": "\ue7a7", //  - ".gdoc": "\uf1c2", //  - ".gem": "\ue21e", //  - ".gemfile": "\ue21e", //  - ".gemspec": "\ue21e", //  - ".gform": "\uf298", //  - ".gif": "\uf1c5", //  - ".git": "\uf1d3", //  - ".gitattributes": "\uf1d3", //  - ".gitignore": "\uf1d3", //  - ".gitmodules": "\uf1d3", //  - ".go": "\ue626", //  - ".gradle": "\ue256", //  - ".groovy": "\ue775", //  - ".gsheet": "\uf1c3", //  - ".gslides": "\uf1c4", //  - ".guardfile": "\ue21e", //  - ".gz": "\uf410", //  - ".h": "\uf0fd", //  - ".hbs": "\ue60f", //  - ".hpp": "\uf0fd", //  - ".hs": "\ue777", //  - ".htm": "\uf13b", //  - ".html": "\uf13b", //  - ".hxx": "\uf0fd", //  - ".ico": "\uf1c5", //  - ".image": "\uf1c5", //  - ".iml": "\ue7b5", //  - ".ini": "\uf17a", //  - ".ipynb": "\ue606", //  - ".iso": "\ue271", //  - ".j2c": "\uf1c5", //  - ".j2k": "\uf1c5", //  - ".jad": "\ue256", //  - ".jar": "\ue256", //  - ".java": "\ue256", //  - ".jfi": "\uf1c5", //  - ".jfif": "\uf1c5", //  - ".jif": "\uf1c5", //  - ".jl": "\ue624", //  - ".jmd": "\uf48a", //  - ".jp2": "\uf1c5", //  - ".jpe": "\uf1c5", //  - ".jpeg": "\uf1c5", //  - ".jpg": "\uf1c5", //  - ".jpx": "\uf1c5", //  - ".js": "\ue74e", //  - ".json": "\ue60b", //  - ".jsx": "\ue7ba", //  - ".jxl": "\uf1c5", //  - ".ksh": "\uf489", //  - ".kt": "\ue634", //  - ".kts": "\ue634", //  - ".latex": "\uf034", //  - ".less": "\ue758", //  - ".lhs": "\ue777", //  - ".license": "\uf718", //  - ".localized": "\uf179", //  - ".lock": "\uf023", //  - ".log": "\uf18d", //  - ".lua": "\ue620", //  - ".lz": "\uf410", //  - ".lz4": "\uf410", //  - ".lzh": "\uf410", //  - ".lzma": "\uf410", //  - ".lzo": "\uf410", //  - ".m": "\ue61e", //  - ".mm": "\ue61d", //  - ".m4a": "\uf001", //  - ".markdown": "\uf48a", //  - ".md": "\uf48a", //  - ".mjs": "\ue74e", //  - ".mk": "\uf489", //  - ".mkd": "\uf48a", //  - ".mkv": "\uf03d", //  - ".mobi": "\ue28b", //  - ".mov": "\uf03d", //  - ".mp3": "\uf001", //  - ".mp4": "\uf03d", //  - ".msi": "\ue70f", //  - ".mustache": "\ue60f", //  - ".nix": "\uf313", //  - ".node": "\uf898", //  - ".npmignore": "\ue71e", //  - ".odp": "\uf1c4", //  - ".ods": "\uf1c3", //  - ".odt": "\uf1c2", //  - ".ogg": "\uf001", //  - ".ogv": "\uf03d", //  - ".otf": "\uf031", //  - ".part": "\uf43a", //  - ".patch": "\uf440", //  - ".pdf": "\uf1c1", //  - ".php": "\ue73d", //  - ".pl": "\ue769", //  - ".png": "\uf1c5", //  - ".ppt": "\uf1c4", //  - ".pptx": "\uf1c4", //  - ".procfile": "\ue21e", //  - ".properties": "\ue60b", //  - ".ps1": "\uf489", //  - ".psd": "\ue7b8", //  - ".pxm": "\uf1c5", //  - ".py": "\ue606", //  - ".pyc": "\ue606", //  - ".r": "\uf25d", //  - ".rakefile": "\ue21e", //  - ".rar": "\uf410", //  - ".razor": "\uf1fa", //  - ".rb": "\ue21e", //  - ".rdata": "\uf25d", //  - ".rdb": "\ue76d", //  - ".rdoc": "\uf48a", //  - ".rds": "\uf25d", //  - ".readme": "\uf48a", //  - ".rlib": "\ue7a8", //  - ".rmd": "\uf48a", //  - ".rpm": "\ue7bb", //  - ".rs": "\ue7a8", //  - ".rspec": "\ue21e", //  - ".rspec_parallel": "\ue21e", //  - ".rspec_status": "\ue21e", //  - ".rss": "\uf09e", //  - ".rtf": "\uf718", //  - ".ru": "\ue21e", //  - ".rubydoc": "\ue73b", //  - ".sass": "\ue603", //  - ".scala": "\ue737", //  - ".scss": "\ue749", //  - ".sh": "\uf489", //  - ".shell": "\uf489", //  - ".slim": "\ue73b", //  - ".sln": "\ue70c", //  - ".so": "\uf17c", //  - ".sql": "\uf1c0", //  - ".sqlite3": "\ue7c4", //  - ".sty": "\uf034", //  - ".styl": "\ue600", //  - ".stylus": "\ue600", //  - ".svg": "\uf1c5", //  - ".swift": "\ue755", //  - ".tar": "\uf410", //  - ".taz": "\uf410", //  - ".tbz": "\uf410", //  - ".tbz2": "\uf410", //  - ".tex": "\uf034", //  - ".tgz": "\uf410", //  - ".tiff": "\uf1c5", //  - ".tlz": "\uf410", //  - ".toml": "\ue615", //  - ".torrent": "\ue275", //  - ".ts": "\ue628", //  - ".tsv": "\uf1c3", //  - ".tsx": "\ue7ba", //  - ".ttf": "\uf031", //  - ".twig": "\ue61c", //  - ".txt": "\uf15c", //  - ".txz": "\uf410", //  - ".tz": "\uf410", //  - ".tzo": "\uf410", //  - ".video": "\uf03d", //  - ".vim": "\ue62b", //  - ".vue": "\ufd42", // ﵂ - ".war": "\ue256", //  - ".wav": "\uf001", //  - ".webm": "\uf03d", //  - ".webp": "\uf1c5", //  - ".windows": "\uf17a", //  - ".woff": "\uf031", //  - ".woff2": "\uf031", //  - ".xhtml": "\uf13b", //  - ".xls": "\uf1c3", //  - ".xlsx": "\uf1c3", //  - ".xml": "\uf121", //  - ".xul": "\uf121", //  - ".xz": "\uf410", //  - ".yaml": "\uf481", //  - ".yml": "\uf481", //  - ".zip": "\uf410", //  - ".zsh": "\uf489", //  - ".zsh-theme": "\uf489", //  - ".zshrc": "\uf489", //  - ".zst": "\uf410", //  + ".ai": "\ue7b4", //  + ".android": "\ue70e", //  + ".apk": "\ue70e", //  + ".apple": "\uf179", //  + ".avi": "\uf03d", //  + ".avif": "\uf1c5", //  + ".avro": "\ue60b", //  + ".awk": "\uf489", //  + ".bash": "\uf489", //  + ".bash_history": "\uf489", //  + ".bash_profile": "\uf489", //  + ".bashrc": "\uf489", //  + ".bat": "\uf17a", //  + ".bats": "\uf489", //  + ".bmp": "\uf1c5", //  + ".bz": "\uf410", //  + ".bz2": "\uf410", //  + ".c": "\ue61e", //  + ".c++": "\ue61d", //  + ".cab": "\ue70f", //  + ".cc": "\ue61d", //  + ".cfg": "\ue615", //  + ".class": "\ue256", //  + ".clj": "\ue768", //  + ".cljs": "\ue76a", //  + ".cls": "\uf034", //  + ".cmd": "\ue70f", //  + ".coffee": "\uf0f4", //  + ".conf": "\ue615", //  + ".cp": "\ue61d", //  + ".cpio": "\uf410", //  + ".cpp": "\ue61d", //  + ".cs": "\U000f031b", // 󰌛 + ".csh": "\uf489", //  + ".cshtml": "\uf1fa", //  + ".csproj": "\U000f031b", // 󰌛 + ".css": "\ue749", //  + ".csv": "\uf1c3", //  + ".csx": "\U000f031b", // 󰌛 + ".cxx": "\ue61d", //  + ".d": "\ue7af", //  + ".dart": "\ue798", //  + ".db": "\uf1c0", //  + ".deb": "\ue77d", //  + ".diff": "\uf440", //  + ".djvu": "\uf02d", //  + ".dll": "\ue70f", //  + ".doc": "\uf1c2", //  + ".docx": "\uf1c2", //  + ".ds_store": "\uf179", //  + ".DS_store": "\uf179", //  + ".dump": "\uf1c0", //  + ".ebook": "\ue28b", //  + ".ebuild": "\uf30d", //  + ".editorconfig": "\ue615", //  + ".ejs": "\ue618", //  + ".elm": "\ue62c", //  + ".env": "\uf462", //  + ".eot": "\uf031", //  + ".epub": "\ue28a", //  + ".erb": "\ue73b", //  + ".erl": "\ue7b1", //  + ".ex": "\ue62d", //  + ".exe": "\uf17a", //  + ".exs": "\ue62d", //  + ".fish": "\uf489", //  + ".flac": "\uf001", //  + ".flv": "\uf03d", //  + ".font": "\uf031", //  + ".fs": "\ue7a7", //  + ".fsi": "\ue7a7", //  + ".fsx": "\ue7a7", //  + ".gdoc": "\uf1c2", //  + ".gem": "\ue21e", //  + ".gemfile": "\ue21e", //  + ".gemspec": "\ue21e", //  + ".gform": "\uf298", //  + ".gif": "\uf1c5", //  + ".git": "\uf1d3", //  + ".gitattributes": "\uf1d3", //  + ".gitignore": "\uf1d3", //  + ".gitmodules": "\uf1d3", //  + ".go": "\ue626", //  + ".gradle": "\ue256", //  + ".groovy": "\ue775", //  + ".gsheet": "\uf1c3", //  + ".gslides": "\uf1c4", //  + ".guardfile": "\ue21e", //  + ".gz": "\uf410", //  + ".h": "\uf0fd", //  + ".hbs": "\ue60f", //  + ".hpp": "\uf0fd", //  + ".hs": "\ue777", //  + ".htm": "\uf13b", //  + ".html": "\uf13b", //  + ".hxx": "\uf0fd", //  + ".ico": "\uf1c5", //  + ".image": "\uf1c5", //  + ".iml": "\ue7b5", //  + ".ini": "\uf17a", //  + ".ipynb": "\ue606", //  + ".iso": "\ue271", //  + ".j2c": "\uf1c5", //  + ".j2k": "\uf1c5", //  + ".jad": "\ue256", //  + ".jar": "\ue256", //  + ".java": "\ue256", //  + ".jfi": "\uf1c5", //  + ".jfif": "\uf1c5", //  + ".jif": "\uf1c5", //  + ".jl": "\ue624", //  + ".jmd": "\uf48a", //  + ".jp2": "\uf1c5", //  + ".jpe": "\uf1c5", //  + ".jpeg": "\uf1c5", //  + ".jpg": "\uf1c5", //  + ".jpx": "\uf1c5", //  + ".js": "\ue74e", //  + ".json": "\ue60b", //  + ".jsx": "\ue7ba", //  + ".jxl": "\uf1c5", //  + ".ksh": "\uf489", //  + ".kt": "\ue634", //  + ".kts": "\ue634", //  + ".latex": "\uf034", //  + ".less": "\ue758", //  + ".lhs": "\ue777", //  + ".license": "\U000f0219", // 󰈙 + ".localized": "\uf179", //  + ".lock": "\uf023", //  + ".log": "\uf18d", //  + ".lua": "\ue620", //  + ".lz": "\uf410", //  + ".lz4": "\uf410", //  + ".lzh": "\uf410", //  + ".lzma": "\uf410", //  + ".lzo": "\uf410", //  + ".m": "\ue61e", //  + ".mm": "\ue61d", //  + ".m4a": "\uf001", //  + ".markdown": "\uf48a", //  + ".md": "\uf48a", //  + ".mjs": "\ue74e", //  + ".mk": "\uf489", //  + ".mkd": "\uf48a", //  + ".mkv": "\uf03d", //  + ".mobi": "\ue28b", //  + ".mov": "\uf03d", //  + ".mp3": "\uf001", //  + ".mp4": "\uf03d", //  + ".msi": "\ue70f", //  + ".mustache": "\ue60f", //  + ".nix": "\uf313", //  + ".node": "\U000f0399", // 󰎙 + ".npmignore": "\ue71e", //  + ".odp": "\uf1c4", //  + ".ods": "\uf1c3", //  + ".odt": "\uf1c2", //  + ".ogg": "\uf001", //  + ".ogv": "\uf03d", //  + ".otf": "\uf031", //  + ".part": "\uf43a", //  + ".patch": "\uf440", //  + ".pdf": "\uf1c1", //  + ".php": "\ue73d", //  + ".pl": "\ue769", //  + ".png": "\uf1c5", //  + ".ppt": "\uf1c4", //  + ".pptx": "\uf1c4", //  + ".procfile": "\ue21e", //  + ".properties": "\ue60b", //  + ".ps1": "\uf489", //  + ".psd": "\ue7b8", //  + ".pxm": "\uf1c5", //  + ".py": "\ue606", //  + ".pyc": "\ue606", //  + ".r": "\uf25d", //  + ".rakefile": "\ue21e", //  + ".rar": "\uf410", //  + ".razor": "\uf1fa", //  + ".rb": "\ue21e", //  + ".rdata": "\uf25d", //  + ".rdb": "\ue76d", //  + ".rdoc": "\uf48a", //  + ".rds": "\uf25d", //  + ".readme": "\uf48a", //  + ".rlib": "\ue7a8", //  + ".rmd": "\uf48a", //  + ".rpm": "\ue7bb", //  + ".rs": "\ue7a8", //  + ".rspec": "\ue21e", //  + ".rspec_parallel": "\ue21e", //  + ".rspec_status": "\ue21e", //  + ".rss": "\uf09e", //  + ".rtf": "\U000f0219", // 󰈙 + ".ru": "\ue21e", //  + ".rubydoc": "\ue73b", //  + ".sass": "\ue603", //  + ".scala": "\ue737", //  + ".scss": "\ue749", //  + ".sh": "\uf489", //  + ".shell": "\uf489", //  + ".slim": "\ue73b", //  + ".sln": "\ue70c", //  + ".so": "\uf17c", //  + ".sql": "\uf1c0", //  + ".sqlite3": "\ue7c4", //  + ".sty": "\uf034", //  + ".styl": "\ue600", //  + ".stylus": "\ue600", //  + ".svg": "\uf1c5", //  + ".swift": "\ue755", //  + ".tar": "\uf410", //  + ".taz": "\uf410", //  + ".tbz": "\uf410", //  + ".tbz2": "\uf410", //  + ".tex": "\uf034", //  + ".tgz": "\uf410", //  + ".tiff": "\uf1c5", //  + ".tlz": "\uf410", //  + ".toml": "\ue615", //  + ".torrent": "\ue275", //  + ".ts": "\ue628", //  + ".tsv": "\uf1c3", //  + ".tsx": "\ue7ba", //  + ".ttf": "\uf031", //  + ".twig": "\ue61c", //  + ".txt": "\uf15c", //  + ".txz": "\uf410", //  + ".tz": "\uf410", //  + ".tzo": "\uf410", //  + ".video": "\uf03d", //  + ".vim": "\ue62b", //  + ".vue": "\U000f0844", // 󰡄 + ".war": "\ue256", //  + ".wav": "\uf001", //  + ".webm": "\uf03d", //  + ".webp": "\uf1c5", //  + ".windows": "\uf17a", //  + ".woff": "\uf031", //  + ".woff2": "\uf031", //  + ".xhtml": "\uf13b", //  + ".xls": "\uf1c3", //  + ".xlsx": "\uf1c3", //  + ".xml": "\uf121", //  + ".xul": "\uf121", //  + ".xz": "\uf410", //  + ".yaml": "\uf481", //  + ".yml": "\uf481", //  + ".zip": "\uf410", //  + ".zsh": "\uf489", //  + ".zsh-theme": "\uf489", //  + ".zshrc": "\uf489", //  + ".zst": "\uf410", //  +} + +func patchFileIconsForNerdFontsV2() { + extIconMap[".cs"] = "\uf81a" //  + extIconMap[".csproj"] = "\uf81a" //  + extIconMap[".csx"] = "\uf81a" //  + extIconMap[".license"] = "\uf718" //  + extIconMap[".node"] = "\uf898" //  + extIconMap[".rtf"] = "\uf718" //  + extIconMap[".vue"] = "\ufd42" // ﵂ } func IconForFile(name string, isSubmodule bool, isDirectory bool) string { diff --git a/pkg/gui/presentation/icons/git_icons.go b/pkg/gui/presentation/icons/git_icons.go index a66149b55..6fd8bfb57 100644 --- a/pkg/gui/presentation/icons/git_icons.go +++ b/pkg/gui/presentation/icons/git_icons.go @@ -6,26 +6,30 @@ import ( "github.com/jesseduffield/lazygit/pkg/commands/models" ) -const ( - BRANCH_ICON = "\ufb2b" // שׂ - DETACHED_HEAD_ICON = "\ue729" //  - TAG_ICON = "\uf02b" //  - COMMIT_ICON = "\ufc16" // ﰖ - MERGE_COMMIT_ICON = "\ufb2c" // שּׁ - DEFAULT_REMOTE_ICON = "\uf7a1" //  - STASH_ICON = "\uf01c" //  +var ( + BRANCH_ICON = "\U000f062c" // 󰘬 + DETACHED_HEAD_ICON = "\ue729" //  + TAG_ICON = "\uf02b" //  + COMMIT_ICON = "\U000f0718" // 󰜘 + MERGE_COMMIT_ICON = "\U000f062d" // 󰘭 + DEFAULT_REMOTE_ICON = "\uf02a2" // 󰊢 + STASH_ICON = "\uf01c" //  ) -type remoteIcon struct { - domain string - icon string +var remoteIcons = map[string]string{ + "github.com": "\ue709", //  + "bitbucket.org": "\ue703", //  + "gitlab.com": "\uf296", //  + "dev.azure.com": "\U000f0805", // 󰠅 } -var remoteIcons = []remoteIcon{ - {domain: "github.com", icon: "\ue709"}, //  - {domain: "bitbucket.org", icon: "\ue703"}, //  - {domain: "gitlab.com", icon: "\uf296"}, //  - {domain: "dev.azure.com", icon: "\ufd03"}, // ﴃ +func patchGitIconsForNerdFontsV2() { + BRANCH_ICON = "\ufb2b" // שׂ + COMMIT_ICON = "\ufc16" // ﰖ + MERGE_COMMIT_ICON = "\ufb2c" // שּׁ + DEFAULT_REMOTE_ICON = "\uf7a1" //  + + remoteIcons["dev.azure.com"] = "\ufd03" // ﴃ } func IconForBranch(branch *models.Branch) string { @@ -51,10 +55,10 @@ func IconForCommit(commit *models.Commit) string { } func IconForRemote(remote *models.Remote) string { - for _, r := range remoteIcons { + for domain, icon := range remoteIcons { for _, url := range remote.Urls { - if strings.Contains(url, r.domain) { - return r.icon + if strings.Contains(url, domain) { + return icon } } } diff --git a/pkg/gui/presentation/icons/icons.go b/pkg/gui/presentation/icons/icons.go index 81b16108b..fbfc9bb07 100644 --- a/pkg/gui/presentation/icons/icons.go +++ b/pkg/gui/presentation/icons/icons.go @@ -1,11 +1,26 @@ package icons +import ( + "log" + + "github.com/samber/lo" +) + var isIconEnabled = false func IsIconEnabled() bool { return isIconEnabled } -func SetIconEnabled(showIcons bool) { - isIconEnabled = showIcons +func SetNerdFontsVersion(version string) { + if !lo.Contains([]string{"2", "3"}, version) { + log.Fatalf("Unsupported nerdFontVersion %s", version) + } + + if version == "2" { + patchGitIconsForNerdFontsV2() + patchFileIconsForNerdFontsV2() + } + + isIconEnabled = true }