diff --git a/features.in/fonts/config.mk b/features.in/fonts/config.mk new file mode 100644 index 00000000..bb11dbca --- /dev/null +++ b/features.in/fonts/config.mk @@ -0,0 +1,11 @@ +use/fonts: + @$(call add_feature) + @$(call xport,FONT_FEATURES_ENABLE) + @$(call xport,FONT_FEATURES_DISABLE) + +# just stating that kernels and font habits are pretty individual +use/fonts/zerg: use/fonts + @$(call set,FONT_FEATURES_ENABLE,antialias lcdfilter-default \ + hinting style-full sub-pixel-rgb) + @$(call set,FONT_FEATURES_DISABLE,no-antialias lcdfilter-none \ + unhinted no-sub-pixel) diff --git a/features.in/fonts/stage2/image-scripts.d/50-fontconfig b/features.in/fonts/stage2/image-scripts.d/50-fontconfig new file mode 100755 index 00000000..856303a1 --- /dev/null +++ b/features.in/fonts/stage2/image-scripts.d/50-fontconfig @@ -0,0 +1,33 @@ +#!/bin/sh +# fontconfig-config-config + +verbose="${GLOBAL_VERBOSE:+-v}" +verbose() { [ -z "$GLOBAL_VERBOSE" ] || echo "HOOK: 50-fontconfig: $@"; } +verbose "has started" + +CONF_DIR="/etc/fonts/conf.d" +AVAIL_DIR="/etc/fonts/conf.avail" + +list() { ls "$1"/??-"$2".conf 2>/dev/null; } + +enable() { + for i in "$@"; do + if ! list "$CONF_DIR" "$i"; then + AVAIL="$(list "$AVAIL_DIR" "$i" | head -1)" + if [ -n "$AVAIL" ]; then + ln -s $verbose "$AVAIL" "$CONF_DIR/$CONF_ADD" + fi + fi + done +} + +disable() { + for i in "$@"; do + $(list "$CONF_DIR" "$i") | xargs -r rm -f $verbose -- + done +} + +disable $GLOBAL_FONT_FEATURES_DISABLE +enable $GLOBAL_FONT_FEATURES_ENABLE + +: