先日書いたように、XnViewMPでは日本語入力ができず、OSやlibsslのバージョンによってはウインドウ内のGoogle mapsの地図表示もできない場合があるので、それぞれできるようにしたので書く。なお、XnViewMPのバージョンは0.92を、OSはLinux Mint 18.3 (x86 64bit)を想定する(Ubuntu 16.04 LTSでも同様と思われる)。

日本語入力

現象: コメントなどの入力フィールドで日本語(全/半)キーを押しても、Mozcなどの日本語変換モジュールが起動しない。

原因: XnViewMP添付のライブラリ(/opt/XnView/lib)にQt5の日本語入力関連のプラグイン(例えば/usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts下にあるもの)が不足しているため。

対処: XnViewMPが不足するライブラリを参照できるようにする。

詳細

  • 基本的には、環境変数QT_PLUGIN_PATHにQt5の日本語入力関連のプラグインのディレクトリを追加すればいい。
  • しかし、/usr/bin/xnview(シェルスクリプト)の中でQT_PLUGIN_PATHに/opt/XnView/libを指定(上書き)しているので、単に設定するだけでは有効にならない。
  • そのため、QT_PLUGIN_PATHにOS本来のディレクトリとXnViewMPのディレクトリを設定するようなスクリプトを作るか、xnviewを修正すれば良い。
  • XnViewMPを起動するスクリプト例:

#!/bin/sh

export LD_LIBRARY_PATH=/opt/XnView/lib

export QT_PLUGIN_PATH="/usr/lib/x86_64-linux-gnu/qt5/plugins:\
/opt/XnView/lib"

/opt/XnView/XnView $*

  • 未確認だが、使われていないスクリプト/opt/XnView/xnview.shは設定済みのQT_PLUGIN_PATHを参照するので、それを使えばいいかも知れない(XnViewMPのディレクトリが前に来るので、駄目かも知れない)。

地図表示

現象: 位置(GPS)情報付き画像を選択し、GPSのペーンを開いても、空白のまま地図が出ない(出ることもある)。

原因: XnViewMP添付のライブラリ(/opt/XnView/lib)のQt5は古いSSLライブラリ(libssl1.0.0)を参照しているようで(→ 参照)、新しいOSやPHP 7.3をインストールしたシステムなどでは、libssl1.1がインストールされているためにlibssl1.0.0を参照できないことが多いために、地図表示が不安定になる。なお、システムにはlibssl1.0.0もインストールされているのだが、参照できない(できることもある)理由は分からない。

対処: XnViewMPがlibssl1.0.0を参照できるようにする。

詳細

  • 基本的には、環境変数LD_LIBRARY_PATHに、libssl1.0.0のライブラリのあるディレクトリを追加すればいい。libssl1.0.0のライブラリは以下である。
    • /lib/x86_64-linux-gnu/libssl.so.1.0.0
    • /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
    • /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/*
  • libssl1.0.0だけのディレクトリになっている訳ではないため、親ディレクトリ(/lib/x86_64-linux-gnuなど)をそのまま指定するのでは指定する意味がなさそうだし、XnViewMP添付のライブラリと競合するかも知れないと考え、XnViewMPの追加ライブラリ用ディレクトリを作って、その下に参照させたいライブラリへのsym-linkを作り、そのディレクトリをLD_LIBRARY_PATHに設定した。また、上述の日本語入力用に追加するQt5のプラグインも同様にsym-linkした。
  • その他は日本語入力と同様である。
  • XnViewMP用追加ライブラリディレクトリディレクトリの準備(場所は$HOME/.local/lib/XnViewとした):

cd
mkdir -p .local/lib/XnView
cd .local/lib/XnView
ln -s /lib/x86_64-linux-gnu/lib{ssl,crypto}.so.1.0.0 .
ln -s /usr/lib/x86_64-linux-gnu/openssl-1.0.0/engines/* .
mkdir qt5-plugins
cd qt5-plugins
ln -s /usr/lib/x86_64-linux-gnu/qt5/\
plugins/platforminputcontexts .
cd

  • XnViewMPを起動するスクリプト例(日本語入力対応も含む):

#!/bin/sh

export LD_LIBRARY_PATH="$HOME/.local/lib/XnView:\
/opt/XnView/lib"

export QT_PLUGIN_PATH="$LD_LIBRARY_PATH"

/opt/XnView/XnView $*

※32ビット版ではライブラリのディレクトリ名が異なる(上のx86_64i386)ので、適宜読み替えること。

動作例

(1/8 9:25 わずかに修正)

 

PS. 本題とは関係ないが、XnViewMPはかなり柔軟にレイアウトをカスタマイズできるのだが、結構惜しいところがある。例えば、ファイル・画像情報のペーンの名前と値のカラム幅が変更できないので、見やすくするには幅を広くする必要がある(そうしないと、左右のスクロールが頻発する)。試行錯誤して、情報ペーンなどをまとめて下部に置いた。本当は左右どちらかの端に置きたいが、使いにくくなってしまうので仕方ない。

筆者のXnViewMPのレイアウト

とはいえ、どうも使い勝手が悪いので、やっぱり情報ペーンなどを左右に置いてみた。結局、ありきたりなレイアウトに落ち着いた感じだ。これはdigiKamにも似ている気がするから、要は馴染みのUIを変えたくないのだろう。 (1/8 9:27)

筆者のXnViewMPのレイアウト (出戻り?版)

PS2. これはもう全くの余談だが、上の2つのキャプチャ画像、幅は同じなのに大きさが全然違って見える。錯覚なんだろうか。全く不思議だ。 (1/8 20:36)

  •   0
  •   1

コメントを書く

名前    

メール 

URL