« Kobo: FW4.2.8110アップデート(aura One) | トップページ | Kobo: カスタム辞書追加(新方式) »

2016年12月23日 (金)

Kobo: 辞書ウィンドウ・カスタマイズ(FW4.x以降)

FW4.x以降、辞書ウィンドウのカスタマイズ方法が変わったので改めて説明。

左がオリジナル、右がパッチをあてて辞書ウィンドウのサイズを変更したもの。
Dict_window_ja

和書では単語選択すらろくにできないダメっぷりを放置したままのkoboの辞書だが、洋書ならふつうに辞書は使える。辞書を引くことも多くなる洋書ではやっておいて損はない。

いつものパッチに辞書ウィンドウのリサイズパッチが含まれているが、日本語環境ではウィンドウ内でフォントが切れてしまう。そこで自分で調整。

FW4.2.8110の調整済みのパッチがこれ。
"4.2.8110_nickel_dic_patch.txt"(4.2.8110以外には使えない)
いつものパッチの中のnicke.patchに、"4.2.8110_nickel_dic_patch.txt"の中身をコピペしてパッチをあてればよい。やり方は下記手順の6.以下を参照。

ただし、gloとgloHDでは確認しているが、他のモデルでは未確認なので、自分でサイズ指定する必要があるかもしれない(とくにaura One)。その方法を以下に。また、自分の好みにカスタマイズしたい人も下記を参照。。

以前のFW3.x用のパッチでは直接辞書ウィンドウ・サイズを指定できたたが、FW4.0以降はできなくなった。cssが圧縮されるようになり、解凍する手間が増えたため。

手順は「上下の余白をカットする(フルスクリーン・モードではなく通常モードで)」のヘッダーの縮小する場合と同じ。ただcssの編集を辞書回りにするだけ。ほとんどその繰り返しだが、はじめから手順を。

以下、最新バージョン4.2.8110で説明する。
(FW3.9.xはこの方法ではなく、従来のやり方でOK。また、FW4.xで他のバージョンの場合は適宜バージョン番号を読み替えること)

○必要なもの
ファームウェア4.2.8110をダウンロード
CSS styles modifications inside nickel から patch-nickel-css-v04.zip をダウンロード。
・makepatch program(makepatch-0.01.zip)をダウンロード。
FW4.2.8110のパッチ
・windowsでは、あらかじめpythonをインストールして、パスを通しておく。

