Linux Mint Japanフォーラムが数日間アクセスできない状態になっていて、気づいたら復活していました。あんまりフォーラムへの投稿数も多くないので活性度が低いなぁと感じています。Windows10のサポート切れも近づいている現状、Linux Mintを使ってみるユーザーも増えてくるんじゃないかと期待しているので、なんとかこのフォーラムには頑張ってほしいのですが。
そんななか、二年間放置されているお悩み相談を見つけたので、興味を持って調べてみました。
Linux Mintで採用されているOnboard(ソフトウェアキーボード)において、”_”が入力できないという不具合の様です。調べてみると日本語配列キーボードで起きている不具合の様で、そもそもそのキーが存在しないことになっています。
ところが私が持っている英語配列キーボードでは起きません。やはり日本語配列のキーボードレイアウトで「見落とされている」キーなんじゃないかなと思えてきました。これって誰も気づかなかった不具合じゃないのかな?
Onboardの不具合状況確認
根本的な問題として、Linuxの日本語配列キーボードのレイアウトで”_”を入力するキーが見落とされています。右側のSHIFTキーの隣にあるハズのキーがありません。右側SHIFTキーがやたら横長になっています。”/”の右隣にもう一個キーがあるんだけどな。

ちなみに英語配列のノートパソコンで使っているdebianにもOnboardをインストールしてありますが、こちらは問題ありません。そもそも”_”のキーの位置が全然違いますからね。
推測するに、日本人のLinux関係プログラマーが少ないので日本語に特化した部分が見落とされているんじゃないかと思います。気づいた人がいても指摘する手間を考えると放置するでしょうから長年修正されないんでしょうね。
Onboardのソフトウェアキーボード
これがOnboardアプリによるソフトウェアキーボードです。やはり右側SHIFTキーの隣のキーが”/”になっていて一つキーが欠落しています。

Onboardの開発は英語でやりとりされていることから日本人開発者は少ないと思われますので、見落とされている状況だと考えます。また欠落しているキーはバックスラッシュなので日本ではあまり使いません。日本だと”¥”円マークなのでなくてもほぼ困らないですし。
Onboardソフトウェアキーボードのカスタマイズ
結果をここで記しておきますが、Onboardはソフトウェアキーボードのレイアウトをカスタマイズしたり自作することができます。テーマと言った方が良いかも知れませんがキーボードの見た目をカスタマイズして自作することが可能なのです。かなり面倒くさい作業ですけどね。
結果的にカスタマイズして解決させることができました。

見た目についてはInkscapeで作成されたsvgファイルを編集しました。右側SHIFTキーの幅を縮めて欠落していたキーを追加しました。

SHIFTキーを押した状態にすると、肝心の”_”が現れるようになりました。動作もOKです。ただし、svgファイルの編集だけではここまで到達できませんのでまだ先は長いです。後述します。
Onboardのカスタマイズの手法を情報収集
Onboardのカスタマイズ手順は意外なところに記述されていました。英文なのでちょっと時間がかかりましたが書いてあることは理解できたので私が調べたことの記録がてら記しておきます。
まず最初にOnboadはこちらで開発されています。やっぱり英語です。
カスタマイズ手順は公式サイトではみつけられなくて、OnboadアプリのHelpから表示させられました。やっぱり英文です。ただ英文はパターンがあるので単語を調べればなんとか理解出来る文法になっていると思います。私は英会話は無理ですが英文は辞書さえあればなんとか意味は読み取ることが出来る程度です。

ハイパーリンクになっているので、青文字のところはクリックするとページ偏移して詳細を読むことができます。
Onboardのカスタマイズ手順

