summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.txt1
-rwxr-xr-xliveinit.tpl48
2 files changed, 49 insertions, 0 deletions
diff --git a/README.txt b/README.txt
index 953a39a..42f2c2d 100644
--- a/README.txt
+++ b/README.txt
@@ -262,6 +262,7 @@ localhd => initialize RAID/LVM on local hard drives.
tweaks=tweak1[,tweak2,[,...]] => Implemented tweaks:
nga - no glamor 2D acceleration, avoids error "EGL_MESA_drm_image required".
+ nsh - no 'new style' sub-pixel hinting in freetype.
tpb - enable TrackPoint scrolling while holding down middle mouse button.
syn - start the syndaemon for better support of Synaptics touchpads.
ssh - start the SSH server (disabled by default)
diff --git a/liveinit.tpl b/liveinit.tpl
index de23e24..e20eb61 100755
--- a/liveinit.tpl
+++ b/liveinit.tpl
@@ -77,6 +77,12 @@ LOCALHD=0
# Usability tweaks:
TWEAKS=""
+# Deal with freetype's sub-pixel hinting.
+# Enable the new v40 interpreter only if /etc/profile.d/freetype.sh is found.
+# Otherwise (or in case 'tweaks=nsh' is passed at boot) disable the new
+# interpreter and fall back to the old v35 interpreter.
+SPH=1
+
# Perhaps we need to blacklist some kernel module(s):
BLACKLIST=""
@@ -209,6 +215,7 @@ for ARG in $(cat /proc/cmdline); do
tweaks=*)
# Comma-separated set of usability tweaks.
# nga: no glamor 2d acceleration.
+ # nsh: no sub-pixel hinting in freetype.
# tpb: trackpoint scrolling while pressing middle mouse button.
# syn: start synaptics daemon and extend X.Org capabilities.
# ssh: start SSH daemon (disabled by default).
@@ -992,6 +999,8 @@ Section "Device"
Option "AccelMethod" "none"
EndSection
EOT
+ elif [ "$TWEAK" = "nsh" ]; then
+ SPH=0
elif [ "$TWEAK" = "tpb" ]; then
# Enable scrolling with TrackPoint while pressing the middle mouse button.
# Note: if this does not work for your TrackPoint,
@@ -1049,6 +1058,45 @@ EOT
fi
done # End Tweaks.
+ # After parsing the tweaks, we know what to do with freetype's rendering:
+ if [ ! -f /mnt/overlay/etc/profile.d/freetype.sh ]; then
+ # Old freetype - disable sub-pixel hinting:
+ SPH=0
+ fi
+ if [ $SPH -eq 1 ]; then
+ # Enable the new v40 interpreter in freetype:
+ sed -e 's/^ *[^# ]/#&/' -i /mnt/overlay/etc/profile.d/freetype.sh
+ cat <<EOT >> /mnt/overlay/etc/profile.d/freetype.sh
+export FREETYPE_PROPERTIES="truetype:interpreter-version=40"
+EOT
+ sed -e 's/^ *[^# ]/#&/' -i /mnt/overlay/etc/profile.d/freetype.csh
+ cat <<EOT >> /mnt/overlay/etc/profile.d/freetype.csh
+setenv FREETYPE_PROPERTIES "truetype:interpreter-version=40"
+EOT
+ # Adapt the font configuration:
+ ln -s /etc/fonts/conf.avail/10-hinting-slight.conf /mnt/overlay/etc/fonts/conf.d/
+ ln -s /etc/fonts/conf.avail/11-lcdfilter-default.conf /mnt/overlay/etc/fonts/conf.d/
+ cat <<EOT > /mnt/overlay/home/${LIVEUID}/.Xresources
+Xft.dpi: 96
+Xft.antialias: 1
+Xft.hinting: 1
+Xft.hintstyle: hintslight
+Xft.lcdfilter: lcddefault
+Xft.rgba: rgb
+Xft.autohint: 0
+EOT
+ elif [ -f /mnt/overlay/etc/profile.d/freetype.sh ]; then
+ # Explicitly configure the non-default old v35 interpreter in freetype:
+ sed -e 's/^ *[^# ]/#&/' -i /mnt/overlay/etc/profile.d/freetype.sh
+ cat <<EOT >> /mnt/overlay/etc/profile.d/freetype.sh
+export FREETYPE_PROPERTIES="truetype:interpreter-version=35"
+EOT
+ sed -e 's/^ *[^# ]/#&/' -i /mnt/overlay/etc/profile.d/freetype.csh
+ cat <<EOT >> /mnt/overlay/etc/profile.d/freetype.csh
+setenv FREETYPE_PROPERTIES "truetype:interpreter-version=35"
+EOT
+ fi # End Sub-Pixel Hinting
+
# Blacklist kernel modules if requested:
if [ ! -z "$BLACKLIST" ]; then
mkdir -p /mnt/overlay/etc/modprobe.d