はじめに
この記事は メロンブックス の電子書籍ビュアー を Linux 上の Wine で動かす方法について記載しています。
ただしこの記事に記載されている事については無保証・自己責任に基づく内容であり、 またメロンブックスの電子書籍ビュアーの更新状況によっては動作しなくなる可能性もあるので、 この記事は 2020 年 2 月 4 日現在の内容であることは留意してください。
なお今回の内容については、
- NixOS (linux kernel 4.19.100)
- wine 5.0 staging
- 32bit wine prefix
で動作すること確認しています。
メロンブックスの電子書籍ビュアーを Wine で動かす
メロンブックスの電子書籍ビュアーを Wine で動かすための手順はおおよそ次の通りとなります:
- メロンブックスのビュアーを専用の Wine Prefix にインストールする
winetricks
でd3dcompiler_47
をインストールするHKCU\Environment
に 文字列値QT_ANGLE_PLATFORM
を作る- 文字列値
QT_ANGLE_PLATFORM
の値をd3d9
にセットする
なぜこの設定が必要なのか
まずメロンブックスの電子書籍ビュアーは Qt Quick で作られており、 メロンブックスの電子書籍ビュアーの挙動を見る限りでは、 OpenGL 関係の処理を DirectX に肩代わりさせる仕組みで動いています。( ANGLE とか言うらしい)
そして Wine には組込みのライブラリとして DirectX 関係のライブラリも含まれているのですが、
そのうちの d3dcompiler
の実装が不完全であるため(正確には hlsl parser
辺りの実装)、
winetricks
で d3dcompiler_47
をインストールしない限り、
ビュアーが起動するけどウィンドウの中身が真っ黒
と言う状態になります。
また HKCU\Environment
に QT_ANGLE_PLATFORM
を文字列値として作り、
その内容として d3d9
をセットしているのは、
この設定抜きだと HiDPI 環境でアイコンなどが Glitch して表示が乱れるためです。
ただし QT_ANGLE_PLATFORM
の設定は、恐らく wine 起動時の環境変数としても指定できるはずなので、
wine 起動時の環境変数で QT_ANGLE_PLATFORM=d3d9
と指定しても問題ないと思います。
以上
とりあえず自分の環境では上記の方法でメロンブックスの電子書籍ビュアーが動いていますが、 Wine のバージョンが変わったり、あるいはメロンブックスが提供するソフトウェアの更新などによって、 この記事の内容が通じなくなる可能性があります。
またメロンブックスの電子書籍ビュアーを使うにはメロンブックスのアカウントでのログインが必須ですが、 この辺りのサーバ側の処理に変更が加えられると場合によっては動かなくなる可能性もあるので、 そう言った意味でも今回の記事は自分でリスクを取れる方向けとなっています。
ちなみに
メロンブックスの電子書籍ビュアー、書籍の DRM がほぼ意味の無い状態になってるんですが、 これってバグなのか仕様なのかどっちなんでしょうね……? まぁ Calibre で書籍管理する上では都合が良いんですが……。