fcitx-mozc とoyainputでNicola F型

これまでLinuxでの日本語入力はibus-anthyを使っていたが変換効率がアレなのでちと困っていた。でも親指シフトに対応しているのはAnthy系だけだし…

と思っていた所、oyainputというソフトを使えばmozcなどでも親指シフトが使えるとのことで試してみる。インストール方法はリンク先に記載の通り。fcitx-mozc一式も事前にインストール済み。

試してみたところ二点ほど問題が。

まず第一に、oyainputを起動すると設定したxmodmapの設定がキャンセルされてしまうこと。これはoyainput起動後に改めてxmodmapを実行すればよい。(Futurismoの記事を参考にさせていただいた)

第二に、これまでibus-anthyで入力できていた文字が入力できないこと。具体的には以下の通り。

基本的にoyainputはキーコードを差し替えるソフトのようだ。そのため、ローマ字変換テーブルで定義されていない文字は入力できないし、xmodmapでキーとシンボルの対応をいじってしまうと想定外の文字が出力されてしまう。ちなみにxmodmap設定は以下の通り。

clear lock
clear control
keycode 9 = Zenkaku_Hankaku
keycode 19 = 0 underscore
keycode 22 = yen overline
keycode 34 = colon asterisk
keycode 37 = Eisu_toggle Caps_Lock
keycode 48 = BackSpace
keycode 49 = Escape
keycode 51 = at grave
keycode 66 = Control_L
keycode 97 = backslash bar
keycode 132 = bracketright braceright
add lock = Caps_Lock
add control = Control_L Control_R

pointer = 1 7 3 4 5 6 9 8 2

この設定の意味は以下の通り

このxmodmap設定と整合性をとれるよう、下記のようにソースを変更した。

common.h

#define MOJI_ATMARK 120
//#define MOJI_MAX 119 // last index
#define MOJI_MAX 120 // last index

oyastate.c

//    {KEY_Q, MOJI_PERIOD},
      {KEY_Q, MOJI_KUTEN},
//    {KEY_LEFTBRACE, MOJI_COMMA},
      {KEY_LEFTBRACE, MOJI_KUTOUTEN},
      {KEY_BACKSLASH, MOJI_ATMARK},


//    [MOJI_BS] = {KEY_BACKSPACE,0,0}, /* MOJI_BS 90 */
      [MOJI_BS] = {KEY_APOSTROPHE,0,0}, /* MOJI_BS 90 */
//    [MOJI_SLASH] = {KEY_LEFTSHIFT,KEY_APOSTROPHE,0}, /* MOJI_SLASH 92 */
      [MOJI_SLASH] = {KEY_Z,KEY_SLASH,0}, /* MOJI_SLASH 92 */
//    [MOJI_PERIOD] = {KEY_DOT,0,0}, /* MOJI_PERIOD 111 */
      [MOJI_PERIOD] = {KEY_Z,KEY_DOT,0}, /* MOJI_PERIOD 111 */
//    [MOJI_COMMA] = {KEY_COMMA,0,0}, /* MOJI_COMMA 112 */
      [MOJI_COMMA] = {KEY_Z,KEY_COMMA,0}, /* MOJI_COMMA 112 */
//    [MOJI_LBRACKET] = {KEY_LEFTSHIFT, KEY_RIGHTBRACE,0}, /* MOJI_LBRACKET 96 */
      [MOJI_LBRACKET] = {KEY_Z,KEY_LEFTSHIFT, KEY_8}, /* MOJI_LBRACKET 96 */
//    [MOJI_RBRACKET] = {KEY_LEFTSHIFT,KEY_BACKSLASH,0}, /* MOJI_RBRACKET 97 */
      [MOJI_RBRACKET] = {KEY_Z,KEY_LEFTSHIFT,KEY_9}, /* MOJI_RBRACKET 97 */

KEY_なんちゃらという定数は/usr/include/linux/input-event-codes.hで定義されている。USキーボードが基準なので例えばKEY_RIGHTBRACEはJISキーボードでは]ではなく[である。sudo showkey -kで押したキーのキーコード(数字)を得ることができるので、得られた数字とinput-event-codes.hの内容を突き合わせて、入力するキーに対応するKEY_なんちゃら定数を調べることができる。

最後に、fcitx-mozcのローマ字変換テーブルを編集した。

コメント(0)

コメントを投稿する際はここをクリック

Blog category: Ultima | Adventure games | BSD and Linux | FM TOWNS and Japanese home computers | Computers | Bottle | 広島新球場 | 日本プロ野球 | 広島市民球場跡地とサッカースタジアム | その他スポーツ | Other topics
2002 08 09 10 11 12
2003 01 02 03
2004 01 02 03 04 06 08 09 10 11 12
2005 01 02 03 04 05 06 07 08 09 10 11 12
2006 01 02 03 04 05 06 07 08 09 10 11 12
2007 01 02 03 04 05 06 07 08 09 10 11 12
2008 01 02 03 04 05 06 07 08 09 10 11 12
2009 01 02 04 05 06 07 09 10
2010 01 03 04 05 08 11
2011 01 02 03 04 07 11 12
2012 01 02 03 09 10 11
2013 01 02 03 05 06 07 08 09 10 11 12
2014 01 02 03 04 05 06 07 10 11 12
2015 01 02 03 04 05 07 08 11 12
2016 03 04 05 07 08 09 10 11
2017 06
2018 11 12
2019 01 04 10
2020 05 06 07

Note

本サイトのハイパーリンクの一部は、オリジナルのサイトが閉鎖してしまったため"Internet archive Wayback Machine"へのリンクとなっています。そのようなリンクにはアイコン[archive]を付与しています。

本サイトはCookieを使用しています。本サイトにおけるCookieは以下の三種類のみであり、Cookieの内容に基づいてサイトの表示を変更する以外の用途には用いておりません。