テキストカーソル(キャレット)にIME状態表示

これまでの問題 Dimeの大きな改善?で書いた通り、IMEの状態表示の理想はテキストカーソル(以下キャレット)のそばに状態を表示することです。その理由は、テキスト入力しているときの視線です。テキスト入力しているときは当然キャレットに注目しているので一番分かりやすい場所に表示されることになります。そこでWindowsの標準に加わったテキストカーソルインジケータを利用して、その色を変える機能をDIMEに追加しました。 表示に関しては申し分ないのですが、大きな欠点としては比較的多くのアプリケーションでテキストカーソルインジケータが表示されないという問題があり、この問題は表示されないということなので致命的な欠点となっています。なのでDIMEでは窓の色を変更したり窓枠の色を変えることをメインとしてテキストカーソルインジケータは補助的な機能に位置づけていました。

キャレット位置の取得

この問題は、キャレットの位置を取得できれば後は分かりやすい表示をするだけなので、キャレット位置をどれだけ取得できるかがポイントとなります。しかし、これまではキャレット位置の取得ができなかったので、この問題を解決することができませんでした。今回DIMEを5.0にバージョンアップするにあたり、改めてキャレット位置の取得方法を調査したところ、かなり多くのアプリケーションで位置を取得できることが分かったので、キャレット位置にIME状態を示すマークを表示する機能を追加しました。

テキストカーソルインジケーターとの比較

では、Windowsの標準機能のテキストカーソルインジケーターと比較してどの程度キャレット位置を取得できるようになったかを説明します。

(1)VSCode(マイクロソフト提供のエディタ)

テキストカーソルインジケーターは一応表示されますが正しい位置に表示されない、消えてしまうという問題があります。
DIMEの場合(点滅する赤い●を表示している)は正しい位置に表示されますし、キャレット位置を動かしても消えずに表示されています。

(2)さまざまなエディタ

①Notepad++

Notepad++では、そもそもカーソルインジケーターは動作しません。
DIMEでは正しく表示されます。

②サクラエディタ

サクラエディタでもカーソルインジケーターは動作しません。
DIMEでは正しく表示されます。

③TeraPad

TeraPadでもカーソルインジケーターは動作しません。
DIMEでは正しく表示されます。 どうやらDIMEは、ほとんどのエディタで正しく動作するようです。

(3)Excel

以前の記事ではOffice2016のExcelでテキストカーソルインジケーターの動作を確認しました。今回Office2021のExcelで確認したところ…
なぜかテキストカーソルインジケーターは表示されませんでした!? Office2016では表示されています。もしかすると私の環境の問題かもしれません。
DIMEでは正しく表示されます。

(4)Word

以前の記事ではOffice2016のWordでテキストカーソルインジケーターの動作を確認しました。今回Office2021のWordで確認したところ…
Wordでもなぜかテキストカーソルインジケーターは表示されませんでした!?
DIMEでは正しく表示されます。

(5)LibreWriter

以前の記事ではLibreOfficeのアプリケーションはテキストカーソルインジケーターが動作しませんでした。
今回も同じくテキストカーソルインジケータは表示されませんでした。
DIMEでは、入力いしている間は正しく表示されていますが、入力後カーソルを移動しても位置情報が変わらないために赤い●は取り残されています。

(6)Googleドキュメント

Googleドキュメントではカーソルインジケーターは動作しませんでした。
DIMEでは入力中は正しく表示されていますが、入力終了後は位置が取得できないために赤い●が消えてしまいます。この場合DIMEは従来の窓の色を変更することによりIMEの状態を知らせるようにしています。(最後に背景が青く表示されている)

まとめ

Windowsのテキストカーソルインジケーターの機能は一部のアプリケーションでは動作しますが、多くのエディタ、オフィスツール、ブラウザ上のツールでは動作しません。一方DIMEはテストしたものではほぼ正しく動作し、LibreOfficeとGoogleドキュメントで一部表示に問題が残っています。私もしばらくDIMEの赤い●の表示を使っていますが、窓の色全体を変更するよりは大げさではなく、しかも確実にIMEの状態を把握できるので満足しています。  

6件のコメント

  1. キャレット付近にマークが出るようになって、非常に使い勝手が良いです。
    結局この手のツールはキャレット付近に出るのが一番便利ですね。

    それで、実験的にマークを|にして擬似的にキャレット色が変わったかのように出来ないかやってみたのですが、キャレットより短くで微妙でした。サイズを16オフセットを-12にすることでそれっぽく出来ました。ただエディタによってオフセットが変わるため●にするべきかなと思っています。

    そこで4点要望なのですが、
    1,マーク、音声をIMEオフ時にも出るようにしたい。
    あえて付けられていないのかもしれませんが、オフ時には赤で太く
    オン時は緑で細くとやりたいのです。黒くても問題ないでしょといわれればそうなのですが、欲は出てしまうと言うことで。
    音声もオフ時も変えられれば嬉しいです。

    2,変換無変換のキーの設定時に変換キーで変換もやりたい
    現在、無変換にオフ、変換にオンを設定すると、常にそのモードになってしまいますが、スペースは常にスペースであってほしい(この辺はSandSの影響です)ため、かな入力時に変換キーで変換もやりたいです。もしくはほぼ使わないカタカナひらがなキーを変換に設定できるようにするか、IMEオンをカタカナひらがなキーに設定、変換キーは変換に使うというような設定が出来ると嬉しいです。
    ただ、変換キーをimeオンに占有させるのはもったいない気がするので日本語入力時に変換キーをおせば変換になるというのは合理的かなと個人的には思います。

    3,音声のリピートは回数を設定  or なくしたい。
    以前、音声の要望をDimeでしたときにホワイトノイズを力説しましたが、あまり長いファイルだと負荷がかかるため結局、短い任天堂スイッチの音でやったのですが、リピートされるのはちょっと困ります。次善の策として、鈴虫の音でリピートで我慢しています。
    なので出来ればリピート回数を設定できれば最も良く、難しいならオンオフを切り替えたときの一度なってくれれば、このソフトを使う人は恐らく変換無変換をオンオフに割り当てると思うので、変換無変換を押してみれば音が鳴るでも構わないのではと思っています。
    4,設定ファイルでコメントアウトが欲しい
    既にあったらすみません。使わない行を消していますが、コメントアウト出来れば、気が変わったときに前どういう設定してたっけ?を見ればわかるので。現在は次善策でバックアップファイルを作っています。

    よろしくお願いします。

    1. キャレット付近にマークを出すのが一番いいですね。
      ところが、キャレット位置を取得するのが中々ハードルが高いというのが、この手のツールの課題だったと思います。

      ご要望の件ですが
      1 IMEオフの時にも出るようにする
      有る|無し
      で2状態になるので、これまでの仕様にしていましたが
      有る1|有る2
      にすると、さらに分かりやすくなるというメリットがあるかもしれないです。
      実装はそれほど難しくないので次期バージョンで実現したいと思います。

      2 変換・無変換キー
      これは、azasuのShiftキーのように、チョンと押したときにはIMEの切り替えで、少し長く押すと本来の機能にするといった仕様が考えられます。
      このあたりは、実装できる・できないというより、キー操作をどのように組み立てるかという仕様の問題ですね。
      この仕様でよければ、これも将来取り入れようと思います。

      3 音声のリピート回数の指定
      私は音声を使っていないですが、ずっと音がなっているとうざったいだろうとは思っていました。
      一回だけ鳴らすというオプションが良いように思います。

      この仕様でよければ、これも将来取り入れようと思います。

      4 設定ファイルのコメントアウト
      これはぜひ取り入れたいです。
      次期バージョンで実装したいと思います。

      どれも有益なご提案、ありがとうございます。
      自分では思いつかないものばかりで助かります。

      1. >ところが、キャレット位置を取得するのが中々ハードルが高いというのが、この手のツールの課題だったと思います。

        Windowsがコロコロ方針を変える上に、作者のこだわりのあるエディタほど、キャレットは独自仕様実装、ということが老いでしょうから、ご苦労はいかばかりかと。VScode、notepad++に対応して頂いたのはとても嬉しいです。Mery何かは自前でキャレット変更じっそうされてますし。

        >1 IMEオフの時にも出るようにする
        >有る1|有る2

        すみません、ちょっとこれがどういう状態なのか想像が付きませんので、使ってみて意見があればまた述べさせて頂ければとおもいます。

        >2 変換・無変換キー
        >チョンと押したときにはIMEの切り替えで、少し長く押すと本>来の機能にするといった仕様が考えられます。

        これは、個人的には困るとおもいます。
        あるミリ秒を閾値として長押しで、動作を変えるというのはマウスでよく見られる機能かと思います(例えばブラウザで長押しにすると別タブで開くなど)
        振り返って
        かな漢字変換操作の場合、
        長押しで変換機能に、戻るのまでは良いのですが、恐らくそのまま長押しを続けると変換候補の次へ(第2候補)行ってしまったり、IMEによっては次のページに飛んでしまうというヒューマンエラーが起こるのではないかと考えられます。
        ですから、チョン押しと長押しの差を慣れるのと、長押しとそこから次の候補に行かない時間の慣れと、3段階の時間を意識するのは厳しいかなと思います。
        また、変換キー1つでIMEのオンオフをトグルに割り当ててる人には、そういった工夫が必要かと思いますが、変換にオン、無変換にオフを割り当てているのであれば、IMEオンの状態のママなので、かな文字入力中に変換キーの押し方を変える必要性を感じません。すでにIMEがオンの状態(という値がとれるのであれば)かつかな入力状態であれば、変換キーとして使う。
        文字を入力していない状態であれば、IMEオンのフラグを送るで問題ないような気がするのですが、いかがでしょうか?
        かな文字を入力していてかつ変換動作前というのがIMEによって判別がむつかしいということであれば、話は変わってくるのですが。
        この辺は実のところIMEの方で設定できる項目なので(ATOK、MS IME Google日本語入力では設定できるはず)IMEに巻かせても良いのかなとは思います。ATOKで今まさにその状態に設定していますので。

        1. 変換キーの件、私の理解が浅かったです。
          変換キー、現在の仕様であるIMEのオンに加えて、本来の変換キーの機能も保持するという仕様でよさそうですね。
          オプションで「元の機能も有効にする」といった設定をできるようにしようと思います。
          無変換キーも同じ設定ができるようにします。

      2. >3 音声のリピート回数の指定
        >私は音声を使っていないですが、ずっと音がなっているとう>ざったいだろうとは思っていました。
        ホワイトノイズを(雨音)を流してるときは丁度良かったのですが、調子に乗って20分くらいの音を流してしまったときに、オフにしても何分かは流れているという状態になって、これでは意味がないとなりました。短い雨音かつリピートで自然に繋がる音を作れば良いのですが。

        >一回だけ鳴らすというオプションが良いように思います。
        >この仕様でよければ、これも将来取り入れようと思います。
        はい、それで良いと思います。
        このソフトでトグルを使う人はいないという前提で書いてしまいますが、設定したキーを押したときは一回はなってほしいです。
        つまり、例えばIMEオフに無変換キーを設定していて、キーを連打したときは連打分なってほしいです。
        音で知りたいというのは、今の状態を知りたいという以上に自分がちゃんとタッチタイピング出来ているかという確認が大きいです。
        なので、オフキーを連打すればその分、その回数なってくれれば自分がきちんとそのキーを押せていると、それを知りたいのが一番の欲求です。
        考え事しながらだと画面をぼんやり注視していないときもありますのでキャレットやウインドウ枠に注目しなくてもわかるというメリットが一番欲しいところですので。

        >4 設定ファイルのコメントアウト
        >これはぜひ取り入れたいです。
        >次期バージョンで実装したいと思います。

        よろしくお願いします。

        1. 設定ファイルのコメントアウトですが…
          作っておきながら分かっていませんでしたが、iniファイルは、必要な情報しか読み取りにいかないので、有効な行以外はすべてコメントと同じになっていました。
          つまり行の先頭に「;」やら「#」やらなんでもいいので一文字追加すればコメントと同じになります。
          ドキュメントに追記するようにします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です