sktdrkana – Mac Tahoe 26 の日本語入力のキーリマップソフト

Mac

sktdrkanaとは?

Mac Tahoe 26の日本語入力の切り替えは既定値では「Fn」キー単体、もしくは、「Control + Space」です。これを、Shift + Spaceで日本語入力を有効無効にする為のキーリマップツールです。

実装が限定的なので、全てのキーをサポートしていませんが、Shift+Space以外の組み合わせも設定可能です。リマップ後のキーは日本語入力の有効無効の既定値である「Control + Space」ですが、こちらも同様に変更できます。

ダウンロード

特設サイト kana.sktdr.com からダウンロード可能ですが、特設サイトに長々と書いてある通り無保証・自己責任を許容できる方のみ利用してください。
私のXcode初作で、ある程度気をつけてはいるものの、このソフトウェアを利用する攻撃の対策はおそらく不十分で、OSのキー入力にフックをかけるツールの性質上もセキュリティ上のリスクがあります。

動作画面

v0.3.0でマウスのスクロールの向きを逆にするオプション追加しました(トラックパッドのスクロールの向きはそのまま)

v0.4.0でキーリマップできる組み合わせの数を4x4x4にしました。A-Zや修飾キーも追加しました。
v0.4.1でキーイベントの検知(Mac OSから受け取り)してからの処理を効率化して消費電力削減になるようにしました。元々、CGEvent使ってキーイベントを検知させていて無駄なループ処理はなかったのですが、検知した後の処理は完全な線形処理で設定キー数が増えるほど処理時間が長くなる(1キーごとにこのsktdrkanaの内部処理が走る)のを効率化してます。理論上はO(n)の処理方式だったとおころ、O(1)ですが、実際は連想配列でのキャッシュヒットでv0.5で10個に増やしても処理時間の増え方がほとんど無視できるようになってます。

v0.5.0でキーリマップの組み合わせを4個から10個にしました。ver0.4.1の最適化も含みます。

v0.6.0で

・キーリマップを2入力2出力の1セットから、4入力4出力4セットできるよう機能追加
・キーリマップで変換できる入出力の組み合わせにA-Z全部追加

  • Enhanced key remapping configuration to support up to 4 concurrent mappings with 4 modifier+key pairs per mapping
  • Extended supported key range to include all alphabetic characters (A-Z) plus special keys (Space, Return, Delete, Escape)

MacのCommand+C, Command+Vのコピペが馴染みきれてないので、WindowsのようなControl+C, Control+Vでもできるようにするマッピングを設定したくなったので機能拡張しました。
Mac標準のキー設定がそのまま生きたままになるので、MacOSリセットしたりした際にあの設定どうすんやっけ、がないのが個人的に良い。

なお、作成者が普段emacs使ってるため、Control+Spaceの標準の日本語切り替えがブッキングするので、ここは、Mac自体の設定を変更して、Command+Spaceが日本語入力きりかえになるようにして、
このsktdrkanaでShift+SpaceをCommand+Spaceで出力するように修正しています。

Macのキーボードショートカット設定はこの記事の後ろの方「Mac tahoeのキーボードショートカットの設定場所」に書きました。

Control+Cをコピペ開始にする欠点はTerminlのキャンセルキー(プロセス停止するなど)とブッキングすることです。
このショートカットキーも結構使うので、とりあえず、私は上の写真のように「Control+Shift+C」が本来の「Control+C」になるようにしました。

sktdrkanaの良いところ(自画自賛)は既存のキーも有効にしたまま、sktdrkanaで設定するキーボードショートカットキーを有効にできるところですので、開発者の期待する使い方は私みたいな、設定です。
ver0.4.0より前はキー1入力ごとにキー1出力する仕組みでしたが、Ver0.4.0でキー4入力時に出力イベントを発生させる実装に変えましたので、入力と出力のキー数が一致しなくても良いようになってます。繰り返しですが、キーボードショートカットキーで入力されたキー自体は入力自体はされていますので、本当にキー入力変換したい場合はこのアプリではできないかも。この辺、私は必要としていないので、もし、挙動に関して知りたい場合はコメントください。

ver0.6.0の長押しメニューというのは以下の画像のようなやつです。設定を有効にした場合、アプリ(firefoxやclaude desktopなど)を再起動させてください。OSの環境変数的なものを有効にするだけですが、この環境変数はアプリの起動時に毎回読み込まれるもののようですので、Mac OSの再起動は不要です。sktdrkana自体は元々の文字入力させる場所がないので再起動不要ですが、再起動してももちろんよいです。

アクセシビリティ設定

この「sktdrkana」を選択すると「-」が押せるようになり、権限を剥奪できます。初回起動時はこのsktdrkanaの右側が無効になっているので、有効にしてもらうイメージです。

Mac tahoeのキーボードショートカットの設定場所

この設定を修正して私のようなショートカット変更するのが正しいと思いますが、結構頻繁にOS再インストールするタイプなので、OSの設定値はなるべく既定値を維持したいという。

上の写真の右側中央の「Keyboard Shortcuts」をクリックすると以下がひらき、

この「Select the previous input source」を既定値の「Control+Space」から「Command+Space」に変更しています。こうすることで、emacsの選択開始のショートカットキーとブッキングしなくなります。
ただし、Command+SpaceはMac既定値でSportlightのキーボードショートカットキーなので、私と同じくCommand+Spaceにする場合は左側メニューの少し下のSpotlightを以下のように無効化しておいてください。

ソースコード

このソースコードに自信がないので、安全性の検証用途のみに利用し、branchなどは作らないようお願いします。

GitHub - sktdr-chan/sktdrkana: Japanese toggle key remapper (for me, shift+space)
Japanese toggle key remapper (for me, shift+space) - sktdr-chan/sktdrkana

コメント

タイトルとURLをコピーしました