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

目次
oyainputが登場
古いPCでも動くXubuntuにoyainputをインストール
oyainputのインストール(通常)
oyainputをカスタマイズしてインストール

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をカスタマイズしよう


古いPCでも動くXubuntuにoyainputをインストール

Linuxを使う目的として、メモリーが1GB程度しかなくてWindows 7も快適に使えなくなった古いPCを活用したいという方が多いと思います。

今回、7年前に発売されたAcer Aspire One D270に、Xubuntu、oyainputを入れましたので、手順を紹介します。この手順は、「親指シフト表記付きUSBライトタッチキーボード」を使う場合も同じです。

なお、このAcer Aspire One D270が親指シフトのためにお薦めというわけではありません。小型のノートパソコンでは、今では、ASUS Vivobook Flip 12 TP202NA、Lenovo Miix 320(、Lenovo ThinkPad X220あたりがいいのではないでしょうか。

Aspire One D270

aspireone1

スペックは、液晶サイズ:10.1インチ CPU:Atom N2600/1.6GHz/2コア メモリ容量:1GB 初期OS:Windows 7 Starter 32bitです。

Windows 7が動くもののCPUがAtomなので、常駐ソフトウェアを少なくしても、けっこうもたつきます。

aspireone2

キーボードはNの下の中央よりも右側で「(Spaceと変換キーの)割れ」がありますが、この段のキーの縦の長さは長くなっていますし、キーボード全体の大きさが小さいので、意外と親指シフトしやすくなっています。

Xubuntu

Linuxには、ubuntu、redhat、openSUSEなどのディストリビューション(分派)がたくさんあります。

その中のubuntuをインストールしようとも考えましたが、ubuntuを快適に使うには2GB以上のメモリーや速いCPUを必要とします。

そこで、軽量版のXubuntuをインストールすることにしました。

Xubuntuは、ubuntuを(少ないメモリーでも快適に動くように)軽量化・高速化したもの(ubuntuのフレーバー)になります。

今回は、サポート期間が長いXubuntu 18.04 LTS 64bitをインストールしました。

インストールについて解説しているサイト

ここここここここなどを読んでおいた方がいいでしょう

インストール用のUSBメモリーを作成

(多くの場合、別の)PCでXubuntuのISOイメージ(1.5GB)をダウンロードしておきます。通常は、Mirror downloadsのJapanをクリックします。

ツールを使って起動可能なUSBメモリーを作ります。もちろん、時間はかかりますが、起動可能なDVDを作ってDVDドライブから起動する方法もあります。

今回は、既に別の目的でインストールされていたPowerISOにて、ツール|起動可能なUSBドライブの作成 を実行して、作成しました。なお、この場合、使用後に、他のツール(Windowsのエクスプローラなど)ではUSBメモリーをうまくフォーマットできないことがあります。したがって、使用後には、このPowerISOにて、ツール|Clean USB Drive で、フォーマットします。

Windowsとの共存

既にWindowsなどの他のOSがインストールされていて、それと共存させる場合は、難易度が格段に上がります。

初めての人は間違えてWindowsが入っているパーティション全体を消してしまったり、Windowsを起動できるようになるまであきらめてしまったりすることがあります。

初めての人は、Windowsを消してしまうことがあり得ることを覚悟して進みましょう。大事なデータが入っているのであればそのPCにインストールするのはやめて中古で別のPCを買った方がいいかもしれません。

Easus Partition Master Freeのようなパーティション操作ソフトで、パーティションが作られていない空き領域を作っておきます。そして、その構成を覚えておきましょう。

インストール(起動)

作成したUSBメモリーを挿して、PCを起動します。その際、Esc、F2、F1、Del、F8などのキーを押して、HDDよりも先にUSBメモリーから起動するように指定します。

xubuntu_vbox_06

この画面になったときに、まずは「Xubuntuをインストール」をやってみましょう。途中で止まるような場合、F6を押して

xubuntu_vbox_02

acpi=off、noapicなどをオンにするなど試すことができますが、どのようにすればうまくいくかはそのPCに依存します。

「インストールせずにXubuntuを試してみる」でLive版を起動して、「デスクトップ」にできる「Xubuntuのインストール」アイコンからインストールを始めた方が楽だと思います。

make-liveusb-1

画面を進めると上のような「どのようにしますか」画面が出てきます。

Linuxのインストール全般にいえることですが、他のOSが入っている場合、ここでは「それ以外(詳しい設定をする選択肢)」を選びましょう。

他の選択肢を選ぶと何も聞かれずにインストールが完了してしまい、他のOS(Windowsなど)が完全に消えていたということが発生することがあります。

パーティション作成画面の操作は少し難しいです。

ここここここここここなどを読んでおいた方がいいでしょう。メモリーが1GB以下の場合は、マウントポイントを/にするパーティションの他に8GB程度のスワップ領域も作っておいた方がいいと思います。

進めると、Xubuntuのインストールが完成します。

grubの設定(Xubuntuのインストールの後)

他のOSと共存させていれば、grub(起動マネージャー)の設定が必要です。例えば、デフォルトでWindowsが起動するようにしたり、タイムアウトの秒数を10秒から3秒に変えたりすることです。

ここここここここなどを読んでおくといいと思います。具体的には、以下をします。

cat /boot/grub/grub.cfg | grep indows (OS名を確認)
sudo mousepad /etc/default/grub (設定を変更)
sudo update-grub (grubを更新)

なお、Windowsを起動できるようにした後で、WindowsでEasyBCDというソフトウェアを入れて、GRUB 2のメニューの代わりに、Windowsの起動メニューを最初に表示させる方法もあります。

その場合、EasyBCDを「管理者として実行」させて、Add EntryでGRUB 2のlinuxの項目を作成して、再起動してlinuxが起動できることを確認してから、再度EasyBCDを実行して、Write MBRします。

LinuxとWindowsのデュアルブート環境で、時間が9時間ずれる問題

時間が9時間ずれる問題が発生するなら、こちらに記載のように対処する必要があります。

カーネルの再構築(リビルド)

Linuxはカーネルの再構築ができるところが長所です。

カーネルとは、OSの中核となる部分です。インストールDVDに付属のものは、どのPCでも動くようになっている汎用的なものです。

自分のCPU、ハードウェア構成にとって不必要な機能を外すことで、小型化し、高速化します。多くの場合、はっきりと体感できるほど高速化すると思います。

例えば、IntelのCPUを使っているなら、AMD用の機能は外します。IntelのAtomを使っているならば「Intel Atom」を指定します。また、BroadcomのWifiアダプターを使っているなら、AtherosやRealtekやIntelなどのドライバーは外します。

こちらに記載の方法でやりました。


oyainputのインストール(通常)

やっと、oyainputのインストールに入ります。

まずは、oyainputの作者様が書かれた手順にしたがってインストールします。

※まずはこの通常の手順でインストールして動作を確認するといいと思います。しかし、半角英字モードでも「:」キーで「後退」させたり、『』.,/なども入力できるようにしたりする場合は、下記の「oyainputをカスタマイズしてインストール」の手順を実行するといいと思います。

menu

左上のメニューボタンをクリックします。

terminal

ターミナルを起動します。Ctrl+Alt+Tでも起動できます。

sudo apt-get install -y git gcc make
cd
mkdir work
cd work
git clone https://github.com/inwskatsube/oyainput.git
cd oyainput
make
sudo make install

でインストールが完了します。

起動は、

oyainput

です。

自動起動

毎回起動のたびにコマンドを入力するのが面倒なので、自動起動の設定をします。

session-and-start

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

add-autostart

自動開始アプリケーションのタブを選択します。

add-autostart2

xfce4-terminal -e oyainput --minimize

というコマンドの自動起動を設定します。ubuntuの場合はxfce4-terminalの代わりにgnome-terminalになります。(他の場合は端末プログラムのコマンドを右クリックして調べる必要があります)

ターミナルが表示されるのが嫌であれば、単に以下のようにしてもいいと思います。

oyainput

この場合、oyainputを終了するには、以下のようにします。

ps -A | grep oyainput
(これでoyainputのプロセス番号を調べる - 1234だとします)
kill 1234

これで、無事にoyainputが使えるようになったと思います。

oyainputの設定

mousepad .oyainputconf

で設定ファイルを変えて、親指キー、同時判定時間などの設定を変えることができます。各項目はこちらで解説されています。

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

動作は?

動作は、特にもたつきがなく、安定しています。Windows 7では軽いJapanistであってももたつきがありましたが、Xubuntu+oyainputではもたつきがありません。動画を再生させても安定しています。

今後、2020/1/14までのWindows 7のサポート期間が経過して、Windows 7を使い続けることが難しくなります。

どのようなアプリケーションソフトを使用するかによりますが、古いPCにXubuntuを入れるという選択肢も有効だと思います。


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

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

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

ようです。

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

以下においては、さらに、「無変換キーとSpaceキーを入れ替え(左親指キーに機能を割り当てるため)」も行うようにもなっています。この方法をご紹介します。

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

「Mozcの設定」の「一般」タブの「ローマ字テーブル」、「編集」、「編集」、「インポート」にてインポートします。

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

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

ここに記載のように下のステップ2-Bに記載のxmodmapだと最近のubuntuのバージョンだと、途中でxmodmapが向こうになってしまうことがあるようです。
xkbの設定方法については、こちらの方法が良さそうです。追って記載します。

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

cd
mousepad .Xmodmap

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

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

(A)JISキーボードの「:」と「BackSpace」を入れ替える場合
keycode 48 = BackSpace BackSpace
keycode 22 = colon asterisk
keycode 132 = yen bar

 

もし「無変換」キーと「Space」キーを入れ替えるなら、以下の2行を加えます。

 

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

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

xmodmap .Xmodmap

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

sudo apt-get install -y git gcc make
cd
mkdir work
cd work
git clone https://github.com/inwskatsube/oyainput.git

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

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

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

(A)JISキーボードの「:」と「BackSpace」を入れ替える場合
(変更分)
[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_BACKSLASH,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]~ の次の行から挿入)
[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 */
(B)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)の作業に以下を追加。

(63行目)
	{KEY_APOSTROPHE, MOJI_KUTOUTEN},

句読点で確定」という特殊な方法を使う場合、追加で以下のように変更します。

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

また、

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.2)oyainputのビルド、インストール、実行

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

cd
cd work
cd oyainput
make
sudo make install

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

oyainput

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

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

cd
mousepad .oyainputconf

で、以下を追記します。

(A)JISキーボードの「:」と「BackSpace」を入れ替える場合、(C)富士通製F型キーボードを使っている場合
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:RBRACKET
RKEYADD=EQUAL:EQUAL
RKEYADD=BACKSLASH:PLUS
RKEYADD=LEFTBRACE:ASTERISK
RKEYADD=RIGHTBRACE:HANDAKUTEN
RKEYADD=RO:BAR
F型配列にする場合
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型キーボード(FMV-KB232、FKB7628-801など)を使っている場合、MUHENKANに変更します。

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

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

cd
mousepad oya-xmodmap.sh

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

oyainput &
sleep 3
xmodmap .Xmodmap

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

このスクリプトを自動起動させます。設定|セッションと起動 を起動します。

add-autostart

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

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

の項目を追加します。

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

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

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

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

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

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

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

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

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

左親指キーに機能を割り当てると入力作業がはかどると思います。しかし、OASYS風の「2回でカタカナ」はMozcにはないので、私は「全確定」を割り当てています。

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

変換中 Muhenkan 確定
サジェスト表示中 Muhenkan 確定
サジェスト選択中 Muhenkan 確定

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

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

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

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

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

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

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

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

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

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


コメントする