メインコンテンツへスキップ

libskkでSticky Shift

··1 分·
Linux Skk
Makoto Morinaga
著者
Makoto Morinaga
技術メモ、コーディング、環境構築のための個人ノート。
目次

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

ibus-skkおよびfcitx5-skkはlibskkを利用しており、その設定を変更することでSticky Shift を有効にできます。よって今回の方法は、ibus-skkおよびfcitx5-skkのどちらの環境でも適用可能です。

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

では、本題のlibskkでのSticky Shiftの実現方法です。

Sticky Shiftの実現方法
#

libskk の README.rules によると、libskkの設定は /usr/share/libskk/rules/ に定義されていますが、ユーザー用に ~/.config/libskk/rules/ にも設定を追加できます。

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

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

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

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

metadata.json の設定
#

まず、プロファイルを判別するための metadata.json~/.config/libskk/rules/StickyShift/ に作成します。

~/.config/libskk/rules/StickyShift/metadata.json
{
    "name": "Sticky Shift",
    "description": "Enable Sticky Shift"
}

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

keymap の設定
#

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

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

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

このコマンドを、ひらがな入力とカタカナ入力時のkeymap設定ファイル (hiragana.json および katakana.json) に記述する。 なお、hiragana.json および katakana.json~/.config/libskk/rules/StickyShift/keymap を作成してその中に保存します。

  • hiragana.json

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

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

プロファイルの有効化
#

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

終わりに
#

これでlibskkを利用する日本語入力システム(ibus-skkやfcitx5-skk等)において Sticky Shiftを実現できました。SKKは小指を酷使しがちですので、Sticky-shiftによって快適な日本語入力が可能になります。

関連記事

Pyenv、pipx、poetryによるPython開発環境(2020)
··1 分
Macos Linux Python
OpenVPNサーバの構築
··2 分
Todo Linux Openvpn
NginxによるWebサーバの構築
··1 分
Linux Nginx