{ description = "Various fonts I've found online"; inputs = { nixpkgs.url = "github:nixos/nixpkgs"; artemist = { url = "git+https://git.mildlyfunctional.gay/artemist/packages.git"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, artemist, }: with nixpkgs.lib; let forAllSystems = nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed; makePkgs = system: import nixpkgs { inherit system; overlays = [ self.overlays.default artemist.overlays.default ]; config.allowUnfree = true; }; localFonts = [ { # Popular font, used on NYC Subway name = "Akzidenz-Grotesk Pro"; dir = ./Akzidenz-Grotesk-Pro; license = licenses.unfree; author = "Berthold Type Foundry"; } { # Font used on DSB departure boards name = "AtB"; dir = ./AtB; license = licenses.unfree; author = "Kontrapunkt"; } { # Brussels-specific font name = "Brusseline"; dir = ./Brusseline; license = licenses.unfree; author = "Eric de Berranger"; } { # Free handwriting font name = "Caveat"; files = [ ./Caveat.ttf ]; license = licenses.ofl; author = "Pablo Impallari and Alexi Vanyashin"; } { # Twitter custom font, based on GT America name = "Chirp"; dir = ./Chirp; license = licenses.unfree; author = "Grilli Type Foundry"; } { # Deutsche Bahn website font name = "DB Screen"; dir = ./DB-Screen; license = licenses.unfree; author = "URW Type Foundry"; } { # Font with a large number of invented scripts name = "Fairfax HD"; dir = ./Fairfax-HD; license = licenses.ofl; author = "Kreative Software"; } { # Popular font, used on Amtrak name = "Frutiger"; dir = ./Frutiger; license = licenses.unfree; author = "Adrian Frutiger"; } { # Discord custom font name = "gg sans"; dir = ./ggsans; license = licenses.unfree; author = "Colophon Foundry"; } { # Several related fonts used for London Underground: # * Johnston 100: Extension of original Johnston # * New Johnston: Modification of original Johnston # * P22 Underground: Version sold to public name = "Johnston"; dir = ./Johnston; license = licenses.unfree; author = "Edward Johnston et al"; } { # Mysterious all-uppercase hand-style font for MIVB/STIB name = "MIVB STIB"; dir = ./MIVB; license = licenses.unfree; author = "unknown"; } { # Also called "NR Brunel, used on UK railways in 2010s name = "New Brunel"; dir = ./New-Brunel; license = licenses.unfree; author = "David Quay"; } { # Modern expansion of machine-readable font name = "OCR-B"; files = [ ./OCR-B-Regular.otf ]; license = licenses.cc-by-40; author = "Matthew Anderson"; } { # Custom font used for RATP services in Parism name = "Parisine"; dir = ./Parisine; license = licenses.unfree; author = "Jean-François Porchez"; } { # Font used on DSB website, similar to signage name = "Via"; dir = ./Via; license = licenses.unfree; author = "Kontrapunkt"; } ]; in { overlays.default = ( final: prev: let buildLocalFont = final.callPackage ./nix/buildLocalFont.nix { }; in { extraFonts = listToAttrs ( map (font: { name = replaceStrings [ " " ] [ "-" ] (toLower font.name); value = buildLocalFont font; }) localFonts ); appleFonts = final.callPackage ./apple { ipsw = if final ? ipsw then final.ipsw else artemist.packages.${final.stdenv.system}.ipsw; }; } ); packages = forAllSystems ( system: builtins.listToAttrs ( map (name: { inherit name; value = (makePkgs system).${name} // { type = "derivation"; name = "dummy-attrset"; }; }) [ "extraFonts" "appleFonts" ] ) ); formatter = forAllSystems (system: (makePkgs system).nixfmt-rfc-style); }; }