View Raw Ebuild
# Copyright 2021-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit font check-reqs
DESCRIPTION="Nerd Fonts is a project that patches developer targeted fonts with glyphs"
HOMEPAGE="https://github.com/ryanoasis/nerd-fonts"
COMMON_URI="https://github.com/ryanoasis/${PN}/releases/download/v${PV}"
TAG_URI="https://github.com/ryanoasis/nerd-fonts/raw/v${PV}"
FONTS=(
0xProto
3270
AdwaitaMono
Agave
AnonymousPro
Arimo
AtkinsonHyperlegibleMono
AurulentSansMono
BigBlueTerminal
BitstreamVeraSansMono
CascadiaCode
CascadiaMono
CodeNewRoman
ComicShannsMono
CommitMono
Cousine
D2Coding
DaddyTimeMono
DejaVuSansMono
DepartureMono
DroidSansMono
EnvyCodeR
FantasqueSansMono
FiraCode
FiraMono
GeistMono
Go-Mono
Gohu
Hack
Hasklig
HeavyData
Hermit
iA-Writer
IBMPlexMono
Inconsolata
InconsolataGo
InconsolataLGC
IntelOneMono
Iosevka
IosevkaTerm
IosevkaTermSlab
JetBrainsMono
Lekton
LiberationMono
Lilex
MartianMono
Meslo
Monaspace
Monofur
Monoid
Mononoki
MPlus
NerdFontsSymbolsOnly
Noto
OpenDyslexic
Overpass
ProFont
ProggyClean
Recursive
RobotoMono
ShareTechMono
SourceCodePro
SpaceMono
Terminus
Tinos
Ubuntu
UbuntuMono
UbuntuSans
VictorMono
ZedMono
)
SRC_URI="
0xproto? ( ${COMMON_URI}/0xProto.tar.xz -> 0xProto-nf-${PV}.tar.xz )
3270? ( ${COMMON_URI}/3270.tar.xz -> 3270-nf-${PV}.tar.xz )
adwaitamono? ( ${COMMON_URI}/AdwaitaMono.tar.xz -> AdwaitaMono-nf-${PV}.tar.xz )
agave? ( ${COMMON_URI}/Agave.tar.xz -> Agave-nf-${PV}.tar.xz )
anonymouspro? ( ${COMMON_URI}/AnonymousPro.tar.xz -> AnonymousPro-nf-${PV}.tar.xz )
arimo? ( ${COMMON_URI}/Arimo.tar.xz -> Arimo-nf-${PV}.tar.xz )
atkinsonhyperlegiblemono? (
${COMMON_URI}/AtkinsonHyperlegibleMono.tar.xz -> AtkinsonHyperlegibleMono-nf-${PV}.tar.xz )
aurulentsansmono? ( ${COMMON_URI}/AurulentSansMono.tar.xz -> AurulentSansMono-nf-${PV}.tar.xz )
bigblueterminal? ( ${COMMON_URI}/BigBlueTerminal.tar.xz -> BigBlueTerminal-nf-${PV}.tar.xz )
bitstreamverasansmono? ( ${COMMON_URI}/BitstreamVeraSansMono.tar.xz -> BitstreamVeraSansMono-nf-${PV}.tar.xz )
cascadiacode? ( ${COMMON_URI}/CascadiaCode.tar.xz -> CascadiaCode-nf-${PV}.tar.xz )
cascadiamono? ( ${COMMON_URI}/CascadiaMono.tar.xz -> CascadiaMono-nf-${PV}.tar.xz )
codenewroman? ( ${COMMON_URI}/CodeNewRoman.tar.xz -> CodeNewRoman-nf-${PV}.tar.xz )
comicshannsmono? ( ${COMMON_URI}/ComicShannsMono.tar.xz -> ComicShannsMono-nf-${PV}.tar.xz )
commitmono? ( ${COMMON_URI}/CommitMono.tar.xz -> CommitMono-nf-${PV}.tar.xz )
cousine? ( ${COMMON_URI}/Cousine.tar.xz -> Cousine-nf-${PV}.tar.xz )
d2coding? ( ${COMMON_URI}/D2Coding.tar.xz -> D2Coding-nf-${PV}.tar.xz )
daddytimemono? ( ${COMMON_URI}/DaddyTimeMono.tar.xz -> DaddyTimeMono-nf-${PV}.tar.xz )
dejavusansmono? ( ${COMMON_URI}/DejaVuSansMono.tar.xz -> DejaVuSansMono-nf-${PV}.tar.xz )
departuremono? ( ${COMMON_URI}/DepartureMono.tar.xz -> DepartureMono-nf-${PV}.tar.xz )
droidsansmono? ( ${COMMON_URI}/DroidSansMono.tar.xz -> DroidSansMono-nf-${PV}.tar.xz )
envycoder? ( ${COMMON_URI}/EnvyCodeR.tar.xz -> EnvyCodeR-nf-${PV}.tar.xz )
fantasquesansmono? ( ${COMMON_URI}/FantasqueSansMono.tar.xz -> FantasqueSansMono-nf-${PV}.tar.xz )
firacode? ( ${COMMON_URI}/FiraCode.tar.xz -> FiraCode-nf-${PV}.tar.xz )
firamono? ( ${COMMON_URI}/FiraMono.tar.xz -> FiraMono-nf-${PV}.tar.xz )
geistmono? ( ${COMMON_URI}/GeistMono.tar.xz -> GeistMono-nf-${PV}.tar.xz )
go-mono? ( ${COMMON_URI}/Go-Mono.tar.xz -> Go-Mono-nf-${PV}.tar.xz )
gohu? ( ${COMMON_URI}/Gohu.tar.xz -> Gohu-nf-${PV}.tar.xz )
hack? ( ${COMMON_URI}/Hack.tar.xz -> Hack-nf-${PV}.tar.xz )
hasklig? ( ${COMMON_URI}/Hasklig.tar.xz -> Hasklig-nf-${PV}.tar.xz )
heavydata? ( ${COMMON_URI}/HeavyData.tar.xz -> HeavyData-nf-${PV}.tar.xz )
hermit? ( ${COMMON_URI}/Hermit.tar.xz -> Hermit-nf-${PV}.tar.xz )
ia-writer? ( ${COMMON_URI}/iA-Writer.tar.xz -> iA-Writer-nf-${PV}.tar.xz )
ibmplexmono? ( ${COMMON_URI}/IBMPlexMono.tar.xz -> IBMPlexMono-nf-${PV}.tar.xz )
inconsolata? ( ${COMMON_URI}/Inconsolata.tar.xz -> Inconsolata-nf-${PV}.tar.xz )
inconsolatago? ( ${COMMON_URI}/InconsolataGo.tar.xz -> InconsolataGo-nf-${PV}.tar.xz )
inconsolatalgc? ( ${COMMON_URI}/InconsolataLGC.tar.xz -> InconsolataLGC-nf-${PV}.tar.xz )
intelonemono? ( ${COMMON_URI}/IntelOneMono.tar.xz -> IntelOneMono-nf-${PV}.tar.xz )
iosevka? ( ${COMMON_URI}/Iosevka.tar.xz -> Iosevka-nf-${PV}.tar.xz )
iosevkaterm? ( ${COMMON_URI}/IosevkaTerm.tar.xz -> IosevkaTerm-nf-${PV}.tar.xz )
iosevkatermslab? ( ${COMMON_URI}/IosevkaTermSlab.tar.xz -> IosevkaTermSlab-nf-${PV}.tar.xz )
jetbrainsmono? ( ${COMMON_URI}/JetBrainsMono.tar.xz -> JetBrainsMono-nf-${PV}.tar.xz )
lekton? ( ${COMMON_URI}/Lekton.tar.xz -> Lekton-nf-${PV}.tar.xz )
liberationmono? ( ${COMMON_URI}/LiberationMono.tar.xz -> LiberationMono-nf-${PV}.tar.xz )
lilex? ( ${COMMON_URI}/Lilex.tar.xz -> Lilex-nf-${PV}.tar.xz )
martianmono? ( ${COMMON_URI}/MartianMono.tar.xz -> MartianMono-nf-${PV}.tar.xz )
meslo? ( ${COMMON_URI}/Meslo.tar.xz -> Meslo-nf-${PV}.tar.xz )
monaspace? ( ${COMMON_URI}/Monaspace.tar.xz -> Monaspace-nf-${PV}.tar.xz )
monofur? ( ${COMMON_URI}/Monofur.tar.xz -> Monofur-nf-${PV}.tar.xz )
monoid? ( ${COMMON_URI}/Monoid.tar.xz -> Monoid-nf-${PV}.tar.xz )
mononoki? ( ${COMMON_URI}/Mononoki.tar.xz -> Mononoki-nf-${PV}.tar.xz )
mplus? ( ${COMMON_URI}/MPlus.tar.xz -> MPlus-nf-${PV}.tar.xz )
nerdfontssymbolsonly? ( ${COMMON_URI}/NerdFontsSymbolsOnly.tar.xz -> NerdFontsSymbolsOnly-nf-${PV}.tar.xz )
noto? ( ${COMMON_URI}/Noto.tar.xz -> Noto-nf-${PV}.tar.xz )
opendyslexic? ( ${COMMON_URI}/OpenDyslexic.tar.xz -> OpenDyslexic-nf-${PV}.tar.xz )
overpass? ( ${COMMON_URI}/Overpass.tar.xz -> Overpass-nf-${PV}.tar.xz )
profont? ( ${COMMON_URI}/ProFont.tar.xz -> ProFont-nf-${PV}.tar.xz )
proggyclean? ( ${COMMON_URI}/ProggyClean.tar.xz -> ProggyClean-nf-${PV}.tar.xz )
recursive? ( ${COMMON_URI}/Recursive.tar.xz -> Recursive-nf-${PV}.tar.xz )
robotomono? ( ${COMMON_URI}/RobotoMono.tar.xz -> RobotoMono-nf-${PV}.tar.xz )
sharetechmono? ( ${COMMON_URI}/ShareTechMono.tar.xz -> ShareTechMono-nf-${PV}.tar.xz )
sourcecodepro? ( ${COMMON_URI}/SourceCodePro.tar.xz -> SourceCodePro-nf-${PV}.tar.xz )
spacemono? ( ${COMMON_URI}/SpaceMono.tar.xz -> SpaceMono-nf-${PV}.tar.xz )
terminus? ( ${COMMON_URI}/Terminus.tar.xz -> Terminus-nf-${PV}.tar.xz )
tinos? ( ${COMMON_URI}/Tinos.tar.xz -> Tinos-nf-${PV}.tar.xz )
ubuntu? ( ${COMMON_URI}/Ubuntu.tar.xz -> Ubuntu-nf-${PV}.tar.xz )
ubuntumono? ( ${COMMON_URI}/UbuntuMono.tar.xz -> UbuntuMono-nf-${PV}.tar.xz )
ubuntusans? ( ${COMMON_URI}/UbuntuSans.tar.xz -> UbuntuSans-nf-${PV}.tar.xz )
victormono? ( ${COMMON_URI}/VictorMono.tar.xz -> VictorMono-nf-${PV}.tar.xz )
zedmono? ( ${COMMON_URI}/ZedMono.tar.xz -> ZedMono-nf-${PV}.tar.xz )
"
S="${WORKDIR}"
LICENSE="MIT
OFL-1.1
Apache-2.0
CC-BY-SA-4.0
BitstreamVera
BSD
WTFPL-2
Vic-Fieger-License
UbuntuFontLicense-1.0"
SLOT="0"
KEYWORDS="~amd64 ~loong ~x86"
RDEPEND="media-libs/fontconfig"
CHECKREQS_DISK_BUILD="3G"
CHECKREQS_DISK_USR="4G"
IUSE_FLAGS=(${FONTS[*],,})
IUSE="+nerdfontssymbolsonly ${IUSE_FLAGS[*]}"
REQUIRED_USE="|| ( nerdfontssymbolsonly ${IUSE_FLAGS[*]} )"
FONT_S=${S}
pkg_pretend() {
check-reqs_pkg_setup
}
src_install() {
declare -A font_filetypes
local otf_file_number ttf_file_number
otf_file_number=$(ls "${S}" | grep -i otf | wc -l)
ttf_file_number=$(ls "${S}" | grep -i ttf | wc -l)
if [[ ${otf_file_number} != 0 ]]; then
font_filetypes[otf]=
fi
if [[ ${ttf_file_number} != 0 ]]; then
font_filetypes[ttf]=
fi
FONT_SUFFIX="${!font_filetypes[@]}"
font_src_install
}
pkg_postinst() {
einfo "Installing font-patcher via an ebuild is hard, because paths are hardcoded differently"
einfo "in .sh files. You can still get it and use it by git cloning the nerd-font project and"
einfo "running it from the cloned directory."
einfo "https://github.com/ryanoasis/nerd-fonts"
elog "You might have to enable 50-user.conf by using"
elog "eselect fontconfig"
}