令和にSKKに入門したくなったときに見るメモ

まとめ
- MacでもAquaSKKを使うことでSKKを使うことができる
- SKK使うならSKK Serverを起動してGoogle日本語入力と連携させたほうが良い(少なくとも最初のうちは)
- お試しで使うならRuby製のgoogle-ime-skkというgemが楽
- SKK ServerはMacのAutomatorで自動起動できるようにしておくと良さそう
- やってないならKarabinarの日本語向け設定のCmdでIME切り替えるやつを設定しといたほうがいい
-
keymap.conf
に追記して、;
で変換モードにできるようにしたほうがいい(好み) -
.rule
ファイルを作成することで日本語入力のカスタムができるので必要ならする - 絵文字辞書もあるので追加しておく
- ニコニコのwikiに一通り目を通しておく

SKKに入門したい
- Mac標準の日本語IMEにイラつくことが多くなった
- Google日本語入力を知ったのでそれでもいいのだけどSKKの存在を知ったので
- Vimと相性が良さそうだったから(Vimmerではないけど)
- ユーザー辞書をほとんど使ってこなかったがSKKは辞書登録が非常に簡単そうだったから
- なんか使ってるとかっこよさそうだから

SKKでやりたいこと
- SKKを使って日本語、英字を簡単に切替えたい
- SKK自体のカスタマイズはなるべくやりたくない(使うまえに心折れそうなため)
- コード書くときだけでなくブラウザとか他のところでも使う想定
- Spaceではなく;で変換する節の指定ができるそうなのでその設定がしたい
- Google日本語入力のAPIを使ってSKKを使用すると雑にSKKを使ってもそれなりに使えるっぽいのでそうしたい
- 正直、絶対Google日本語入力にしといたほうが速いけど、使ってみないとわからないし、vimも無理矢理使っておぼえたからSKKもとりあえず使ってみる

SKKのインストール
こちらを参考にAqua SKKをいれる

キーバインドを設定する
普通にインストールしたSKKをキーボード設定に追加した
普段US配列のキーボードを使っているから言語切替はCtrl + Spaceでやっていたが、入力しているところでCtrl + SpaceとしてもSKKに切り変らないためKarabinerを使って設定する
といっても、日本語向け設定をインストールして、Cmdキーで文字切替ができるように設定するだけ

Spaceを;に
confファイルに追記すればよさそう

SKK Server
SKKではSKK Serverなるものを起動して使うことができるそうな。上記の記事で紹介されているのは yaskkserv2 の導入について紹介されている。
SKK Serverが何でいるかというとSKKは日本語変換のストレスを減らしてくれるけど、やっぱりGoogle日本語入力の雑に変換させてもいい感じに変換してくれるのがほしかったりするので、SKK Serverを立ててGoogle IME連携をしたいよねみたいな話らしい。
今からSKKを始めるなら何がいいのか良くわからなかったが、Rust製で作り直されたyaskkserv2を使い始めるのがよさそうな気もしたが起動までの手順が多くて、少し面倒だなと思ってたところRuby製のgoogle-ime-skkというgemがあることを知り、こちらのほうが手軽に始められそうだったので使ってみることにした。10年以上前に開発されたっぽいのとメンテナンスもされてなさそうだけどSKK使い続けるかわからないし、とりあえず動けばいいかなということで。(動かなかったりしたら素直にyaskkserv2を使おうと思う)
ruby -v
ruby 3.4.2 (2025-02-15 revision d2930f8e7a) +PRISM [arm64-darwin23]
gem install google-ime-skk
Fetching google-ime-skk-1.4.0.gem
Successfully installed google-ime-skk-1.4.0
1 gem installed
インストールできたら以下のコマンドでSKK Serverを起動できるっぽい
google-ime-skk
上記のzennの記事ではSKK Serverの起動を自動化するのにmacのAutomatorワークフローを紹介していた。
最新のRubyのバージョンでやったらできてなさそうだったのでRubyのバージョンを下げてやったらできたっぽい。
ruby -v
ruby 2.6.10p210 (2022-04-12 revision 67958) [arm64-darwin23]
正直、SKKサーバーを起動してGoogle日本語入力と連携して雑に変換できるようにしないとSKK使える気がしない。逆にGoogle日本語入力があることでそこまでユーザー辞書登録を頻繁にしなくても入力できるようになった。これがないと毎回辞書登録になって正直慣れないと使い物にならない、気がした。
あとは、毎回フロントで実行するのもあれなので自動で毎回バックグラウンド実行してほしい。
いろいろ方法はありそうだがmacのAutomatorでシェルスクリプトを実行するのが一番楽そうだったのでそれを使う。
こちらが参考になった
- 普通にAutomatorを開く
- シェルスクリプトを実行で以下を記載
export PATH=$PATH:$HOME/.rbenv/shims
google-ime-skk
- Automatorでは実行環境を引き継がないらしいのでコマンドのPATHが見つからないとなってしまうので最初にPATHを通す必要がある
- Automator自体がバックグラウンドで実行されてそうなので普通に起動する
- アプリケーションとして作ってこれをログイン時の起動アプリとして登録する
一旦これで良さそうだけどgoogle-ime-skkが動かなくなったり、yaskkserv2のほうが速いとかになったらyaskkserv2に切り替えるかもしれない。

