Skip to content

karabiner: Cmd単押しの英数・かな送信にモード条件を付け、ATOKの2度押し再変換を防ぐ - #8

Merged
u-ichi merged 1 commit into
mainfrom
karabiner-atok-double-press
Oct 11, 2026
Merged

u-ichi merged 1 commit into
mainfrom
karabiner-atok-double-press

Conversation

@u-ichi

@u-ichi u-ichi commented Oct 11, 2026

Copy link
Copy Markdown
Owner

目的

ATOK使用時に、確定直後に左右Cmdを単押しすると直前の確定文字が再変換される問題を止める。

原因

ATOKの「英数キー・かなキーの2度押し機能」(環境設定 → 入力・変換 → 入力補助)が、Karabinerの「Cmd単押しで無条件に英数・かなキーを送る」規則と組み合わさり、すでにそのモードのままCmdを押すと2度押しと見なされていた。再変換はTSM Document Access対応の入力欄だけで起きるため、アプリによって症状が出たり出なかったりした。

変更

.config/karabiner/karabiner.json の Cmd単押し規則(rev 4)に input_source_unless 条件を追加。

  • 左Cmd単押し: input_mode_id が com.apple.inputmethod.Roman(ATOK英字モード)の時は japanese_eisuu を送らない
  • 右Cmd単押し: input_mode_id が com.apple.inputmethod.Japanese(ATOKひらがなモード)の時は japanese_kana を送らない
  • 条件に当たらない時は従来どおり送る(ABC配列、カタカナモードなどからの切り替えは変わらない)

ひらがな時の input_mode_id はKarabiner-EventViewerのVariablesで実測、英字側はATOK36の Info.plist の登録値。

確認

  • python3 -m json.tool でJSON構文を確認
  • ./install.sh karabiner で配置後、Karabinerのログに Load .../karabiner.json と core_configuration is updated が出てエラーなし(再起動後も同様)
  • 実打鍵で、確定直後のCmd単押しで再変換が起きないことを利用者が確認
  • ./lint.sh の失敗1件(tmux isolated tests の sidebar version)は変更前のmainでも同じで本変更と無関係

🤖 Generated with Claude Code

ATOKには「英数キー・かなキーを2度押すと直前の確定文字を再変換する」機能がある。
左右Cmd単押しで無条件に japanese_eisuu / japanese_kana を送っていたため、
すでにそのモードのままCmdを押すと2度押しと見なされ、確定済みの文字が再変換されていた。

- 左Cmd単押し: 入力モードが com.apple.inputmethod.Roman(ATOK英字)の時は英数キーを送らない
- 右Cmd単押し: 入力モードが com.apple.inputmethod.Japanese(ATOKひらがな)の時はかなキーを送らない
- それ以外は従来どおり送る

確認: `./install.sh karabiner` で配置後、Karabinerのログに Load と core_configuration is updated が出てエラーなし。
実打鍵で確定直後のCmd単押しによる再変換が起きないことを利用者が確認。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@u-ichi
u-ichi merged commit 3b6f8b8 into main Oct 11, 2026
1 check passed
@u-ichi
u-ichi deleted the karabiner-atok-double-press branch October 11, 2026 09:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant