Linux – oyainput+カスタマイズ情報

このページでは、Linuxでoyainput、mozcを使う方法を紹介しています。さらに、oyainputのカスタマイズ情報も掲載しています。

Linuxで親指シフトをするならoyainput!!

linuxでは、IM-IMEの組み合わせとして、Fcitx-AnthyやIBus-Anthyを使って親指シフトを実現することができますが、変換性能があまり高くありませんでした。

そこで、OyaMozc(Android用の無料アプリ)を出されているIN Worksさんが、oyainputを開発して無料でオープンソースで公開してくださいました。

oyainputの本家サイト(インストール方法など)は、こちら

oyainputなら、mozcの変換エンジンを利用していますので、変換性能が高いようです。

オープンソースですので、トラブルがあればソースコードをいじって解決できるかもしれません。

linuxで日本語入力をするならoyainputをおすすめします。

参考サイト:

Linuxで親指シフトを利用する(Mozcとlibkkcの場合)

Linuxの親指シフトでMozcが使える!oyainputが公開された・・・感動

oyainputを標準的な方法でインストールする方法

oyainputを標準的な方法でインストールする方法は、Xubuntuのインストール+oyainputの標準的インストールでご紹介しています。

oyainputをカスタマイズしてインストール

oyainputを通常通りインストールした場合、使う人の好みによりますが、こちらに書いてあるような課題を感じる場合があるようです。特に、

  • 『』.,/などの入力ができない
  • 「:」を「Backspace」にする設定をxmodmapでしていると、「:」を押したときに「Backspace」に割り当てている文字が出力される

ようです。

この問題を解決されている方がいました。oyainputをカスタマイズしように記載されているようにすると、上記の問題が解決します。

以下においては、さらに、F型キーボードにおける設定なども紹介しています。

インストールコマンド

標準的なJISキーボードの場合には以下のコマンドを順に打つことで(ステップ4)の前までインストールできます。
sudo apt-get install -y git gcc make
cd
mkdir work
cd work
wget https://eee-life.com/kb/f/oyainput-mod.zip
upzip oyainput-mod.zip
cd oyainput-mod
make
sudo make install
cp –fiv scripts/oyainput-start.sh ~/
cp –fiv scripts/.Xmodmap ~/
(ステップ4)まで飛ぶことができます。

(ステップ2-B)英数入力時のキーボードレイアウトの設定(xmodmap)

cd
nano .Xmodmap

で、方針(A)~(C)に応じて、以下の内容の.Xmodmapファイルを「ホーム(~/)」に作ります。

なお、xubuntu以外の場合はmousepadの部分をgedit、viなどに置き換えてください。

(B)JISキーボードの「:」を「BackSpace」にして「BackSpace」を「 ]」にする場合(F型配列風)
keycode 48 = BackSpace BackSpace
keycode 34 = colon asterisk
keycode 51 = at grave
keycode 22 = bracketright braceright
keycode 132 = yen bar
(C)富士通製のF型キーボード(FMV-KB232、FKB7628-801など)を使っている場合
keycode 132 = yen bar

F型キーボードの場合、スペースを打ちやすくするために、追加で

keycode 102 = space space

として「無変換」を「スペース」にするといいと思います。


ここで、以下のコマンドでキーボードレイアウトが変わります。今、変えなくてもいいです。

xmodmap .Xmodmap

(ステップ3.1)oyainputのソースコードの修正 oyastate.c

sudo apt-get install -y git gcc make
cd
mkdir work
cd work
wget https://eee-life.com/kb/f/oyainput-mod.zip
upzip oyainput-mod.zip

このgit cloneでoyainputのソースコードをダウンロードした後で、修正済みのoyainputのソースファイルをダウンロードして、srcディレクトリ内を上書きします。そのままだとoyastate.cが「(B)JISキーボード・・・の場合」のものになっています。「句読点で確定」の場合はoyastate-kakutei.c.txtを、「(C)F型キーボードの場合」の場合はoyastate-ftype.c.txtをoyastate.cに上書きコピーします。例えば、以下のようにします。

cd oyainput-mod/src
cp -fiv oyastate-ftype.c.txt oyastate.c

そして、「(ステップ3.3)oyainputのビルド、インストール、実行」まで飛びます。以下は、どのように変えているかがわかるように残しておきます。


ソースコード改編でやっていること

~/work以下にソースコードがダウンロードされている状態で、

nano ~/work/oyainputmod/src/oyastate.c

で、方針(A)~(C)に応じて、以下のように変更します。

(B)JISキーボードの「:」を「BackSpace」にして「BackSpace」を「 ]」にする場合(F型配列風)
(変更分)
[MOJI_BS] = {KEY_APOSTROPHE,0,0}, /* MOJI_BS 90 */
[MOJI_SLASH] = {KEY_Z,KEY_SLASH,0}, /* MOJI_SLASH 92 */
[MOJI_LKAGI] = {KEY_Z,KEY_LEFTSHIFT, KEY_8}, /* MOJI_LKAGI 94 */
[MOJI_RKAGI] = {KEY_Z,KEY_LEFTSHIFT, KEY_9}, /* MOJI_RKAGI 95 */
[MOJI_LBRACKET] = {KEY_Z,KEY_RIGHTBRACE,0}, /* MOJI_LBRACKET 96 */
[MOJI_RBRACKET] = {KEY_Z,KEY_BACKSPACE,0}, /* MOJI_RBRACKET 97 */
[MOJI_PERIOD] = {KEY_Z,KEY_DOT,0}, /* MOJI_PERIOD 111 */
[MOJI_COMMA] = {KEY_Z,KEY_COMMA,0}, /* MOJI_COMMA 112 */
[MOJI_DAKUTEN] = {KEY_Z,KEY_LEFTSHIFT,KEY_2}, /* MOJI_DAKUTEN 116 */
[MOJI_HANDAKUTEN] = {KEY_Z,KEY_LEFTSHIFT,KEY_7}, /* MOJI_HANDAKUTEN 117 */
[MOJI_RKAKKO] = {KEY_BACKSPACE,0,0}, /* MOJI_RKAGI 119 */
([MOJI_RKAKKO]~ の次の行から挿入)
[MOJI_ATMARK] = {KEY_BACKSLASH,0,0}, /* MOJI_ATMARK 120 */
[MOJI_BACKSLASH] = {KEY_Z,KEY_RO,0}, /* MOJI_BACKSLASH 121 */
[MOJI_EQUAL] = {KEY_Z,KEY_LEFTSHIFT,KEY_MINUS}, /* MOJI_EQUAL 122 */
[MOJI_SEMICOLON] = {KEY_SEMICOLON,0,0}, /* MOJI_SEMICOLON 123 */
[MOJI_PLUS] = {KEY_LEFTSHIFT,KEY_SEMICOLON,0}, /* MOJI_PLUS 124 */
[MOJI_COLON] = {KEY_LEFTBRACE,0,0}, /* MOJI_COLON 125 */
[MOJI_ASTERISK] = {KEY_Z,KEY_LEFTSHIFT,KEY_LEFTBRACE}, /* MOJI_ASTERISK 126 */
[MOJI_BAR] = {KEY_Z,KEY_LEFTSHIFT,KEY_YEN}, /* MOJI_BAR 127 */
[MOJI_CIRCUMFLEX] = {KEY_EQUAL,0,0} /* MOJI_CIRCUMFLEX 128 */
(C)富士通製のF型キーボード(FMV-KB232、FKB7628-801など)を使っている場合

(A)の作業に以下を追加。

上と比べて以下のように変更します。KEY_APOSTROPHEは「:」キーのことです。 
{KEY_LEFTBRACE, MOJI_COMMA}, → {KEY_LEFTBRACE, MOJI_ATMARK},
{KEY_APOSTROPHE, MOJI_BS}, → {KEY_APOSTROPHE, MOJI_KUTOUTEN},
以下のように、romakeysの定義部分
[MOJI_BS] = {KEY_BACKSPACE,0,0}, /* MOJI_BS 90 */
[MOJI_RKAKKO] = {KEY_BACKSLASH,0,0}, /* MOJI_RKAGI 119 */
[MOJI_ATMARK] = {KEY_LEFTBRACE,0,0}, /* MOJI_ATMARK 120 */
[MOJI_EQUAL] = {KEY_EQUAL,0,0}, /* MOJI_EQUAL 122 */
[MOJI_CIRCUMFLEX] = {KEY_Z,KEY_LEFTSHIFT,KEY_MINUS}, /* MOJI_CIRCUMFLEX 128 */

また、
{KEY_RIGHTBRACE, MOJI_COMMA},の下に、{KEY_APOSTROPHE, MOJI_ASTERISK}, を追加します。
{KEY_P, MOJI_XE},の下に、{KEY_APOSTROPHE, MOJI_COLON}, を追加します。
「句読点で確定」を使う場合

句読点で確定」という特殊な方法を使う場合、追加で以下のように変更します。なお、スペースキーではなく無変換キーに確定が割り当てられている場合は、KEY_SPACEをKEY_MUHENKANに変えます。

[MOJI_KUTEN] = {KEY_DOT,KEY_SPACE,0}, /* MOJI_KUTEN 113 */
[MOJI_KUTOUTEN] = {KEY_COMMA,KEY_SPACE,0}, /* MOJI_KUTOUTEN 114 */

(ステップ3.2)oyainputのソースコードの修正 common.h

mousepad ~/work/oyainput/src/common.h

で、以下のように変更します。

変更前:

#define MOJI_RKAKKO 119
#define MOJI_MAX 119 // last index

変更後:

#define MOJI_RKAKKO 119
#define MOJI_ATMARK 120
#define MOJI_BACKSLASH 121
#define MOJI_EQUAL 122
#define MOJI_SEMICOLON 123
#define MOJI_PLUS 124
#define MOJI_COLON 125
#define MOJI_ASTERISK 126
#define MOJI_BAR 127
#define MOJI_CIRCUMFLEX 128
#define MOJI_MAX 128 // last index

.

さらに、

mousepad ~/work/oyainput/src/config.c

で、以下のように変更します。

変更前:

        {"RKAKKO",119},
};

変更後:

        {"RKAKKO",119},
        {"ATMARK",120},
        {"BACKSLASH",121},
        {"EQUAL",122},
        {"SEMICOLON",123},
        {"PLUS",124},
        {"COLON",125},
        {"ASTERISK",126},
        {"BAR",127},
        {"CIRCUMFLEX",128},
};

(ステップ3.3)oyainputのビルド、インストール、実行

ターミナルで以下のコマンドを実行させます。

cd
cd work
cd oyainput
make
sudo make install

もし、「stdio.hが見つからない」というエラーが出たら、

sudo apt-get install -y build-essential

で解決することがあります。

(ステップ4)oyainputの設定ファイルの編集

ここで、いったん、oyainputを起動して、「.oyainputconf」を生成させます。

oyainput

Ctrl+Cで終了させておきましょう。

cd
mousepad .oyainputconf

で、以下を追記します。(上記の「修正済みのoyainputのソースファイル」を使えば追記されます)

KEYADD=Q:KUTEN
KEYADD=EQUAL:CIRCUMFLEX
KEYADD=LEFTBRACE:KUTOUTEN
KEYADD=RIGHTBRACE:DAKUTEN
KEYADD=BACKSLASH:ATMARK
KEYADD=RO:BACKSLASH
LKEYADD=EQUAL:EQUAL
LKEYADD=BACKSLASH:SEMICOLON
LKEYADD=LEFTBRACE:COLON
RKEYADD=EQUAL:EQUAL
RKEYADD=BACKSLASH:PLUS
RKEYADD=LEFTBRACE:ASTERISK
RKEYADD=RIGHTBRACE:HANDAKUTEN
RKEYADD=RO:BAR

左親指キー(LOYAKEY)としてスペースバーを使う場合はSPACEのままでだいじょうぶですが、無変換キーを使う場合(富士通製のF型キーボードを使う場合を含む)、MUHENKANに変更します。

(ステップ5.1)起動スクリプトの作成、自動起動

oyainputは起動時にxmodmapを無効化してしまうようなので、oyainputを起動後にxmodmapが起動されるスクリプトを作成します。

cd
mousepad oyainput-start.sh

で、以下の内容のスクリプトのファイルを作ります(Windowsでいうところのバッチファイル)。

oyainput &
sleep 3
xmodmap .Xmodmap

これは、oyainputをバックグラウンドで起動した後、3秒間待って、xmodmapコマンドを実行させる内容です。

これでうまく動作しない場合、下記のようにoyainputの窓を開いておくと調子がよくなることがあります。

#!/bin/bash
xterm -T "oyainput-xterm" -e oyainput &
sleep 2
xdotool windowminimize $(xdotool search --sync --name "oyainput-xterm")

これにはxdotoolのインストール(無料)が必要です。

chmod +x oya-xmodmap.sh

でファイルに実行権限を付与しておくといいでしょう。

このスクリプトをGUI画面で自動起動させる方法を紹介します。他に、コマンドラインでcrontab -eのコマンドなどでやる方法があります。

設定|セッションと起動 を起動します。

add-autostart

自動開始アプリケーションのタブを選択して「追加」をクリックします。

名前:oya-xmodmap
コマンド:bash oya-xmodmap.sh

の項目を追加します。

これで起動時にoyainputとxmodmapが自動起動されます。

(ステップ5.2)ローマ字かな変換テーブルに定義を追加

以下の表の通り、「Mozcの設定」の「一般」タブの「ローマ字テーブル」にて、ローマ字かな変換テーブルに定義を追加します。「mozcの設定」が起動しない場合は、mozc-utils-guiをインストールすることが必要かもしれません。

= £
~
| ¬
* ¢
z=
z|
z*
z[
z]
z(
z)
z.
z,
z/
z\
z”
z’

実際に定義を追加する作業は大変なので、「Mozcの設定」の「一般」タブの「ローマ字テーブル」、「編集」、「編集」、「インポート」にてインポートできるファイルをこちらに置きました(「名前を付けて保存」で保存できます)

(ステップ5.2)Mozcのキー設定の変更

「英数入力」モードにならないようにする

「Mozcの設定」、「一般」タブ、「キー設定の選択」、「編集」で、コマンドが「英数入力切り替え」、「IMEを有効化」、「IMEを無効化」となっている項目は、削除します。(下にインポート用ファイルのリンクがあります)

Mozcで「英数入力」モードにしたり、Mozcの機能を使ってIMEをオン/オフにしようとすると、「as」と入力しようとしたときに「usi」と入力されてしまうという問題が発生するようです。Mozcの機能を使ってIMEをオン/オフにせず、IMEのオン/オフは下記のFcitxの設定で行うようにすればこの問題は発生しないようです。

また、下の(ステップ5.4)でIMEオン/オフに割り当てるキーを削除します。

例えば、以下などを削除します。

入力文字なし Eisu 英数入力切り替え (既に削除済み)

入力文字なし Henkan 再変換

「左親指キー」に「確定」を割り当て

左親指キーに機能を割り当てると入力作業がはかどると思います。しかし、OASYS風の「2回でカタカナ」はMozcにはないので(mozcはオープンソースですのでどなたかが実装していただければ可能です)、私は「全確定」を割り当てています。

「Mozcの設定」、「一般」タブ、「キー設定の選択」、「編集」、「編集」、「エントリーを追加」で以下のようにします。

変換前入力中 Space 確定
変換中 Space 確定
サジェスト表示中 Space 確定
サジェスト選択中 Space 確定

インポートできるファイルをこちらに置きました(「名前を付けて保存」で保存できます)

(ステップ5.3)「言語サポート」の変更

「設定」、「言語サポート」、「言語」タブ、「メニューとウィンドウの言語」で「日本語」が一番上にあることを確認します。もしそうでなければ一番上までドラッグします。

「設定」、「言語サポート」、「言語」タブ、「キーボード入力に使うIMシステム」で「fcitx」となっていることを確認します。もしそうでなければ選択します。

(ステップ5.4)Fcitx設定の変更

「設定」、「Fcitx設定」、「全体の設定」タブで、「Show Advanced Options」にチェックします。そして、

「入力メソッドをオンに」に「変換(Henkanmode)」キーを、

「入力メソッドをオフに」に「英数(Eisutoggle)」キーを指定します。

これで、日本語入力を行うときは「変換」キー、半角英数を入力するときは「英数」キーを押せばよくなります。

間違えなどあるかもしれません。コメントにて情報を募集しています。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする