初代PaperWhiteなどは自由にフォントを追加できるようですが,
最近のKindle端末はそれが出来なくなってるようです.
しかし,筑紫明朝のファイルの中身を差し替えると好きなフォントにできるようでした.
Kindle端末の
この差し替え作業,面倒なのでスクリプトにしました.
これを使うためには
なんやかんややってフォント差し替えをしてくれます.
ちなみに紹介すると,やってることは,cramfsを展開し,ファイルを差し替え,cramfsを作りなおし,足りないサイズをzero fillで足し,ctimeをオリジナルに合わせる,というだけです.
最近のKindle端末はそれが出来なくなってるようです.
しかし,筑紫明朝のファイルの中身を差し替えると好きなフォントにできるようでした.
Kindle端末の
/system/fonts/ja.font
はcramfsで作られたファイルシステムイメージのようです.この差し替え作業,面倒なのでスクリプトにしました.
これを使うためには
- Linuxで,かつgvfsが使える
- gvfsでKindleをマウントしている
なんやかんややってフォント差し替えをしてくれます.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
if [ $# != 1 ]; then | |
echo "Usage: $0 <path to trutype font>" | |
exit 0 | |
fi | |
original_font="/run/media/$USER/Kindle/system/fonts/ja.font" | |
if [ ! -e ${original_font} ]; then | |
echo "mount Kindle on your PC, using gvfs" | |
exit 0 | |
fi | |
mkdir -p kindle_pw_font | |
cd kindle_pw_font | |
[ ! -e ja.font ] && cp ${original_font} ./ | |
fsck.cramfs --extract=kvfont ja.font | |
rm ./kvfont/fonts/TsukuMinPr5-Medium.ttf | |
cp "$1" ./kvfont/fonts/TsukuMinPr5-Medium.ttf | |
mkfs.cramfs kvfont ja.font.new | |
original_size=$(ls -l ${original_font} | awk -F" " '{print $5}') | |
mod_size=$(ls -l | grep 'ja\.font\.new' | awk -F" " '{print $5}') | |
dd if=/dev/zero of=./ja.font.mod bs=1 seek=${mod_size} count=$(expr $original_size - $mod_size ) | |
cat ja.font.new dummy > ja.font.mod | |
touch -r ${original_font} ja.font.mod | |
cp -a ja.font.mod ${original_font} |