2008年7月22日

libvirt 経由で日本語キーボードを扱う

libvirt の管理下の仮想化ドメインから、virt-manager を使って、仮想グラフィック画面をVNC経由でアクセスすると、正しくキー入力ができない場合がある。

kvm/qemu のエミュレータに対してキーボードのレイアウトを指定するオプションを付ければ、対応が可能であるが、、、libvirt のドメイン設定ファイル 「libvirt: Domain XML format」にはどうも関連する設定項目が無いようである。(追記2009/04/14 記事の最後の方を参照)

まぁ、日本語キーボードの keycodes の問題なんで、英字キーボードを用意すれば済むのだが、 日本にいる以上、日本語配列には慣れていかないといけないわけで、、、

はて、どうしたもんだか?

まぁ、スクリプトを挿めばいい

実行バイナリを別名に変更し

# mv /usr/bin/kvm /usr/bin/kvm.bin
# mv /usr/bin/qemu-system-x86_64 /usr/bin/qemu-system-x86_64.bin

/usr/bin/kvm/usr/bin/qemu-system-x86_64の中身を次のラッパースクリプトに変更する。

#!/bin/sh

exec $0.bin -k ja $*

これにより、日本語キーボードでも正しく文字が入力できるようになる。

なんだろ?

VNCでkeycodes配列をネゴしないのが問題なのかなぁ、、、イマイチ分からん

追記 (2009/04/14)

ふと、気づいてみると XMLフォーマットの中で、VNCのキーマップの指定が出来るようになっている!

    <graphics type='vnc' port='-1' autoport='yes' listen='' keymap='ja'/>

開発サイトのデータを検索する 「libvirt.git/search: keymap」と、 どうもドキュメントに記載が無いだけで libvirt 0.4.1 位から使えてたようでした。 なので、このバッドノウハウは要らなくなりました。

0 件のコメント:

Cocoa Emacs 24.3 構築 (2013/03版)

暫く使っている Cocoa Emacs を更新していなかったので、24.3 に上げてみた。 当てるパッチは inline patch と ポップアップフリーズ対応パッチ くらい。 24.3 には既にフルスクリーン実装が入っているので、よく使われているフルスクリーンパッチは外し...