拡張ローマ字入力でAZIKというのがあってあわせて使ってる人が多いけどちょっと覚えるの大変そうだから一旦スルーで

絵文字対応
ぱっと調べたところ以下の2つの絵文字辞書がありそうなため追加する
cd ~/Library/Application\ Support/AquaSKK
curl -O https://raw.githubusercontent.com/uasi/skk-emoji-jisyo/master/SKK-JISYO.emoji.utf8
READMEに書いてあるとおりAquaSKKに辞書のパスを指定して手動で追加する
これ変換モード(▽)のときにsmile
みたいに入力すると😄に変換できるということだったのだけどそもそも変換モードのときにどうやって英字入力するのかがわからなくてめっちゃ調べてしまった
結果、/
を入力したときのモードでできた。
以下絵文字チートシート
こっちみたほうがいいな
例えば🙇なら/ bow
で変換できる
cd ~/Library/Application\ Support/AquaSKK
curl -O https://raw.githubusercontent.com/ymrl/SKK-JISYO.emoji-ja/master/SKK-JISYO.emoji-ja.utf8
こっちもAquaSKKに直接辞書追加するだけでいい

SKKについて知りたいことがあればニコニコのwiki見るのがはやそう

カスタムルール
上記の記事にあるようにカスタムルールを設定することで日本語入力を拡張することができる。
?と!が全角でだせないのと、- が日本語入力モードから出せないのをこのカスタムルールを設定することで解決したいのだがどうやって設定するのかがよくわからない、、
~/Library/Application Support/AquaSKK
配下にたぶん.rule
ファイルを作成することでAquaSKKの環境設定からカスタムルールを追加できそう
とりあえず、以下を設定
###
### custom-symbols.rule
###
!,!,!,!
?,?,?,?
#~,?,?,~
(,(,(,(
),),),)
z-,-,-,-
とりあえず、!と?をひらがなモードのときは全角にするのと半角ハイフンはよく使うのでz-
で出せるようにした。~
も全角にしたかったが文字コードの関係で文字化けするのを直せなかったので一旦なしで。このファイルの文字コードはEUC-JPで保存する必要があるらしいので注意。
あと、SKK日本語入力FEP互換の記号入力という拡張設定も有効にした。これは地味に【】このかっこを使う機会があるのでz(
,z)
でだせるようにしたかったから。

Ctl + J問題
terminalでCtl + Jでかなモードにしようとすると改行も実行されてしまう。
これはkittyでは起こらなかったがterminalをghosttyにしたら起こるようになってしまった。
後述するlによる英数モードへの切り替えもterminal上で実行しようとするともれなくlが入力されてしまう問題もあり、以下の記事のようにみんな遭遇する問題らしい。
解決策
ghosttyの設定でCtl + Jをunbindにした
keybind = ctrl+j=ignore

Terminalでの英数モード切替問題
前述の通り英数モードにterminalで切替をするとlも入力されてしまう問題。
これはAquaSKKのkeybindを変更することで対応。
SwitchToAscii ctrl::shift::l
これでいいかと思ったら今度はkeycodeみたいなのが出力されるようになってしまったのでしょうが無いのでghostty側にも設定を追加する
keybind = ctrl+shift+l=ignore
ちょっと微妙な気もしてるけど一旦これで解決した
もともとctl + spaceでIME切替していたのでCtl + spaceで英数モードに切り替えられるようにした
SwitchToAscii ctrl::hex::0x20