○手順
1. ファームウェアを解凍してnickel本体を取り出す。
kobo-update-4.2.8110.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 に書き出される。これをエディタで編集する。必要なところだけ切り取って使えばよい。辞書ウィンドウののカスタマイズに必要なのは"InlineDictionaryView"があるセクション。
FW4.2.8110の場合は、/* found: 92 (zlib) pos: 4c0a32 */ 以下のセクション。
/* found: 92 (zlib) pos: 4c0a32 */
InlineDictionaryView {
min-width: 500px;
max-width: 500px;
min-height: 220px;
max-height: 220px;
}
InlineDictionaryView[qApp_deviceIsPhoenix="true"] {
min-width: 650px;
max-width: 650px;
min-height: 280px;
max-height: 280px;
}
InlineDictionaryView[qApp_deviceIsDragon="true"] {
min-width: 980px;
max-width: 980px;
min-height: 350px;
max-height: 350px;
}
InlineDictionaryView[qApp_deviceIsDaylight="true"] {
min-width: 1274px;
max-width: 1274px;
min-height: 455px;
max-height: 455px;
}
#dictionary {
margin-top: 10px;
}
#dictionary[qApp_deviceIsDragon="true"] {
margin: 25px;
}
#dictionary[qApp_deviceIsDaylight="true"] {
margin: 32px;
}
#dictionary[qApp_deviceIsPhoenix="true"] {
margin: 20px;
}
#textEdit {
min-height: 150px;
max-height: 150px;
min-width: 515px;
max-width: 515px;
}
#textEdit[qApp_deviceIsPhoenix="true"] {
min-height: 190px;
max-height: 190px;
min-width: 550px;
max-width: 550px;
}
#textEdit[qApp_deviceIsDragon="true"] {
min-height: 235px;
max-height: 235px;
min-width: 930px;
max-width: 930px;
}
#textEdit[qApp_deviceIsDaylight="true"] {
min-height: 306px;
max-height: 306px;
min-width: 1209px;
max-width: 1209px;
}
#settings {
background-color: #d9d9d9;
font-family: Georgia;
}
#settings[qApp_localeName="ja_JP"] {
font-family: Sans-SerifJP, sans-serif;
font-style: normal;
}
#settings[qApp_deviceIsTrilogy="true"] {
font-size: 19px;
}
#settings[qApp_deviceIsPhoenix="true"] {
font-size: 23px;
}
#settings[qApp_deviceIsDragon="true"] {
font-size: 29px;
}
#settings[qApp_deviceIsAlyssum="true"] {
font-size: 32px;;
}
#settings[qApp_deviceIsDaylight="true"] {
font-size: 37px;
}
#settings[qApp_deviceIsTrilogy="true"] {
padding-left: 12px;
padding-right: 12px;
}
#settings[qApp_deviceIsPhoenix="true"] {
padding-left: 16px;
padding-right: 16px;
}
#settings[qApp_deviceIsDragon="true"] {
padding-left: 22px;
padding-right: 22px;
}
#settings[qApp_deviceIsDaylight="true"] {
padding-left: 28px;
padding-right: 28px;
}
#bottomSpacer {
qproperty-visible: false;
}
#bottomSpacer[qApp_deviceIsTrilogy="true"] {
qproperty-visible: true;
min-height: 30px;
max-height: 30px;
}
#message {
padding-top: 20px;
}
#message[qApp_deviceIsPhoenix="true"] {
margin-left: 35px;
margin-right: 35px;
}
#message[qApp_deviceIsDragon="true"] {
margin-left: 50px;
margin-right: 50px;
}
#message[qApp_deviceIsDaylight="true"] {
margin-left: 65px;
margin-right: 65px;
}
#footer[qApp_deviceIsPhoenix="true"] {
qproperty-leftMargin: 20;
qproperty-rightMargin: 20;
qproperty-bottomMargin: 20;
}
#footer[qApp_deviceIsDragon="true"] {
qproperty-leftMargin: 25;
qproperty-rightMargin: 25;
qproperty-bottomMargin: 25;
}
#footer[qApp_deviceIsDaylight="true"] {
qproperty-leftMargin: 32;
qproperty-rightMargin: 32;
qproperty-bottomMargin: 32;
}
#language[qApp_deviceIsTrilogy="true"] {
font-size: 19px;
}
#language[qApp_deviceIsPhoenix="true"] {
font-size: 23px;
}
#language[qApp_deviceIsDragon="true"] {
font-size: 29px;
}
#language[qApp_deviceIsAlyssum="true"] {
font-size: 32px;
}
#language[qApp_deviceIsDaylight="true"] {
font-size: 37px;
}
#language[qApp_deviceIsTrilogy="true"] {
max-height: 50px;
}
#language[qApp_deviceIsPhoenix="true"] {
max-height: 62px;
}
#language[qApp_deviceIsDragon="true"] {
max-height: 80px;
}
#language[qApp_deviceIsDaylight="true"] {
max-height: 104px;
}
これがオリジナルのcss。同じものをいちおうアップしておく(nickel-extracted-dic.css

かつてのFW3.xの辞書パッチで変更している個所は以下の通り。それを踏襲。
・辞書ウィンドウのフレーム・サイズ
 InlineDictionaryView {(以下の自分のモデルの)
  min-width: 〇〇px
  max-witdtht: 〇〇px
  min-height: ○○px
  max-height: 〇〇px
・辞書ウィンドウのフレーム外側に作る余白(たぶん)
 #dictionary {
  margin: 〇〇px
・辞書ウィンドウ内のテキスト領域のサイズ
 #textEdit {(以下の自分のモデルの)
  min-height:〇〇px
  max-height: 〇〇px
  min-width:〇〇px
  max-witdtht:〇〇px
・辞書ウィンドウのフレームから内部テキスト領域までの上部余白(?)
 #message {
  padding-top: 〇〇px
・辞書ウィンドウ内の下部余白(?)
 #footer[qApp_deviceIsXXXX="true"] {(以下の自分のモデルの)
  ...
  ...
  qproperty-bottomMargin:〇〇px

自分のモデルのコードネームのところ([qApp_deviceIsXXX="true"]のXXXにコードネームが入る)の〇〇pxを変更する。Touchの場合は自分のコードネームがなかったら、各セクションの一番上、コードネームがついていない個所を変更。

コードネームとモデルの対応は以下の通り。
 Trilogy: Kobo Touch
 Phoenix: glo、初代aura
 Dragon: H2O、gloHD
 Alyssum: gloHD
 Daylight: aura One
gloHDはAlyssumがなければDragonで。

書き換えたら、それを nickel-modified.css というファイル名で保存する。
上記の調整済みパッチファイル "4.2.8110_nickel_dic_patch.txt"の元になったcssも参考までにアップしておく(4.2.8110_nickel-modified.css)。
これを試すなら、nickel-modified.cssにリネームすること。

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

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 > nickel-dic.patch
Windowsのmakepa32.exeも同じようにリダイレクト?(Windowsのことはよくわからない)
できあがったnickel-dic.patchの中身は、
〈Patch〉
patch_name = `Unknown`
patch_enable = `no`
replace_bytes = 4C0A30, 0D 6C 78 9C 9D 56 5B 6F, 0D 6C 78 9C 9D 56 5D 6B
replace_bytes = 4C0A38, 9B 30 14 7E CF AF 40 E9, DB 30 14 7D CF AF 30 ED
..
〈/Patch〉
のように、いつものパッチに使える形式になっている。`Unknown`を適当に`Dictionary frame size(jp)`などに変更、さらにpatch_enable = `yes`にする。それが上記の"4.2.8110_nickel_dic_patch.txt"。

6. これをいつものパッチに含まれているnickel.patchに追記する。
いつものパッチ(patch_kobo_4028110.zip)をダウンロード・解凍すると、patch_kobo_4028110/4.2.8110_sourceフォルダの中にnickel.patchがある。
そのnickel.patch内の`Dictionary frame size`が`no`になっているのを確認した上で、自分で作成したnickel-dic.patchの中身(`Dictionary frame size(jp)`を追記する。

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

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

以上で辞書ウィンドウののカスタマイズ終了。

|

« Kobo: FW4.2.8110アップデート(aura One) | トップページ | Kobo: カスタム辞書追加(新方式) »

kobo」カテゴリの記事

コメント

コメントを書く



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




トラックバック


この記事へのトラックバック一覧です: Kobo: 辞書ウィンドウ・カスタマイズ(FW4.x以降):

« Kobo: FW4.2.8110アップデート(aura One) | トップページ | Kobo: カスタム辞書追加(新方式) »