« Kindle:アップデート 5.8.5 & jailbreak関連、PWマンガモデルか・・・ | トップページ | Kindle:FW5.8.5の高速・連続ページターンが可能なのはKFXフォーマット »

2016年10月23日 (日)

Kobo: 上下の余白をカットする(フルスクリーン・モードではなく通常モードで)

Koboといえば、あの意味のよくわからないページ上下の余白。
紙の本の真似のつもりなのか、メニュー・バーを表示しても本の文字が隠れないようにするためなのか(そんな必要あるのか?)、とにかくあれは無駄としか思えない。

消すにはフルスクリーン・モードにすればいい。ただこれは隠れ設定で、公式にサポートされているわけではない。実際、本によっては文字が切れたりするバグがある(パッチで修正はできる)。
あとは、フルスクリーン時の余白の大きさが気に入るかどうか。和書は余白の調節「非対応」なので、気に入らなかったら、もうどうしようもない。(「非対応」はkoboのユーザー・マニュアルの表現。「未対応」ではない。つまり、これからも対応する気はない、と。それが楽天)

ともあれ、今回紹介するのは、フルスクリーンではなく通常モードで上下余白(ヘッダーとフッター)を小さくする方法。
フルスクリーン+パッチ+データベース書き換えで使っている人にはあまり意味はなさそうだが、ヘッダー・フッターは表示させたい、でも、もっと領域を狭くしたい人にはいいかもしれない。

Kobo_custom_header01_2
左がオリジナル、右がヘッダーとフッターのパッチをあてたもの。フッターは縮小して残してあるが、無効にすることもできる。(FW4.1.7729のgloのスクリーンショット)

フッターはもうずっと前からいつものパッチでカスタマイズ可能だったが、ヘッダーのほうはできなかった。それがカスタマイズできるようになった。FW4.1.7729 のパッチのスレッドのポスト#13#17を参照。

◎ヘッダー(上部余白部分)のカスタマイズ
日本語環境ではページ上部はただの余白だが、言語設定を日本語以外に変えると、開いている本の書名が表示される。だから本当はただの余白ではなくヘッダー。

手順はこのポストに書かれている通り。

○必要なもの
・ファームウェア: http://www.mobileread.com/forums/showthread.php?t=185660から自分のバージョンのFWをダウンロード。Mark3からMark6まであるので、まちがえずに。
CSS styles modifications inside nickel から patch-nickel-css-v04.zip をダウンロード。
・makepatch program(makepatch-0.01.zip)をダウンロード。
いつものパッチ
・windowsでは、あらかじめpythonをインストールして、パスを通しておく。

以下、aura One以外の現行バージョン3.19.5761で説明する。それ以外の場合は適宜バージョン番号を読み替えること。

1. ファームウェアを解凍してnickel本体を取り出す。
kobo-update-3.19.5761.zipを解凍。その中のKoboRoot.tgzをさらに解凍してnickelを取り出す。
nickelのある場所は、 usr/local/Kobo/nickel

2. 適当なフォルダを作成して、その中にpatch-nickel-css-v04.zipを解凍。
さらに、1.で取り出した nickel をこのフォルダに持ってくる。

3. nickelから圧縮されたcssを抽出する。ターミナルで
python extract.py
windowsはここのextract.batを使う(たぶんextract.batをnickelと同じフォルダに置く?)

cssは nickel-extracted.css に書き出される。これをエディタで編集する。必要なところだけ切り取って使えばよい。ヘッダーのカスタマイズに必要なのは、#StatusBarViewの行があるセクション。
セクションの最初にある /* found: 17 (zlib) pos: 4a1aa7 */ のような行はかならず含めること。
/* found: 17 (zlib) pos: 4a1aa7 */
#StatusBarView[qApp_deviceIsTrilogy="true"] {
min-height: 71px;
max-height: 71px;
}
#StatusBarView[qApp_deviceIsPhoenix="true"] {
min-height: 91px;
max-height: 91px;
}
#StatusBarView[qApp_deviceIsDragon="true"] {
min-height: 60px;
max-height: 60px;
}
#rightWidget[qApp_deviceIsTrilogy="true"],
#leftWidget[qApp_deviceIsTrilogy="true"] {
min-width: 184px;
max-width: 184px;
}
#rightWidget[qApp_deviceIsPhoenix="true"],
#leftWidget[qApp_deviceIsPhoenix="true"] {
min-width: 225px;
max-width: 225px;
}
#rightWidget[qApp_deviceIsDragon="true"],
#leftWidget[qApp_deviceIsDragon="true"] {
min-width: 272px;
max-width: 272px;
}
#rightWidget[minimalMode="true"][qApp_deviceIsPhoenix="true"],
#leftWidget[minimalMode="true"][qApp_deviceIsPhoenix="true"] {
min-width: 185px;
max-width: 185px;
}
QWidget[paddedHeaderIconWidth="true"][qApp_deviceIsTrilogy="true"] {
min-width: 46px;
max-width: 46px;
}
QWidget[paddedHeaderIconWidth="true"][qApp_deviceIsPhoenix="true"] {
min-width: 56px;
max-width: 56px;
}
QWidget[paddedHeaderIconWidth="true"][qApp_deviceIsDragon="true"] {
min-width: 56px;
max-width: 56px;
}
#statusbarContainer[qApp_deviceIsTrilogy="true"] {
qproperty-topMargin: 6;
qproperty-leftMargin: 19;
qproperty-rightMargin: 19;
qproperty-spacing: 5;
}
#statusbarContainer[qApp_deviceIsPhoenix="true"] {
qproperty-topMargin: 8;
qproperty-leftMargin: 25;
qproperty-rightMargin: 25;
qproperty-spacing: 0;
}
#statusbarContainer[qApp_deviceIsDragon="true"] {
qproperty-topMargin: 4;
qproperty-leftMargin: 35;
qproperty-rightMargin: 35;
qproperty-spacing: 39;
}
#statusbarContainer[qApp_deviceIsAlyssum="true"] {
qproperty-spacing: 1;
}
#message {
background-color: transparent;
padding-top: 3px;
padding-left: 0px;
padding-right: 0px;
}
#StatusBarView[qApp_deviceIsTrilogy="true"] のところががモデルの指定。その下の
 min-height: ○○px;
 max-height: 〇〇px;
の数値を書き換えればよい。モデルは
 Trilogy: Kobo Touch
 Phoenix: glo、初代aura
 Dragon: H2O、gloHD
 Alyssum: gloHD
 Daylight: aura One
gloHDはAlyssumがなければDragonで。
ヘッダーの高さ以外にもメニューのアイコンの大きさなどいろいろ変えられるようだが、とりあえず変更するのはこれだけでよい。
書き換えたら、それを nickel-modified.css というファイル名で保存する。

抽出したcssの該当部分を念のためアップしておく。
FW4.1.7729: 「4.1.7729_nickel-modified.css」
FW3.19.5761: 「3.19.5761_nickel-modified.css」
FWのバージョンに依存するのでまちがえないように。nickel-modified.cssにリネームして自分でカスタマイズを。これ以外のFWバージョンの人は自分で抜き取る。

4. これを元にして、nickelを作り直す。ターミナルで
python patch.py
Windowsの人はここのpatch.batを使う(たぶんpatch.batをnickelと同じフォルダに置く?)。
成功すると nickel-modif ができあがる。これがパッチをあてたnickel。

あとは、linux、macでは ./publish.sh を実行すると、KoboRoot.tgzを作ってくれる。が、これではヘッダーを変更しただけ。フッターも変更するので、いつものパッチのプログラムで使えるパッチファイルを作成する。

