2014年6月24日火曜日

Debian Wheezy LXDE で Keepassx の文字化け対策

Debian Wheezy の LXDE をインストールした ThinkPad X31 を快調に使用しています!

実用的にするために各種のアプリケーション・ソフトウェアを順次インストールしていました。その中にキーワードを管理する Keepassx も含まれています。この Keepassx は、Puppy Linux において、日本語キーボードを使用していると文字化け(英語キーボードで入力した状態になる)が発生していますが、同じ症状がこの LXDE のデスクトップ上でも発生しました。

同じ Debian Wheezy の Gnome3 で発生していないのでどうしたものかと思って再び調査してみました。以前の Puppy Linux の時には見つけられなかったこの Keepassx の問題を「LXDE Keepassx」の文字列で検索してみるとたくさん出てきました。意外と多くの人が同じ症状で困っているようでした。それも us タイプの英語キーボード以外のドイツ語などの外国人も多く含まれていました。

この検索で解ったことはデスクトップのキーボードのマッピングを設定する setxkbmap のコマンドで再定義をして Keepassx を使用すると問題が発生しないということでした。確かに私が Pupp Linux で体験した keepassx の文字化けもキーボードの再定義で一時的に解決していました。

そこで Keepassx を起動させる前にシェルスクリプトで setxkbmap コマンドを実行させて対応することとしました。具体的な手順は以下のとおりです。

特権ユーザーに昇格して作業を行います。
$ su
パスワード:
Keepassx のコマンドのあるディレクトリへ移動します。
# cd /usr/bin
シェルスクリプトを keepassxjp としてファイルを作ります。
# touch keepassxjp
実行フラグをシャルスクリプト・ファイルに設定します。
# chmod 755 keepassxjp
シェルスクリプト・ファイルを編集します。
# vi keepassxjp
以下の内容を書き込みます。大文字「ZZ」で Vi エディタを終了させます。
#!/bin/sh
/usr/bin/setxkbmap -model jp106 -layout jp
/usr/bin/keepassx
メニューの中の Keepassx のプロパティを開いて呼び出すコマンドkeepassx %f から /usr/bin/keepassxjp へ変更します。なお %f の部分は不要です。

Keepassx のプロパティを開こうとしているところ
コマンド:の部分を編集します。

これでパソコンを再起動させて、Keepassx を使用して自動入力で文字化けがなければ成功です。


[追記] 以上の方法より効果的な方法がありました。

デスクトップへログインしたときにキーボードの設定を行う方法です。

新規に setxkbmap でキーボード設定を行うファイル(/etc/xdg/autostart/setxkbmap.desktop)を作ります。

特権ユーザとなって作業をします。
# touch /etc/xdg/autostart/setxkbmap.desktop

vi などのエディタでキーボードを設定する内容を記述します。
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=JP keyboard settings
Exec=setxkbmap -model jp106 -layout jp
Terminal=false
Type=Application

以上の内容を書き込んだところで、一旦デスクトップからログアウトしてログインしなおすか、マシンを再起動させてください。

デスクトップへログインした時点ですでにキーボードの設定は pc105 から jp106 へ切り替わっています。そのため Keepassx の起動ファイルの修正に手をかける必要がありません。この方法がお奨めです。

参考URL
Wrong keys auto-typed by KeePass/KeePassX in Ubuntu
http://mycomputeradventures.blogspot.jp/2012/01/wrong-keys-auto-typed-by.html


[追記の追記] もっともっと!簡単な方法がありました。

 [メニュー]>[設定]>[セッションと起動] の設定画面を開きます。

この中から [自動開始アプリケーション] のタブを開きます。

左下の [+追加] ボタンを押して [アプリケーションの追加] のダイヤログボックスを開きます。
  • 名前を [ JP106KBSET ] と記入します。
  • 説明に [ 日本語キーボード設定 ] と記入します。
  • コマンドに [ setxkbmap -model jp106 -layout jp ] と入力して終了します。

これで一度ログアウトした後、ログインし直すと日本語キーボード JP106 の設定が反映されます。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。