このページでは、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.zipupzip oyainput-mod.zipcd oyainput-modmakesudo make installcp –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.zipupzip 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/srccp -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」を生成させます。
oyainputCtrl+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のコマンドなどでやる方法があります。
設定|セッションと起動 を起動します。
自動開始アプリケーションのタブを選択して「追加」をクリックします。
名前: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)」キーを指定します。
これで、日本語入力を行うときは「変換」キー、半角英数を入力するときは「英数」キーを押せばよくなります。
間違えなどあるかもしれません。コメントにて情報を募集しています。