5. オリジナルのnickelとnickel-modifから、パッチファイルを作成する。
makepatch-0.01.zipを解凍する。その中のmakepatch-i386-Linuxもしくはmakepatch-x86_64-Linux、Windowsの場合はmakepa32.exeを、nickelとnickel-modifのあるフォルダにコピー。そしてターミナルで
makepatch-x86_64-Linux nickel nickel-motif > header.patch
Windowsのmakepa32.exeも同じようにリダイレクト?(Windowsのことはよくわからない)
できあがったheader.patchの中身は、
〈Patch〉
patch_name = `Unknown`
patch_enable = `no`
replace_bytes = 4B4EC8, 78 9C A5 95 CB AE D3 30, 78 9C 95 55 4D 8F D3 30
replace_bytes = 4B4ED0, 10 86 F7 7D 8A E8 74 4B, 10 FD 2F 9B 2B 95 92 36
..
〈/Patch〉
のように、いつものパッチに使える形式になっている。`Unknown`を適当に`custom header height`などに変更、さらにpatch_enable = `yes`にする。
これをnickel.patchに追記する(後述。下のフッターのカスタマイズ参照)。
あとはフッターの変更をして、一緒にnickelにパッチをあてる。


◎フッターのカスタマイズ
1. いつものパッチをダウンロード・解凍。
Index to the Metazoa firmware patches から自分のFWのバージョンのものをダウンロード。
引き続き、FW3.19.5761で説明する。バージョン番号は適宜読み替えて。

2. 上で作成したheader.patchをnickel.patchに追記する。
パッチpatch_kobo_3195761.zipを解凍すると、 patch_kobo_3195761というフォルダができる。その中の3.19.5761_sourceフォルダにnickel.patchがある。catするなり、コピペするなり、好きな方法でheader.patchの中身をnickel.patchに追加する。

3. エディタでパッチファイルを書き換えて、フッターの設定を変更する。
編集するファイルは 3.19.5761_sourceフォルダの中の、
FW3.xの場合:libnickel.so.1.0.0.patch
FW4.xの場合:nickel.patch

たくさんパッチが記述されているが、フッターのカスタマイズに使うのは
`Disable reading footer`(フッターを無効にする)

`Custom reading footer style`(フッターのカスタマイズ)
のどちらか。

○フッターを無効にする
libnickel.so.1.0.0.patch/nickel.patchをエディタで開いて、次の行を探す。
patch_name = `Disable reading footer`
patch_enable = `no`
これを`yes`に書き換える。これでおしまい。
(これをyesにしたら、`Custom reading footer style`はかならず`no`に。両方yesにしてはいけない)

○フッターのカスタマイズ
フッターを消すのではなく、縮小したい場合はこちらを使う。libnickel.so.1.0.0.patch/nickel.patchをエディタで開いて、`Disable reading footer`が`no`になっているのを確認した上で、次の行を探す。
patch_name = `Custom reading footer style`
patch_enable = `no`
これを`yes`に書き換える。
さらに、フッターの高さとフォントサイズを指定する。このセクションの下をさらに見ていくと
# Replacement footer height values: Touch/Mini/Glo/Aura/Aura2E
replace_string = 002A, `min-height:70px`, `min-height:24px`
replace_string = 003A, `max-height:70px`, `max-height:24px`
# Replacement footer height values: AuraHD/H2O/GloHD
replace_string = 0076, `min-height:80px`, `min-height:52px`
replace_string = 0086, `max-height:80px`, `max-height:52px`
# Replacement footer height values: AuraOne
replace_string = 00C4, `min-height:90px`, `min-height:68px`
replace_string = 00D4, `max-height:90px`, `max-height:68px`
AuraHD/H2O/GloHDの場合で説明すると、
フッタの高さを80pxから52pxに小さくする、という意味。自分のモデルの行末の数値(2つとも)を書き換えればよい。

その下にフォントサイズ変更のエントリーがある。
# Replacement caption font size value for Touch/Mini:
replace_string = 00EF, `font-size:16px`, `font-size:16px`
# Replacement caption font size value for Glo/Aura/Aura2E:
replace_string = 0137, `font-size:20px`, `font-size:14px`
# Replacement caption font size value for AuraHD/H2O:
replace_string = 016D, `font-size:26px`, `font-size:26px`
# Replacement caption font size value for GloHD:
replace_string = 01DC, `font-size:30px`, `font-size:30px`
# Replacement caption font size value for AuraOne:
replace_string = 01A5, `font-size:34px`, `font-size:34px`
こちらは見てわかる通り、このままではフォントサイズは変更されない。行末の数値を変更する。たとえばgloHDなら、
# Replacement caption font size value for GloHD:
replace_string = 01DC, `font-size:30px`, `font-size:20px`
のようにすると、30pxから20pxに変更される。

4. FWにパッチをあてて、インストールファイルのKoboRoot.tgzを作成する。
1) ダウンロードしてあるkobo-update-3.19.5761.zipをそのまま、3.19.5761_sourceフォルダ(libnickel.so.1.0.0.patch/nickel.patchと同じフォルダ)に置く。
2) 3.19.5761 .sh(Linux/Mac)もしくは 3.19.5761.bat(Windows)を実行。
3) 成功すると、3.19.5761_targetフォルダに、KoboRoot.tgz ができあがる。これがアップデート用のファイル。

5. できたアップデートファイル(KoboRoot.tgz)でKoboを更新
1) できたKoboRoot.tgzをPCにつないだKoboの".kobo"フォルダにコピー。
2) コピーが終わったのを確認したら、USBケーブルを抜く。自動的に再起動。これでおしまい。

以上でヘッダー・フッターのカスタマイズ終了。

注意点はヘッダーを小さくしすぎると、ホームボタンやフロントライト、WiFiなどのアイコンがタップできなくなってしまうこと。

Kobo_custom_header02
左がオリジナル、右がパッチをあてたもの。ヘッダーの高さをデフォルトの半分にしている。これ以上小さくすると、アイコンのタップがむずかしくなるだろう。


フルスクリーン・モードについては何度か書いているので繰り返さないが、フルスクリーン・モードの利点はデータベースを書き換えれば(ランチャーなど利用)、余白の調節も可能になること。通常モードではデータベースの書き換えをしても、行間の調節は可能だが、余白の調節はできない。

Kobo_custom_header03
左がオリジナル。行間・余白の調節バーがグレーアウト、調節不可。洋書ならできるのに和書だけできない。何度も言うが、日本語環境を整備する気がない楽天。単語選択すらろくにできない国語辞典も同じ。
右はデータベースを変更して、さらにフルスクリーンモードにしたもの。余白も変更できる。

余白・行間がデフォルト固定でかまわないなら通常モードでヘッダーとフッターのカスタマイズ、行間や余白も調節可能にしたければ、フルスクリーン・モード+フルスクリーンバグ修正パッチ+データベースの書き換え(こちらの記事などを参考)、ということになるだろう。

ついでに言っておくと、FW4.xで辞書ウィンドウのカスタマイズでサイズ指定するには、cssを抽出しなければならなくなった。辞書ウィンドウはいつもサイズ変更しているので、ついでにヘッダーの処理を追加するのはたいした手間ではない。辞書ウィンドウのサイズ指定についてはまたいずれ。

|

« Kindle:アップデート 5.8.5 & jailbreak関連、PWマンガモデルか・・・ | トップページ | Kindle:FW5.8.5の高速・連続ページターンが可能なのはKFXフォーマット »

kobo」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/592212/64362651

この記事へのトラックバック一覧です: Kobo: 上下の余白をカットする(フルスクリーン・モードではなく通常モードで):

« Kindle:アップデート 5.8.5 & jailbreak関連、PWマンガモデルか・・・ | トップページ | Kindle:FW5.8.5の高速・連続ページターンが可能なのはKFXフォーマット »