Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

かなカナ切り替えのキーバインドが持つ機能を分割する #287

Open
s3igo opened this issue Jan 14, 2025 · 6 comments
Open
Labels
enhancement New feature or request

Comments

@s3igo
Copy link

s3igo commented Jan 14, 2025

現在、デフォルトでQにバインドされるかなカナ切り替え

  • かな⇔カナ間のモード切り替え
  • 未確定テキストをかな⇔カナ変換して確定

の2つの異なる機能を持つものと認識しています。

この機能を分割し、別々にキーバインドを指定できるようにしていただけるとありがたいです。

@mtgto mtgto added the enhancement New feature or request label Jan 14, 2025
@mtgto
Copy link
Owner

mtgto commented Jan 15, 2025

要望ありがとうございます。検討しますが修正箇所が多いためそれなりに時間かかりそうです。

メモ: 現状のキーバインドはあるキーを複数のキーバインドに割り当てることはできない。
(qキーをモード切り替えと確定処理の両方に割り当てできない)

→ 今の入力状態 (IMEState) をキーバインドの条件に入れればいけるか考える
今の未確定文字列の入力状態が未入力ならモード切り替え、入力中ならかな確定に割り当てができる、と思う

@s3igo
Copy link
Author

s3igo commented Jan 15, 2025

なるほど、キーバインドが入力状態に依存するようになると設定UIなども影響範囲に入ってしまうかもですね。

このIssueに係る私の意図を説明します。

背景

Macの標準IMEに

  • ^J: ひらがなに変換
  • ^K: カタカナに変換
  • ^L: 全角英字に変換
  • ^;: 半角英字に変換

というキーボードショートカットがあり1、これらをmacSKKに持ち込みたいというモチベーションがありました。

現在の個人的なワークフローと設定、その問題点

背景で説明したショートカットを実現するためmacSKKを設定しています。

私はひらがなモードのみを利用することを好むためカタカナモードを使用しません。
なので、ひらがなに変換(して確定)のキーバインドはEnterアクションに^Jキーを割り当てることで実現しました。
しかし、カタカナに変換(して確定)のキーバインドについて、かなカナ切り替えアクションに^Kを割り当てると未確定テキストがある状態では期待通りに動作するものの、未確定テキストが無い状態ではmacSKKがカタカナモードに移行しようとする振舞いと「挿入ポイントから、行または段落の末尾までの範囲にあるテキストを削除する2」振舞いが干渉してしまうという問題が発生していました。

結論

上述の問題を解消するため、そして未確定テキストがある状態の「未確定テキストをかな⇔カナ変換して確定」と未確定テキストが無い状態の「かな⇔カナ間のモード切り替え」は異なる目的を持つ分割すべき機能に見えたためこのIssueを投稿しました。

しかし、私の要望を実現するだけであれば以下の2つの方法が考えられます。

  1. 表題通り「かなカナ切り替えのキーバインドが持つ機能を分割」する
  2. [must]新たにカタカナに変換して確定するキーバインドを追加する。[optional]同様にひらがな、全角英字、半角英字へ変換して確定するキーバインドを追加する。

私の実現したいことを素直に実装するのは2.ですが、

1.について

  • これが実装されれば他のキーバインドの設定でも柔軟性を得られること

2.について

  • 私と同じ要望を持つユースケースが未知数なこと
  • 一般的なSKKの実装に求める機能から乖離しているかもしれないと個人的に考えていること

これらの理由から、たとえ変更の影響範囲が大きくなったとしても1.を優先して検討していただくのが適切かと思います。もし設計や実装方針の兼ね合いで1.の方法を採るのが難しかったり、2.がSKKの機能として適切だとお考えだったりする場合は2.を検討していただけると嬉しいです。

Footnotes

  1. https://support.apple.com/ja-jp/guide/japanese-input-method/jpim10263/mac

  2. https://support.apple.com/ja-jp/102650#text

@mtgto
Copy link
Owner

mtgto commented Jan 16, 2025

Macの標準IMEに〜というキーボードショートカットがあり

なるほど、Macの標準IMEにそんな機能があったんですね、知りませんでした。
実装のしやすさでいうともしかすると2の 〜に変換して確定するキーバインド を追加するほうなのかもしれないなあと考えています (SKK流とか関係なくデフォルトにはMacの標準を割り当てるのが使い始めの人に嬉しいのでは? 的な考え)。
@s3igo さんの今の要望としてかなカナだけでよいのであれば1, 2どちらでもなんとかなりそうなのでかんがえてみます。

ちなみに2のoptionalにある「かな→英字」とか、かなキー2連打で英字→かな変換とかあってもいいなあと思ったりはしたんですが今のmacSKKはローマ字からひらがなに一度変わっちゃったらそれまでのローマ字を全部捨ててしまっているのでそれを持ったりする必要がありそうです。。。

@s3igo
Copy link
Author

s3igo commented Jan 16, 2025

そうですね、optionalなキーバインドは標準IMEとの一貫性を考慮して提案したものなので、実用的にはカタカナに変換して確定ひらがなに変換して確定の2つのアクションを追加していただければ私の要望は完璧に満たされます。

ただし、注意点として、標準IMEの振る舞いは〜に変換して確定ではなく〜に変換なんですよね。個人的には確定までしてくれた方が嬉しいし、SKK的な感覚でも同じだと思うのですが、標準IMEとの一貫性を重視するなら変換までに留めておくべきかもしれません。(そもそもSKKに標準IMEと同じ操作感を期待する人がいるかどうかは微妙なところですが…)

@mtgto
Copy link
Owner

mtgto commented Jan 25, 2025

表題通り「かなカナ切り替えのキーバインドが持つ機能を分割」する にして実装してみました。
実装自体はどちらもそう大変さは変わらないので将来要望が来たりしたら標準IME風の「確定せずかなカナだけ切り替える」も作ってもいいかもしれないです。

今回見送ったのは標準IMEのひらがなにするC-jはすでにSKKで使用しているためデフォルトに割り当てるべきキーが思いつかなかった、というのがあります。
デフォルトのキーバインドを持たない設定として作るのもありだったかもしれません。

@s3igo
Copy link
Author

s3igo commented Jan 26, 2025

了解しました!
実装ありがとうございます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants