ibus-skkでSticky Shift

この記事では、ibus-skkでSticky Shiftを実現していきます。

この記事に検索で辿りつく人には説明はいらないかもしれませんが、SKKは日本語入力システム(ATOKとかgoogle IMEとか)の一つです。
基本的にはEmacs上で動くものですが、macOSではAquaSKK、Linuxではibus-skkなど、OS上で日本語入力システムとして利用できるようになっています。
初めて聞いたという方はぜひSKKで検索してみてください。

では、本題のibus-skkでのSticky Shiftの実現方法です。

ibus-skkではlibskkの設定を参照しています。そのため、libskkにSticky Shiftの設定ができればOKです。
https://github.com/ueno/libskk/blob/master/rules/README.rulesを読んでみると、libskkの設定は/usr/share/libskk/rules/で定義されていますが、ユーザ用に~/.config/libskk/rulesにも定義することが可能です。

今回は、デフォルトの設定を継承して、ユーザ用にSiticy Shifftの設定を追加します。

ユーザ用の設定ファイルの保存場所の準備

以下のコマンドで設定用プロファイルの保存場所を作成します。

mkdir -p ~/.config/libskk/rules/StickyShift/keymap

metadata.jsonの設定

まずは、プロファイルを判別するためのmetadata.jsonを以下のように作成します。
なお、metadata.jsonのファイルパスは~/.config/libskk/rules/StickyShift/metadata.jsonです。

設定を判別するためのnameとdescriptionなので、自身が分かりやすければ好きなように記載しても問題ありません。

{
    "name": "Sticky Shift",
    "description": "Enable Sticky Shift"
}

keymapの設定

次にkeymapを設定します。
libskkで変換の開始場所を指定するコマンドは以下の3つがあります。

  • start-preedit
  • start-preedit-kana
  • start-preedit-no-delete

私は変換確定時に改行がされないようにstart-preedit-no-deleteを使いますが、この辺りは好みで選んでください。

このコマンドを以下のように、ひらがなとカタカナ入力時のkeymapの設定ファイルであるhiragana.jsonkatakana.jsonとして設定します。

  • ~/.config/libskk/rules/StickyShift/keymap/hiragana.json

    {
    "include": [
        "default/hiragana"
    ],
    "define": {
        "keymap": {
            ";": "start-preedit-no-delete"
        }
    }
    }
  • ~/.config/libskk/rules/StickyShift/keymap/katakana.json

    {
    "include": [
        "default/katakana"
    ],
    "define": {
        "keymap": {
            ";": "start-preedit-no-delete"
        }
    }
    }

プロファイルの有効化

ibus-skkの設定画面で、タイピング方式欄にStickyShiftが表示されますので、選択します。
念のため、PCを再起動して完了です。

終わりに

これでibus-skkでもSticky Shiftを実現できました。SKKはどうしても小指を酷使しがちなので、これでibus-skkでも快適な日本語入力ができます。
この記事でSKKに興味をもった方はぜひ試してみてください!

linuxlinux,SKK

Posted by mako