WinRemap v0.8.0 — IME がオンかどうかが、マウスカーソルの色で分かります
見えていなかった 2 つの状態に手を当てた版です。IME がオンかどうかと、起動時と終了時に何が起きたか。
新機能
-
IME がオンの間、マウスカーソルに色が付きます
[ime_indicator]にchange_cursor_color = trueを書くと、矢印カーソルと文字入力の I ビームがcursor_color(既定#0078d4)の色と白い縁で描かれます。- 「あ」パネル(
enabled)とは独立しています。パネルを出さずにカーソルだけ使えます。一瞬光って消えるパネルと違い、見たいときにいつでも確かめられます - お使いのカーソルのテーマやサイズはそのままです。形を差し替えるのではなく着色しています
- 白い縁は飾りではありません。
#0078d4は置き換える白の 37% の明るさしかなく、色だけでは暗いアプリで見失います。明るさが正反対の 2 色にすることで、背景が明るくても暗くてもどちらかが必ず立ちます - 既定は無効です。 これは WinRemap のウィンドウの中だけでなく、セッション全体のカーソルを変える設定だからです。そこから 1 つ知っておいていただきたいことがあります — カーソルに色が付いたままで、トレイに WinRemap が居ない場合、それは WinRemap が強制終了させられたということです。 色が付くのは IME がオンのときだけなので、残った色を通常の状態と見間違えることはありません。直す操作は要りません。もう一度起動すれば戻ります(サインアウトして入り直しても戻ります)
- 管理者権限のウィンドウが前面のあいだは追随しません。 リマップが効かないのと同じ理由です(UIPI)— IME の状態は相手ウィンドウへのメッセージ送信で読むため、昇格した窓の向こうは見えません
- 「あ」パネル(
-
--debugが専用のコンソールウィンドウを開きます
これまではログを起動元のターミナルに書いていたため、シェルのプロンプトと重なって読めませんでした。ログウィンドウのほうは起動後にしか開けないので、起動時のログは追えませんでした。- 起動の 1 行目から出ます。 「WinRemap v0.8.0 を起動しました」から全部読めます
- WinRemap が終了したあとも窓が残ります。 終了時のログも読めます。読み終わったら窓を閉じるか Enter を押してください
- 動作中にこの窓を閉じると WinRemap も終了します(このオプションはそういう用途のものです)。起動元のターミナルのほうは閉じても構いません
- 出力をリダイレクトした場合は窓を開かずファイルへ書きます。ただしどちらのシェルの
>でも受け取れません —Start-Process winremap.exe -ArgumentList '--debug' -RedirectStandardOutput log.txtをお使いください(Git Bash の>でも受け取れます) --helpと--versionは従来どおり起動元のターミナルへ出力します
既知の問題
- 色付きの I ビームが、まれにまったく描かれなくなることがあります。 色が消えるのではなく、何も描かれません。矢印のほうは正常で、パネルも出ますが、IME を切り替えても戻りません — WinRemap を起動し直すと戻ります。受け入れテストで 1 台の機械に 3 回起きましたが、狙って再現できたことは一度もなく、原因は未特定です。
--debugはカーソルの差し替えを毎回記録するので、遭遇された場合はそのログを添えて報告いただけると助かります。なおこの設定は既定で無効です
インストール
- Microsoft Store: https://apps.microsoft.com/detail/9N6TQDXRX5WV (警告なし・自動更新)
- winget:
winget install DaikiSuganuma.WinRemap(0.8.0 のマニフェストは公開後に提出します。それまでは 0.7.0 が入ります) - インストーラー:
winremap-setup.exe(管理者権限不要・ユーザー単位) - ポータブル:
winremap.exe(1 ファイル。設定は%APPDATA%\winremap\config.toml)
SmartScreen(「Windows によって PC が保護されました」)はGitHub から落としたファイルに出ます。署名なしのためです。詳細情報 → 実行で起動できます。下記の検証を推奨します。Store 版ではこの警告自体が出ません。
ダウンロードの検証
(Get-FileHash .\winremap-setup.exe -Algorithm SHA256).Hash.ToLower() # SHA256SUMS と照合
gh attestation verify .\winremap-setup.exe --repo DaikiSuganuma/winremap
公式の配布経路は Microsoft Store・winget・GitHub Releases の 3 つです。それ以外で配布されているバイナリは非公式です。
Full changelog: https://github.com/DaikiSuganuma/winremap/blob/v0.8.0/CHANGELOG.md
WinRemap v0.8.0 — The mouse cursor tells you the IME is on
Two things you could not see before. Whether the IME is on, and what happened at startup and shutdown.
New
-
The mouse cursor takes a colour while the IME is on.
Putchange_cursor_color = trueunder[ime_indicator]and the arrow and the text I-beam are drawn incursor_color(default#0078d4) with a white border.- It is independent of the 「あ」 panel (
enabled): you can have the cursor without the panel. Unlike a panel that flashes and is gone, it is there whenever you look - Your own cursor theme and size are kept. The shape is recoloured, not replaced
- The white border is not decoration.
#0078d4is only 37% as bright as the white it replaces, and the colour alone is lost on a dark application. Two colours at opposite ends of the brightness range mean one of them stands out whatever is underneath - Off by default, because this changes the cursor for the whole session, not just over WinRemap's own windows. That leads to one thing worth knowing: a coloured cursor with no WinRemap in the tray means WinRemap was killed. The colour only ever means "the IME is on", so a leftover cannot be mistaken for normal. Nothing to repair — start it again and the cursor comes back (so does signing out and back in)
- It cannot follow the IME while an elevated window is in front, for the same reason remapping cannot reach one (UIPI): the IME state is read by messaging the window in front, and a normal program cannot message an elevated one
- It is independent of the 「あ」 panel (
-
--debugopens a console window of its own.
The log used to go to the terminal you started from, where the shell's prompt repainted over it, and the log window can only be opened once startup is over — so the startup lines had already scrolled past.- It is there from the first line of startup.
- It stays after WinRemap exits, so the shutdown lines can be read instead of vanishing with the process. Close the window, or press Enter, when you are done
- Closing that window while WinRemap is running ends WinRemap — that is what the flag is for. The terminal you launched from is free to close
- Redirected output still goes to the destination and opens no window, but neither shell's
>can carry it — useStart-Process winremap.exe -ArgumentList '--debug' -RedirectStandardOutput log.txt(Git Bash's>works too) --helpand--versionstill print to the terminal you started from
Known issue
- Rarely, the tinted I-beam is not drawn at all. Not a cursor without its colour — nothing at all. The arrow is unaffected and the panel still appears, and toggling the IME does not bring it back — restarting WinRemap does. It happened three times on one machine during acceptance and has never reproduced on demand, so the cause is still open.
--debugrecords every cursor change, and a report with those lines in it is welcome. The setting is off by default.
Install
- Microsoft Store: https://apps.microsoft.com/detail/9N6TQDXRX5WV (no warnings, updates itself)
- winget:
winget install DaikiSuganuma.WinRemap(the 0.8.0 manifest is submitted after this release; until it lands you get 0.7.0) - Installer:
winremap-setup.exe(per-user, no admin rights needed) - Portable:
winremap.exe(one file; config lives in%APPDATA%\winremap\config.toml)
SmartScreen ("Windows protected your PC") appears for files downloaded from GitHub, because they are unsigned. More info → Run anyway starts it. Verifying your download is recommended. The Store build does not raise the warning at all.
Verify your download
(Get-FileHash .\winremap-setup.exe -Algorithm SHA256).Hash.ToLower() # compare with SHA256SUMS
gh attestation verify .\winremap-setup.exe --repo DaikiSuganuma/winremap
The official channels are Microsoft Store, winget and GitHub Releases. Binaries distributed anywhere else are unofficial.
Full changelog: https://github.com/DaikiSuganuma/winremap/blob/v0.8.0/CHANGELOG.md