Initial commit

This commit is contained in:
Adam Kruszewski 2024-04-30 13:26:32 +02:00
commit e3d9f66538
3 changed files with 146 additions and 0 deletions

6
build.sh Executable file
View file

@ -0,0 +1,6 @@
#!/bin/bash
docker run -it --rm -v $PWD:/work fontcc --jCmd=4 ttf::Iosevka
sudo chown -R adam dist/
./post-process.sh
cp -pr dist/Iosevka/TTF/Iosevka-* ~/.fonts/Iosevka-ttf/
fc-cache -f

55
post-process.sh Executable file
View file

@ -0,0 +1,55 @@
#!/bin/bash
# Based on:
# https://github.com/sdothum/dotfiles/tree/main/bin/bin/functions/font
font_loc=./dist/Iosevka/TTF/
pushd .
cd $font_loc
regular=$(ls -1 | grep -Ev 'italic|oblique|extended')
italic=$(ls -1 | grep -E 'italic')
basefont() { echo $1 | grep -q '[-]italic.ttf' && echo "${1%italic*}regular.ttf" || echo "${1%italic*}.ttf"; }
# some defaults
ANGLE=${ANGLE:--9} # iosevka italic angle (verify with fontforge).. see font/iosevka
XSHIFT=${XSHIFT:--40} # italic descending capital left side bearing shift
extended=576 # extended regular shape (slightly tighter than Iosevka defaults)
expanded=600 # maximum terminal source code and proof legibility
shape=$expanded
# flit t in a regular font and shift to the left of cell
for f in $regular ;do
echo "Flipping t in $f"
echo "
Open(\$1);
Select(0u0074);
HFlip();
Move($XSHIFT,0); # tweak side bearing towards left
SetWidth($shape);
Generate(\$1);
" | fontforge --quiet --lang=ff --script - $f
done
# italicize flipped from regular glyph and shift to left of cell
for f in $italic ;do
echo "Flipping t in $f"
echo echo "
Open(\$2);
Select(0u0074);
Italic($ANGLE);
Copy();
Open(\$1);
Select(0u0074);
Paste();
Move($XSHIFT,0); # adjust for italic side bearing shift towards left
SetWidth($shape);
Generate(\$1);
" | fontforge --quiet --lang=ff --script - $i $(basefont $i)
done
# return to the initial directory and exit
popd

85
private-build-plans.toml Normal file
View file

@ -0,0 +1,85 @@
[buildPlans.Iosevka]
family = "Iosevka"
spacing = "normal"
serifs = "sans"
noCvSs = true
exportGlyphNames = false
[buildPlans.Iosevka.metricOverride]
#ascender=735
#ascender=750
cap=735
ascender=775
xHeight=530
leading=1250
#sb=715 # 800 ?
sb = 'default_sb * 0.800' # '0.715
[buildPlans.Iosevka.variants.design]
cyrl-em = "flat-bottom-serifless"
capital-b = "standard-interrupted-serifless"
capital-d = "more-rounded-serifless"
capital-g = "toothless-corner-serifless-hooked"
capital-j = "flat-hook-serifless"
capital-i = "short-serifed"
capital-k = "symmetric-touching-serifless"
capital-p = "open-serifless"
capital-q = "vertical-crossing"
capital-r = "standing-open-serifless"
capital-m = "flat-bottom-serifless"
capital-w = "straight-flat-top-serifless"
a = "double-storey-toothless-corner"
b = "toothless-rounded-serifless"
f = "flat-hook-serifless"
i = "hooky"
j = "flat-hook-serifless"
k = "symmetric-touching-serifless"
l = "hooky"
m = "earless-rounded-double-arch-serifless"
p = "earless-rounded-serifless"
q = "tailed-serifless"
r = "hookless-serifless"
t = "hookless-asymmetric-short-neck2"
u = "toothless-rounded-serifless"
w = "straight-flat-top-serifless"
long-s = "flat-hook-serifless"
eszet = "longs-s-lig-serifless"
lower-iota = "zshaped"
lower-lambda = "tailed-turn"
lower-pi = "tailless"
lower-tau = "tailless"
cyrl-capital-u = "straight-turn-serifless"
cyrl-u = "straight-turn-serifless"
zero = "oval-reverse-slashed"
one = "no-base-long-top-serif"
two = "straight-neck-serifless"
three = "flat-top-serifless"
four = "semi-open-serifless"
five = "oblique-arched-serifless"
six = "straight-bar"
seven = "straight-serifless"
eight = "two-circles"
nine = "straight-bar"
asterisk = "turn-hex-mid"
caret = "low"
ascii-grave = "raised-inverse-comma"
ascii-single-quote = "raised-comma"
paren = "large-contour"
brace = "straight"
guillemet = "straight"
#number-sign = "slanted"
ampersand = "upper-open"
at = "fourfold"
dollar = "interrupted"
cent = "bar-interrupted-cap"
bar = "force-upright"
partial-derivative = "straight-bar"
lig-ltgteq = "slanted"
[buildPlans.Iosevka.ligations]
inherits = "dlig"
[buildPlans.Iosevka.widths.Normal]
shape = 600 #default 500
menu = 5
css = "normal"