Unverified Commit 326f02df authored by Peder Bergebakken Sundt's avatar Peder Bergebakken Sundt Committed by GitHub
Browse files

cozette: build psfu font for vty (#371226)

parents 6683adea 39409302
Loading
Loading
Loading
Loading
+712 −0
Original line number Diff line number Diff line
[
  # ISO-8859-1
  "U+0000"
  "U+0001"
  "U+0002"
  "U+0003"
  "U+0004"
  "U+0005"
  "U+0006"
  "U+0007"
  "U+0008"
  "U+0009"
  "U+000A"
  "U+000B"
  "U+000C"
  "U+000D"
  "U+000E"
  "U+000F"
  "U+0010"
  "U+0011"
  "U+0012"
  "U+0013"
  "U+0014"
  "U+0015"
  "U+0016"
  "U+0017"
  "U+0018"
  "U+0019"
  "U+001A"
  "U+001B"
  "U+001C"
  "U+001D"
  "U+001E"
  "U+001F"
  "U+0020"
  "U+0021"
  "U+0022"
  "U+0023"
  "U+0024"
  "U+0025"
  "U+0026"
  "U+0027"
  "U+0028"
  "U+0029"
  "U+002A"
  "U+002B"
  "U+002C"
  "U+002D"
  "U+002E"
  "U+002F"
  "U+0030"
  "U+0031"
  "U+0032"
  "U+0033"
  "U+0034"
  "U+0035"
  "U+0036"
  "U+0037"
  "U+0038"
  "U+0039"
  "U+003A"
  "U+003B"
  "U+003C"
  "U+003D"
  "U+003E"
  "U+003F"
  "U+0040"
  "U+0041"
  "U+0042"
  "U+0043"
  "U+0044"
  "U+0045"
  "U+0046"
  "U+0047"
  "U+0048"
  "U+0049"
  "U+004A"
  "U+004B"
  "U+004C"
  "U+004D"
  "U+004E"
  "U+004F"
  "U+0050"
  "U+0051"
  "U+0052"
  "U+0053"
  "U+0054"
  "U+0055"
  "U+0056"
  "U+0057"
  "U+0058"
  "U+0059"
  "U+005A"
  "U+005B"
  "U+005C"
  "U+005D"
  "U+005E"
  "U+005F"
  "U+0060"
  "U+0061"
  "U+0062"
  "U+0063"
  "U+0064"
  "U+0065"
  "U+0066"
  "U+0067"
  "U+0068"
  "U+0069"
  "U+006A"
  "U+006B"
  "U+006C"
  "U+006D"
  "U+006E"
  "U+006F"
  "U+0070"
  "U+0071"
  "U+0072"
  "U+0073"
  "U+0074"
  "U+0075"
  "U+0076"
  "U+0077"
  "U+0078"
  "U+0079"
  "U+007A"
  "U+007B"
  "U+007C"
  "U+007D"
  "U+007E"
  "U+007F"
  "U+0080"
  "U+0081"
  "U+0082"
  "U+0083"
  "U+0084"
  "U+0085"
  "U+0086"
  "U+0087"
  "U+0088"
  "U+0089"
  "U+008A"
  "U+008B"
  "U+008C"
  "U+008D"
  "U+008E"
  "U+008F"
  "U+0090"
  "U+0091"
  "U+0092"
  "U+0093"
  "U+0094"
  "U+0095"
  "U+0096"
  "U+0097"
  "U+0098"
  "U+0099"
  "U+009A"
  "U+009B"
  "U+009C"
  "U+009D"
  "U+009E"
  "U+009F"
  "U+00A0"
  "U+00A1"
  "U+00A2"
  "U+00A3"
  "U+00A4"
  "U+00A5"
  "U+00A6"
  "U+00A7"
  "U+00A8"
  "U+00A9"
  "U+00AA"
  "U+00AB"
  "U+00AC"
  "U+00AD"
  "U+00AE"
  "U+00AF"
  "U+00B0"
  "U+00B1"
  "U+00B2"
  "U+00B3"
  "U+00B4"
  "U+00B5"
  "U+00B6"
  "U+00B7"
  "U+00B8"
  "U+00B9"
  "U+00BA"
  "U+00BB"
  "U+00BC"
  "U+00BD"
  "U+00BE"
  "U+00BF"
  "U+00C0"
  "U+00C1"
  "U+00C2"
  "U+00C3"
  "U+00C4"
  "U+00C5"
  "U+00C6"
  "U+00C7"
  "U+00C8"
  "U+00C9"
  "U+00CA"
  "U+00CB"
  "U+00CC"
  "U+00CD"
  "U+00CE"
  "U+00CF"
  "U+00D0"
  "U+00D1"
  "U+00D2"
  "U+00D3"
  "U+00D4"
  "U+00D5"
  "U+00D6"
  "U+00D7"
  "U+00D8"
  "U+00D9"
  "U+00DA"
  "U+00DB"
  "U+00DC"
  "U+00DD"
  "U+00DE"
  "U+00DF"
  "U+00E0"
  "U+00E1"
  "U+00E2"
  "U+00E3"
  "U+00E4"
  "U+00E5"
  "U+00E6"
  "U+00E7"
  "U+00E8"
  "U+00E9"
  "U+00EA"
  "U+00EB"
  "U+00EC"
  "U+00ED"
  "U+00EE"
  "U+00EF"
  "U+00F0"
  "U+00F1"
  "U+00F2"
  "U+00F3"
  "U+00F4"
  "U+00F5"
  "U+00F6"
  "U+00F7"
  "U+00F8"
  "U+00F9"
  "U+00FA"
  "U+00FB"
  "U+00FC"
  "U+00FD"
  "U+00FE"
  "U+00FF"

  # Box Drawing and Block Elements
  "U+2500"
  "U+2501"
  "U+2502"
  "U+2503"
  "U+2504"
  "U+2505"
  "U+2506"
  "U+2507"
  "U+2508"
  "U+2509"
  "U+250A"
  "U+250B"
  "U+250C"
  "U+250D"
  "U+250E"
  "U+250F"
  "U+2510"
  "U+2511"
  "U+2512"
  "U+2513"
  "U+2514"
  "U+2515"
  "U+2516"
  "U+2517"
  "U+2518"
  "U+2519"
  "U+251A"
  "U+251B"
  "U+251C"
  "U+251D"
  "U+251E"
  "U+251F"
  "U+2520"
  "U+2521"
  "U+2522"
  "U+2523"
  "U+2524"
  "U+2525"
  "U+2526"
  "U+2527"
  "U+2528"
  "U+2529"
  "U+252A"
  "U+252B"
  "U+252C"
  "U+252D"
  "U+252E"
  "U+252F"
  "U+2530"
  "U+2531"
  "U+2532"
  "U+2533"
  "U+2534"
  "U+2535"
  "U+2536"
  "U+2537"
  "U+2538"
  "U+2539"
  "U+253A"
  "U+253B"
  "U+253C"
  "U+253D"
  "U+253E"
  "U+253F"
  "U+2540"
  "U+2541"
  "U+2542"
  "U+2543"
  "U+2544"
  "U+2545"
  "U+2546"
  "U+2547"
  "U+2548"
  "U+2549"
  "U+254A"
  "U+254B"
  "U+254C"
  "U+254D"
  "U+254E"
  "U+254F"
  "U+2550"
  "U+2551"
  "U+2552"
  "U+2553"
  "U+2554"
  "U+2555"
  "U+2556"
  "U+2557"
  "U+2558"
  "U+2559"
  "U+255A"
  "U+255B"
  "U+255C"
  "U+255D"
  "U+255E"
  "U+255F"
  "U+2560"
  "U+2561"
  "U+2562"
  "U+2563"
  "U+2564"
  "U+2565"
  "U+2566"
  "U+2567"
  "U+2568"
  "U+2569"
  "U+256A"
  "U+256B"
  "U+256C"
  "U+256D"
  "U+256E"
  "U+256F"
  "U+2570"
  "U+2571"
  "U+2572"
  "U+2573"
  "U+2574"
  "U+2575"
  "U+2576"
  "U+2577"
  "U+2578"
  "U+2579"
  "U+257A"
  "U+257B"
  "U+257C"
  "U+257D"
  "U+257E"
  "U+257F"
  "U+2580"
  "U+2581"
  "U+2582"
  "U+2583"
  "U+2584"
  "U+2585"
  "U+2586"
  "U+2587"
  "U+2588"
  "U+2589"
  "U+258A"
  "U+258B"
  "U+258C"
  "U+258D"
  "U+258E"
  "U+258F"
  "U+2590"
  "U+2591"
  "U+2592"
  "U+2593"
  #"U+2594"
  #"U+2595"
  "U+2596"
  "U+2597"
  "U+2598"
  "U+2599"
  "U+259A"
  "U+259B"
  "U+259C"
  "U+259D"
  "U+259E"
  "U+259F"

  # Braille Patterns
  #"U+2800"
  "U+2801"
  "U+2802"
  "U+2803"
  "U+2804"
  "U+2805"
  "U+2806"
  "U+2807"
  "U+2808"
  "U+2809"
  "U+280A"
  "U+280B"
  "U+280C"
  "U+280D"
  "U+280E"
  "U+280F"
  "U+2810"
  "U+2811"
  "U+2812"
  "U+2813"
  "U+2814"
  "U+2815"
  "U+2816"
  "U+2817"
  "U+2818"
  "U+2819"
  "U+281A"
  "U+281B"
  "U+281C"
  "U+281D"
  "U+281E"
  "U+281F"
  "U+2820"
  "U+2821"
  "U+2822"
  "U+2823"
  "U+2824"
  "U+2825"
  "U+2826"
  "U+2827"
  "U+2828"
  "U+2829"
  "U+282A"
  "U+282B"
  "U+282C"
  "U+282D"
  "U+282E"
  "U+282F"
  "U+2830"
  "U+2831"
  "U+2832"
  "U+2833"
  "U+2834"
  "U+2835"
  "U+2836"
  "U+2837"
  "U+2838"
  "U+2839"
  "U+283A"
  "U+283B"
  "U+283C"
  "U+283D"
  "U+283E"
  "U+283F"
  "U+2840"
  "U+2841"
  "U+2842"
  "U+2843"
  "U+2844"
  "U+2845"
  "U+2846"
  "U+2847"
  "U+2848"
  "U+2849"
  "U+284A"
  "U+284B"
  "U+284C"
  "U+284D"
  "U+284E"
  "U+284F"
  "U+2850"
  "U+2851"
  "U+2852"
  "U+2853"
  "U+2854"
  "U+2855"
  "U+2856"
  "U+2857"
  "U+2858"
  "U+2859"
  "U+285A"
  "U+285B"
  "U+285C"
  "U+285D"
  "U+285E"
  "U+285F"
  "U+2860"
  "U+2861"
  "U+2862"
  "U+2863"
  "U+2864"
  "U+2865"
  "U+2866"
  "U+2867"
  "U+2868"
  "U+2869"
  "U+286A"
  "U+286B"
  "U+286C"
  "U+286D"
  "U+286E"
  "U+286F"
  "U+2870"
  "U+2871"
  "U+2872"
  "U+2873"
  "U+2874"
  "U+2875"
  "U+2876"
  "U+2877"
  "U+2878"
  "U+2879"
  "U+287A"
  "U+287B"
  "U+287C"
  "U+287D"
  "U+287E"
  "U+287F"
  "U+2880"
  "U+2881"
  "U+2882"
  "U+2883"
  "U+2884"
  "U+2885"
  "U+2886"
  "U+2887"
  "U+2888"
  "U+2889"
  "U+288A"
  "U+288B"
  "U+288C"
  "U+288D"
  "U+288E"
  "U+288F"
  "U+2890"
  "U+2891"
  "U+2892"
  "U+2893"
  "U+2894"
  "U+2895"
  "U+2896"
  "U+2897"
  "U+2898"
  "U+2899"
  "U+289A"
  "U+289B"
  "U+289C"
  "U+289D"
  "U+289E"
  "U+289F"
  "U+28A0"
  "U+28A1"
  "U+28A2"
  "U+28A3"
  "U+28A4"
  "U+28A5"
  "U+28A6"
  "U+28A7"
  "U+28A8"
  "U+28A9"
  "U+28AA"
  "U+28AB"
  "U+28AC"
  "U+28AD"
  "U+28AE"
  "U+28AF"
  "U+28B0"
  "U+28B1"
  "U+28B2"
  "U+28B3"
  "U+28B4"
  "U+28B5"
  "U+28B6"
  "U+28B7"
  "U+28B8"
  "U+28B9"
  "U+28BA"
  "U+28BB"
  "U+28BC"
  "U+28BD"
  "U+28BE"
  "U+28BF"
  "U+28C0"
  "U+28C1"
  "U+28C2"
  "U+28C3"
  "U+28C4"
  "U+28C5"
  "U+28C6"
  "U+28C7"
  "U+28C8"
  "U+28C9"
  "U+28CA"
  "U+28CB"
  "U+28CC"
  "U+28CD"
  "U+28CE"
  "U+28CF"
  "U+28D0"
  "U+28D1"
  "U+28D2"
  "U+28D3"
  "U+28D4"
  "U+28D5"
  "U+28D6"
  "U+28D7"
  "U+28D8"
  "U+28D9"
  "U+28DA"
  "U+28DB"
  "U+28DC"
  "U+28DD"
  "U+28DE"
  "U+28DF"
  "U+28E0"
  "U+28E1"
  "U+28E2"
  "U+28E3"
  "U+28E4"
  "U+28E5"
  "U+28E6"
  "U+28E7"
  "U+28E8"
  "U+28E9"
  "U+28EA"
  "U+28EB"
  "U+28EC"
  "U+28ED"
  "U+28EE"
  "U+28EF"
  "U+28F0"
  "U+28F1"
  "U+28F2"
  "U+28F3"
  "U+28F4"
  "U+28F5"
  "U+28F6"
  "U+28F7"
  "U+28F8"
  "U+28F9"
  "U+28FA"
  "U+28FB"
  "U+28FC"
  "U+28FD"
  "U+28FE"
  "U+28FF"

  # Superscripts and Subscripts
  "U+2070"
  "U+2074"
  "U+2075"
  "U+2076"
  "U+2077"
  "U+2078"
  "U+2079"

  "U+2080"
  "U+2081"
  "U+2082"
  "U+2083"
  "U+2084"
  "U+2085"
  "U+2086"
  "U+2087"
  "U+2088"
  "U+2089"

  # Powerline and Extra Symbols
  "U+E0A0"
  "U+E0A1"
  "U+E0A2"
  "U+E0B0"
  "U+E0B1"
  "U+E0B2"
  "U+E0B3"

  "U+E0A3" # column number
  "U+E0B4" # right half circle
  "U+E0B6" # left half circle }
]
+22 −0
Original line number Diff line number Diff line
@@ -2,8 +2,14 @@
  lib,
  stdenvNoCC,
  fetchzip,
  writeText,
  bdf2psf,
  codepoints ? (import ./default-codepoints.nix),
}:

let
  codepoints_set = writeText "codepoints.set" (builtins.concatStringsSep "\n" codepoints);
in
stdenvNoCC.mkDerivation rec {
  pname = "cozette";
  version = "1.29.0";
@@ -15,6 +21,20 @@ stdenvNoCC.mkDerivation rec {
    hash = "sha256-DHUnCzp6c3d57cfkO2kH+czXRiqRWn6DBTo9NVTghQ0=";
  };

  nativeBuildInputs = [ bdf2psf ];

  postBuild = ''
    # Confine Powerline left divider symbols to strictly 6 pixels wide
    awk -i inplace 'BEGIN { l=-128 } $1=="ENCODING"&&($2==57520||$2==57521||$2==57524) { l=FNR } l+4<FNR&&FNR<=l+17 { printf("%02X\n", and(lshift(strtonum("0x"$1), 1), 0xFF)); next; }{ print }' cozette.bdf
    awk -i inplace 'BEGIN { l=-128 } $1=="ENCODING"&&($2==57520||$2==57521||$2==57524) { l=FNR } l+4<FNR&&FNR<=l+30 { printf("%04X\n", and(lshift(strtonum("0x"$1), 1), 0xFFFF)); next; }{ print }' cozette_hidpi.bdf

    # Fix for bdf2psf limitation (See https://github.com/slavfox/Cozette/issues/122#issuecomment-2165328416)
    sed -i -e 's/^BBX [2-8]/BBX 9/g' cozette_hidpi.bdf

    bdf2psf --fb cozette.bdf ${bdf2psf}/share/bdf2psf/standard.equivalents ${codepoints_set} 512 cozette6x13.psfu
    bdf2psf --fb cozette_hidpi.bdf ${bdf2psf}/share/bdf2psf/standard.equivalents ${codepoints_set} 512 cozette12x26.psfu
  '';

  installPhase = ''
    runHook preInstall

@@ -25,6 +45,8 @@ stdenvNoCC.mkDerivation rec {
    install -Dm644 *.woff -t $out/share/fonts/woff
    install -Dm644 *.woff2 -t $out/share/fonts/woff2

    install -Dm644 *.psfu -t "$out/share/consolefonts/"

    runHook postInstall
  '';