diff --git a/pkgs/default.nix b/pkgs/default.nix index 0da3bb3..ccf1b66 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -4,13 +4,13 @@ let overlay = final: prev: { - dina-psf = prev.callPackage ./fonts/dina-psf.nix { }; + dina-psf = prev.callPackage ./fonts/dina-psf/default.nix { }; ttf2psf = prev.callPackage ./fonts/ttf2psf.nix { }; wqy-zenhei = prev.callPackage ./fonts/wqy-zenhei.nix { }; wqy-microhei = prev.callPackage ./fonts/wqy-microhei.nix { }; wqy-bitmapsong = prev.callPackage ./fonts/wqy-bitmapsong.nix { }; - ly = prev.callPackage ./programs/ly/default.nix { }; + # ly = prev.callPackage ./programs/ly/default.nix { }; }; in { diff --git a/pkgs/fonts/dina-psf.nix b/pkgs/fonts/dina-psf.nix deleted file mode 100644 index 2767c75..0000000 --- a/pkgs/fonts/dina-psf.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ - pkgs, - ... -}: - -pkgs.stdenv.mkDerivation { - pname = "dina-psfu"; - version = "1.0.0"; - - unpackPhase = '' - true - ''; - - buildInputs = with pkgs; [ - bdf2psf - fontforge - kbd - ]; - - buildPhase = '' - # Get the base Dina font - cp ${pkgs.dina-font.bdf}/share/fonts/misc/Dina_r400-9.bdf ./dina.bdf - - # Set the AVERAGE_WIDTH property on the font - sed 's/STARTPROPERTIES 16/STARTPROPERTIES 17\ - AVERAGE_WIDTH 70/' ./dina.bdf > ./dina-enc.bdf - - # # Reencode the font from code page CP1252 (Windows) to unicode - # fontforge -lang=ff -c "Open(\"dina-mod.bdf\"); Reencode(\"win\", 1); Reencode(\"iso10646-1\"); Generate(\"dina-enc.bdf\")" - # mv dina-enc-*.bdf dina-enc.bdf - - # Convert the bdf to psf - bdf2psf --fb ./dina-enc.bdf \ - ${pkgs.bdf2psf}/share/bdf2psf/standard.equivalents \ - ${pkgs.bdf2psf}/share/bdf2psf/fontsets/Uni3.512 \ - 512 ./dina-enc.psfu ./dina.sfm - - # Get the font table - psfgettable ./dina-enc.psfu ./dina.table - - # Add some entries to the font table - echo "0x0e U+2518" >> ./dina.table - echo "0x0f U+2514" >> ./dina.table - echo "0x10 U+250c" >> ./dina.table - echo "0x11 U+2510" >> ./dina.table - echo "0x12 U+2500" >> ./dina.table - echo "0x13 U+2502" >> ./dina.table - echo "0x14 U+2524" >> ./dina.table - echo "0x15 U+2534" >> ./dina.table - echo "0x16 U+251c" >> ./dina.table - echo "0x17 U+252c" >> ./dina.table - echo "0x18 U+253c" >> ./dina.table - echo "0x19 U+2592" >> ./dina.table - - # Rebuild the font - psfstriptable ./dina-enc.psfu ./dina-stripped.psfu - psfaddtable ./dina-stripped.psfu ./dina.table ./dina.psfu - - # For debugging, get the table again - psfgettable ./dina.psfu ./dina-final.table - ''; - - installPhase = '' - install -Dm644 -t $out/debug * - install -Dm644 -t $out/share/consolefonts dina.psfu - ''; -} diff --git a/pkgs/fonts/dina-psf/PC437.256 b/pkgs/fonts/dina-psf/PC437.256 new file mode 100644 index 0000000..75ca33f --- /dev/null +++ b/pkgs/fonts/dina-psf/PC437.256 @@ -0,0 +1,257 @@ +# Created from the ascii2u table in bdf2psf +U+00A0 +U+25A0 +U+00B2 +U+207F +U+221A +U+00B7 +U+2219 +U+00B0 +U+2248 +U+00F7 +U+2321 +U+2320 +U+2264 +U+2265 +U+00B1 +U+2261 +U+2229 +U+03B5 +U+03C6 +U+221E +U+03B4 +U+03A9 +U+0398 +U+03A6 +U+03C4 +U+00B5 +U+03C3 +U+03A3 +U+03C0 +U+0393 +U+00DF +U+03B1 +U+2580 +U+2590 +U+258C +U+2584 +U+2588 +U+250C +U+2518 +U+256A +U+256B +U+2553 +U+2552 +U+2558 +U+2559 +U+2565 +U+2564 +U+2568 +U+2567 +U+256C +U+2550 +U+2560 +U+2566 +U+2569 +U+2554 +U+255A +U+255F +U+255E +U+253C +U+2500 +U+251C +U+252C +U+2534 +U+2514 +U+2510 +U+255B +U+255C +U+255D +U+2557 +U+2551 +U+2563 +U+2555 +U+2556 +U+2562 +U+2561 +U+2524 +U+2502 +U+2593 +U+2592 +U+2591 +U+00BB +U+00AB +U+00A1 +U+00BC +U+00BD +U+00AC +U+2310 +U+00BF +U+00BA +U+00AA +U+00D1 +U+00F1 +U+00FA +U+00F3 +U+00ED +U+00E1 +U+0192 +U+20A7 +U+00A5 +U+00A3 +U+00A2 +U+00DC +U+00D6 +U+00FF +U+00F9 +U+00FB +U+00F2 +U+00F6 +U+00F4 +U+00C6 +U+00E6 +U+00C9 +U+00C5 +U+00C4 +U+00EC +U+00EE +U+00EF +U+00E8 +U+00EB +U+00EA +U+00E7 +U+00E5 +U+00E0 +U+00E4 +U+00E2 +U+00E9 +U+00FC +U+00C7 +U+007F +U+007E +U+007D +U+007C +U+007B +U+007A +U+0079 +U+0078 +U+0077 +U+0076 +U+0075 +U+0074 +U+0073 +U+0072 +U+0071 +U+0070 +U+006F +U+006E +U+006D +U+006C +U+006B +U+006A +U+0069 +U+0068 +U+0067 +U+0066 +U+0065 +U+0064 +U+0063 +U+0062 +U+0061 +U+0060 +U+005F +U+005E +U+005D +U+005C +U+005B +U+005A +U+0059 +U+0058 +U+0057 +U+0056 +U+0055 +U+0054 +U+0053 +U+0052 +U+0051 +U+0050 +U+004F +U+004E +U+004D +U+004C +U+004B +U+004A +U+0049 +U+0048 +U+0047 +U+0046 +U+0045 +U+0044 +U+0043 +U+0042 +U+0041 +U+0040 +U+003F +U+003E +U+003D +U+003C +U+003B +U+003A +U+0039 +U+0038 +U+0037 +U+0036 +U+0035 +U+0034 +U+0033 +U+0032 +U+0031 +U+0030 +U+002F +U+002E +U+002D +U+002C +U+002B +U+002A +U+0029 +U+0028 +U+0027 +U+0026 +U+0025 +U+0024 +U+0023 +U+0022 +U+0021 +U+0020 +U+25bc +U+25b2 +U+2194 +U+221f +U+2190 +U+2192 +U+2193 +U+2191 +U+21a8 +U+25ac +U+00a7 +U+00b6 +U+203c +U+2195 +U+25c4 +U+25ba +U+263c +U+266b +U+266a +U+2640 +U+2642 +U+25d9 +U+25cb +U+25d8 +U+2022 +U+2660 +U+2663 +U+2666 +U+2665 +U+263b +U+263a +U+fffd \ No newline at end of file diff --git a/pkgs/fonts/dina-psf/default.nix b/pkgs/fonts/dina-psf/default.nix new file mode 100644 index 0000000..d770aa0 --- /dev/null +++ b/pkgs/fonts/dina-psf/default.nix @@ -0,0 +1,88 @@ +{ + pkgs, + ... +}: + +pkgs.stdenv.mkDerivation { + pname = "dina-psfu"; + version = "1.0.0"; + + src = pkgs.fetchzip { + url = "https://www.dcmembers.com/jibsen/download/61/?wpdmdl=61"; + hash = "sha256-JK+vnOyhAbwT825S+WKbQuWgRrfZZHfyhaMQ/6ljO8s="; + extension = "zip"; + stripRoot = false; + }; + + buildInputs = with pkgs; [ + bdf2psf + fontforge + kbd + ]; + + buildPhase = '' + # Get the base Dina font + # cp ${pkgs.dina-font.bdf}/share/fonts/misc/Dina_r400-9.bdf ./dina.bdf + cp BDF/Dina_r400-9.bdf ./dina.bdf + + # Set the AVERAGE_WIDTH property on the font + sed 's/STARTPROPERTIES 16/STARTPROPERTIES 17\ + AVERAGE_WIDTH 70/' ./dina.bdf > ./dina-enc.bdf + + # # Reencode the font from code page CP1252 (Windows) to unicode + # fontforge -lang=ff -c "Open(\"dina-mod.bdf\"); Reencode(\"win\", 1); Reencode(\"iso10646-1\"); Generate(\"dina-enc.bdf\")" + # mv dina-enc-*.bdf dina-enc.bdf + + # Create the fontset + head -n 256 ${pkgs.bdf2psf}/share/bdf2psf/fontsets/Uni1.512 > Uni1.256 + + # Create the fontset + cp ${./PC437.256} PC437.256 + + # Create the equivalents file + touch empty.equivalents + + # # Convert the bdf to psf + # bdf2psf --fb ./dina-enc.bdf \ + # ${pkgs.bdf2psf}/share/bdf2psf/standard.equivalents \ + # ${pkgs.bdf2psf}/share/bdf2psf/fontsets/Lat2.256 \ + # 256 ./dina-enc.psfu ./dina.sfm + + # Convert the bdf to psf + bdf2psf --fb ./dina-enc.bdf \ + ./empty.equivalents \ + ./Uni1.256 \ + 256 ./dina-enc.psfu ./dina.sfm + + # Get the font table + psfgettable ./dina-enc.psfu ./dina.table + + # Add some entries to the font table + # echo "0x0e U+2518" >> ./dina.table + # echo "0x0f U+2514" >> ./dina.table + # echo "0x10 U+250c" >> ./dina.table + # echo "0x11 U+2510" >> ./dina.table + # echo "0x12 U+2500" >> ./dina.table + # echo "0x13 U+2502" >> ./dina.table + # echo "0x14 U+2524" >> ./dina.table + # echo "0x15 U+2534" >> ./dina.table + # echo "0x16 U+251c" >> ./dina.table + # echo "0x17 U+252c" >> ./dina.table + # echo "0x18 U+253c" >> ./dina.table + # echo "0x19 U+2592" >> ./dina.table + + # Rebuild the font + psfstriptable ./dina-enc.psfu ./dina-stripped.psfu + psfaddtable ./dina-stripped.psfu ./dina.table ./dina.psfu + + # For debugging, get the table again + psfgettable ./dina.psfu ./dina-final.table + ${pkgs.psftools}/bin/psf2bdf ./dina.psfu ./dina-final.bdf + ''; + + installPhase = '' + install -Dm644 -t $out/debug ./*.* + install -Dm644 -t $out/debug/BDF ./BDF/*.* + install -Dm644 -t $out/share/consolefonts dina.psfu + ''; +}