0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows Sandbox 起動時に IMEのキー配置を設定する

Last updated at Posted at 2024-08-14

Sandbox は Windows が持つマイナー機能の一つとしてあげられるのではないでしょうか?わりと便利なのですが Pro SKU以上でないと使えないのと使い捨て環境ということで活用される機会は少ないかもしれません。

Sandboxはいわゆる仮想マシンですが、ホストのWindowsイメージを共有するコンテナ環境です。従って、Hyper-VやVirtualBoxにWindowsをインストールするのとは異なりストレージやメモリーの利用効率の高い環境となっています。開発が中止された Windows X(だったと思う)などはこのコンテナを利用して安全なアプリケーション環境を提供しようとしていたと思います。GPU-PVも有効になっているので透過エフェクトなども有効です。とまぁ割と先進的な機能ではあるもののいかんせん使い道が少なくてマイナー機能になり下がっています。

Sandboxの近況

活用方法はそれぞれで考えていただくとして、Sandboxの近況です。

Windows11 24H2 (現在 Release Previewにて配布中)では一月ほど起動しない状況に陥っていましたが 24年8月13日配布のKB5041571にて修正されました。

そして、なんと日本語環境になりました。長らくSandboxは英語環境をデフォルトとして起動していました。言語パックを追加すれば日本語環境にも出来るのですが再起動を伴うのでわざわざ日本語環境に変えようという人は少なかったでしょう。

でも、24H2 からは日本語環境で使えるようです。

主題のカスタマイズ内容

さて、めでたく日本語環境になったのですが、個人的都合で少し改善したいところがあります。変換・無変換キーでIMEのon/offを切り替えたいのです。

私は、Microsoftが変換・無変換キーでのIME切替キャンペーンを行っていた際にこのキー配置を使うようになったのですが、この配置になれる意味で半角/全角キーを ESC に置き換えてしまいました。キーボードに半角/全角キーがないので、デフォルトのキー設定だとIMEの切り替えはマウス操作でしかできません。

Sandboxでも変換・無変換キーでIMEの切替が出来れば良いのですがデフォルト設定ではないので変更が必要です。幸い、Sandboxは起動時にコマンド実行できるので設定方法が分かれば自動実行できそうです。

IMEのキーバインド

IMEのキーバインド変更は「設定」アプリを使って行うのが基本ですが、調べてみると設定値はレジストリに保存されているようです。従って、レジストリを書きかえれば変更できそうです。
HKCU:Software\Microsoft\IME\15.0\IMEJP\MSIME キーの中に以下3つの DWARD値がありました

HKCU:Software\Microsoft\IME\15.0\IMEJP\MSIME
  IsKeyAssignmentEnabled: 1
  KeyAssignmentHenkan: 0
  KeyAssignmentMuhenkan: 1

これを設定すれば良さそうです。が、変換・無変換キーが無視されているようです。キーボードが 101配列になっていて、キーが存在しないのかもしれません。

キーボード変更

そこで、キーボードも106に置き換えてしまいます。

HKLM:SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
LayerDriver JPN: kbd106.dll
OverrideKeyboardIdentifier: PCAT_106KEY

設定はこのあたりのようです。

PowerShellを使ったレジストリ変更

PowerShellを使って設定するとこんな感じでしょう。

New-ItemProperty -LiteralPath 'HKCU:Software\Microsoft\IME\15.0\IMEJP\MSIME' -Name 'IsKeyAssignmentEnabled' -PropertyType 'DWord' -Value 1
New-ItemProperty -LiteralPath 'HKCU:Software\Microsoft\IME\15.0\IMEJP\MSIME' -Name 'KeyAssignmentHenkan'    -PropertyType 'DWord' -Value 0
New-ItemProperty -LiteralPath 'HKCU:Software\Microsoft\IME\15.0\IMEJP\MSIME' -Name 'KeyAssignmentMuhenkan'  -PropertyType 'DWord' -Value 1
New-ItemProperty -LiteralPath 'HKLM:SYSTEM\CurrentControlSet\Services\i8042prt\Parameters' -Name 'LayerDriver JPN' -PropertyType 'String' -Value 'kbd106.dll'
New-ItemProperty -LiteralPath 'HKLM:SYSTEM\CurrentControlSet\Services\i8042prt\Parameters' -Name 'OverrideKeyboardIdentifier' -PropertyType 'String' -Value 'PCAT_106KEY'

まとめ

さて、うまく反映できそうなので構成ファイルに組み込みます。構成ファイルの<LogonCommand>に記載します。構成ファイルについてはマイクロソフトのドキュメントを参照してください。

レジストリ変更から実際に反映されるまで数十秒程度のラグがあるようですが、起動後変換・無変換キーが使えるようになりました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?