ひよっこの備忘録

積み重ねて山となる

Anti Windows - JIS配列とUS配列が共存出来ない -

ーーーーーー あまり強い言葉を使うなよ。弱く見えるぞ。

本記事は、なんか布教したいエンジニア Advent Calendar 2019 の6日目の記事です。 軽い気持ちで始めたアドベントカレンダーですが、なんだかんだ書いてくれる人が居てとても嬉しいです。

概要

私は開発においてUS配列を好んで利用しています。 今日も、目の前にJIS配列のノートパソコンが出現したので、お気に入りのUS配列のキーボードをぶっ刺しました。 そして悲劇が始まる。

背景

現在、私の前には同じチームのメンバーが複数利用するJIS配列のノートパソコンが置いてあります。 何故かWindowsってやつは、個別のユーザーごとにキーボード配列を設定できないみたいなので、少しググって見る。 (この時点で Why??? って感じ)

調べてみると、どうやら皆はレジストリキーを弄って、接続したキーボードだけUS配列にしているらしい。 早速自分も試してみる。

……出来た!!!!

ちゃんとUS配列でキーボードが認識されている。 参考にした記事には、ノートパソコン側のJIS配列キーボードはJIS配列で認識されるとのことだったので、 早速@を入力してみたりする。が、どう見てもUS配列の入力になっている。 は???

Twitterでちょっと調べてみる。

どうやら、レジストリキーを利用したJIS配列とUS配列の共存は出来なくなってしまったらしい。

この瞬間、私はウィンドウズアンチになった。

環境

OS : Windows10 Home Ver: 1909

対策

対策1

脳がバグるけど、特別な事をしない方法。

もしも日本語配列キーボードと英語配列キーボードを併用する環境の場合は、別途「英語言語」を追加し、キーボードの入力方式を切り替えて使用するのがおすすめです。 USキーボードと日本語キーボードの切り替えは、【Windowsキー+Spaceキー】で行えます。

https://enjoypclife.net/2016/10/17/windows-10-us-keyboard-layout-japan-tips/

対策2

悩み続けた結果閃いた。 「レジストリを書き換えたらキーボード配列を変えられるなら、シェルで処理したらいいんじゃね?」

早速レジストリエディタを書き換えるシェルの作成に取り掛かろうとしたところ、 既に同じことを思ってプログラムを書いている人が居た!!! https://github.com/Takeru-chan/chgkbd/blob/master/README.md

この製作者の方には深い感謝を贈ります。

ちなみに、実行するのにいちいち 1. 管理者権限でPower Shellを立ち上げる 2. Power Shellでスクリプトを実行出来るように権限を変更する 3. スクリプトを実行する 4. 実行権限を戻す

みたいなことをやるのは結構面倒くさいと思います。 ※ 実行権限付与したままだとしても、いちいちPower Shellを立ち上げてプログラムを実行するのは面倒くさい ですので、まずはお借りしたスクリプトをどこかに設置して、ショートカットを下記の2つのパスで作成します。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File "スクリプトのパス" ja
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File "スクリプトのパス" en

作成したショートカットを任意の場所に置いて、必要な時に管理者権限で実行。 後は、Windowsを再起動すれば完了です!(※ ログオフでも良いという説もある) 便利!!!!!!

まとめ

でも、もう面倒くさいのでErgodoxを買うしかないのかなって思った。 https://qiita.com/moutend/items/dd3ac2b8cffd69809928

みんなも買おうErgodox!