フルスクラッチも可能ですが、いきなりは絶対に無理なので、元としたいレイアウトを選択した状態で「新規」をクリックします。すると元とするレイアウトをコピーして新規に作成できる様に、ホームディレクトリのonboardフォルダに必要なファイルをコピーしてくれます。これらのファイルをカスタマイズしていく訳です。
Linux Mintの場合は、「/home/aoipuchu/.local/share/onboard/layouts」というフォルダ内に、3つのファイルがコピーされました。ホームディレクトリ内にコピーされたファイルなので、これらは自由にカスタマイズして構いません。
- Custom FullKey.onboard
- Custom FullKey-Alpha.svg
- Custom FullKey-Numpad.svg
とは言うものの、何をどうしたら良いのかは分からないと思います。やはりマニュアルは重要で先述のHelpドキュメント(英文)を読みながら進めます。
まずは、「Custom FullKey-Alpha.svg」をInkscapeで開いて様子を見てみます。ヘルプドキュメントでは各キーに該当する矩形図形のプロパティにIDが振られているのをInkscapeで開いて確認しろと書いています。実際にやってみると確かに各図形パーツにIDが割り振られています。概ね理解できました。

失敗を恐れる必要は無いので、欠落しているキーを1つInkscapeで作成しました。とは言っても右SHIFTの幅を縮めて、横のキーをコピーして位置合わせした後、IDを空いているものに変えただけです。増やしたキーとなる図形には「AB11」というIDを割り当てました。
そして、.onboardファイルをテキストエディタで開いて下記を追記しました。
<key id="AB11" group="alphanumeric"/>
Code language: HTML, XML (xml)
試しにこれで動作を確認すると、キートップに何もキーが割り当てられてないのっぺらぼうなキーが一つ追加されました。ここで手詰まりとなりかけたのですが、

You might have a look at the key_defs.xml file shipping with Onboard for more information.
という行を見つけました。どうやら「key_defs.xml」ファイルが鍵になっていそうです。このファイルは「/usr/share/onboard/layouts/」にあります。ここはroot権限が必要なのでカスタマイズの範疇を超えている様です。思うにバグというか漏れなので、根本的な対処としては開発元に報告して「key_defs.xml」ファイルを更新してもらう必要がありそうです。
とりあえずroot権限があれば編集は出来るので実験を続けることにします。
キーコードを調べる
Linuxのキーコードを調べるには、xevコマンドを使用します。LMDE6には標準で入っていました。マウスを動かしたりするとズラズラ表示されますが気にせず、追加したいキーを一回タイプするとイベントが表示されますので操作の手を止めます。

どうやら成功しました。「keycode 97」は「backslash」キーだと特定できました。終わったらCTRL+Cでxevを終了させます。
key_defs.xmlファイルの修正
root権限で「/usr/share/onboard/layouts/key_defs.xml」ファイルを編集します。Linux Mintはnemoが便利なのでフォルダーを開く際にroot権限で開けるのでコマンドレスでできます。
ID:AB11にkeycode=97を割り当てる意味で下記の様に追記しました。
<key_template id='AB11' keycode='97'/>
Code language: HTML, XML (xml)
これでOnboardを立ち上げ直して、My layoutsから自分でカスタムしたものを選びました。

これで無事にキートップに”¥”が表示される様になりました。もちろんSHIFTを押すと”_”に変わります。いい感じです。
実際にテキストエディタを起動してソフトウェアキーボードから入力すると、期待通りバックスラッシュ”\”とアンダースコア”_”が入力できることを確認しました。どうやら成功ですね上手く動作しました。
開発元に報告(修正依頼)するには英作文が必要だ
今回、ユーザーカスタマイズの領域を超えてroot権限が必要なファイルを修正する必要がありました。これは開発者達の想定外だと思います。つまりOnboardの利用者が広く恩恵を受けるためには、配布元(開発元)で「key_defs.xml」を修正してもらう必要があると思うのです。
また、Linuxのシステム設定にあるキーボードレイアウトの配列図も間違えているので、差し替えてもらうことが望ましいですね。じゃないとずっとこの日本語キーボードの配列図は間違えたままになり続けることになります。かなキーで言えば「ろ」の文字が無い訳ですから。
どうやって報告(申告)するか考えてます。英作文はあんまり得意じゃないんですよね。誰か英語に強い人が代わりに報告してくれないですかねぇ。
コメント