- 63
- 77
Автор идеи таких шрифтов очевидно не я. Я просто собрал названия и коды иконок, добавил их в файлик lua. Затем взял шрифт Trebuchet MS, пропатчил его с помощью Nerd Fonts Patcher. Полученный шрифт перенес в lua утилитой @FYP'a и, в принципе, готово.
Сделал я эту "либу", т.к. лично у меня была необходимость использовать как solid иконки Font Awesome, так и brand. Может тут кому-то тоже будет полезно.
NerdFonts:
- Официальный сайт- Все иконки
Паки иконок:
- Seti-UI + Custom (184 иконки)- Devicons (198 иконок)
- Font Awesome (675 иконок)
- Font Awesome Extension (170 иконок)
- Weather (228 иконок)
- Octicons (309 иконок)
- Powerline Symbols (7 иконок)
- Powerline Extra Symbols (38 иконок)
- IEC Power Symbols (5 иконок)
- Font-logos (Font Linux) (115 иконок)
- Pomicons (11 иконок)
- Codicons (387 иконок)
6к+ иконок Material Design в шрифт не добавлял, т.к. они превышают значение 0x10000. Если вдруг кто-то знает как это решить - добавлю.
Использование:
Из понравившейся иконки, например nf-oct-trash убираем nf и символы - (тире) заменяем на _ (нижнее подчёркивание).Вызываем как icons('oct_trash') или как icons.oct_trash. Либо можно скопировать UTF-16 код иконки и вставить его текстом, добавляя всё после \u в фигурные скобки. Например \u{f48e}
Установка:
- Скачать файл nerdicons.lua
- Перенести в moonloader/lib/
Пример:
icons('oct_trash')
icons.oct_trash
imgui.Button('\u{f48e}'..u8"Очистить поле")
imgui:
local font = nil
local glyph_ranges = imgui.ImGlyphRanges({ icons.min_range, icons.max_range})
function imgui.BeforeDrawFrame()
if font == nil then
local font_config = imgui.ImFontConfig()
font_config.MergeMode = true
font = imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(icons.base85, 16.0, font_config, glyph_ranges)
end
end
mimgui:
imgui.OnInitialize(function()
imgui.GetIO().IniFilename = nil
local config = imgui.ImFontConfig()
config.MergeMode = true
config.PixelSnapH = true
iconRanges = imgui.new.ImWchar[3](icons.min_range, icons.max_range, 0)
imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(icons.base85, 18, config, iconRanges)
end)