1
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?

はじめてのアドベントカレンダーAdvent Calendar 2024

Day 6

【環境改善】NumLock・Insert・CapsLockの誤爆とはおさらば!Windowsキーボードカスタマイズ入門💻

Posted at

Windows ノートPCとデスクトップPCのキー配置を改善!レジストリエディタでキーボードをカスタマイズ

私はNext.Jstailwindcssを使用し、フロントエンド開発を行っている初心者です。現在、Windowsのパソコンを2台使用し、職場の昼休みはデスクトップpc、自宅では、ノートPCと使い分けております。
開発作業中、ノートpc、デスクトップPC、それぞれのキーボードの配置に関する問題に悩まされていました。ノートPCではBackspaceキーの右隣にあるNumLockキー、デスクトップPCではBackspaceキーの右隣にあるInsertキー、そして両方に共通してAキーの隣にあるCapsLockキーが問題でした。
タイピング中の誤操作でテンキーモードが切り替わったり、文字入力モードが切り替わったりと、作業の中断を余儀なくされていました。この問題を解決するため、レジストリエディタでキーボード配列をカスタマイズする方法を見つけ出しました。

目次

  1. はじめに
  2. レジストリエディタとは
  3. キー配列変更の仕組み
  4. スキャンコード一覧
  5. キーボードカスタマイズの目的
  6. カスタマイズ例
  7. トラブルシューティング
  8. まとめ

はじめに

PCのキーボード配置は機種によって異なり、特にノートPCとデスクトップPCでは大きな違いがあります。ノートPCでは省スペース設計のためNumLockキーがBackspaceキーの近くに配置され、デスクトップPCではInsertキーが同じ位置に配置されています。また、両方に共通してCapsLockキーがAキーの隣にあり、これらの配置は開発作業中の誤操作を引き起こしやすい状態となっています。
Windowsのレジストリエディタを使用すれば、これらの問題のあるキーの機能を変更し、より使いやすいキーボード配置を実現できます。本記事では、具体的な問題と解決方法について、実際のレジストリ設定を交えながら解説していきます。

レジストリエディタとは

基本説明

レジストリエディタ(regedit)は、Windowsに標準で搭載されている設定データベースを編集するためのツールです。システムやアプリケーションの設定情報が階層構造で保存されており、この中にキーボードの設定も含まれています。

注意事項

レジストリエディタの使用には以下の点に注意が必要です。

  • 管理者権限が必要
  • 誤った編集はシステムに重大な影響を与える可能性がある
  • 変更前にバックアップを取ることを推奨

起動方法

  1. Windowsキー + R を押して「ファイル名を指定して実行」を開く
  2. 「regedit」と入力
    regedit
    
  3. 「はい」をクリックして管理者権限を許可

image.png

キーボード設定の場所

キーボードの設定は以下の場所にあります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout

image.png

この場所にあるScancode Mapという値を編集することで、キーボードの配列をカスタマイズできます。

バックアップの取り方

  1. レジストリエディタのメニューから「ファイル」→「エクスポート」を選択
  2. 保存場所とファイル名を指定
  3. 「保存」を選んで保存

このバックアップファイルをダブルクリックすることで、設定を元に戻すことができます。

キー配列変更の仕組み

キー配列変更の仕組みを理解することで、より柔軟なカスタマイズや設定の安全性確認が可能になります。基本的な仕組みを見ていきましょう。

レジストリとキーマッピング

Windowsのレジストリには、OSの重要な設定が保存されています。キーボードの設定もその一つで、特にScancode Mapというレコードが重要な役割を果たします。

Scancode Mapの構造

Windowsでは、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard LayoutにあるScancode Mapという値を編集することで、キーボードの配列をカスタマイズできます。この値は、キーのスキャンコードをマッピングするためのバイナリデータです。

Scancode Mapが存在しない場合、右クリック⇒「新規」⇒「バイナリ値」から「Scancode Map」という名前で新規作成します。

Scancode Mapは以下の4つの部分で構成されています。

00 00 00 00 00 00 00 00  # 開始宣言(固定値:8バイト)
01 00 00 00              # 変更するキーの数を指定(ヘッダー、終了マーカーは含めない)
1D 00 3A 00              # キーマッピングの設定(リトルエンディアンで記入)
00 00 00 00              # 終了宣言(固定値:4バイト)

各部分の詳細を見ていきましょう。

  1. 開始宣言

    00 00 00 00 00 00 00 00  # すべてのScancode Map設定で固定
    
  2. キーの数指定

    01 00 00 00  # 例:1個のキーを変更する場合
    # 16進数で指定(リトルエンディアン形式)
    # 10個の場合:0A 00 00 00
    # 20個の場合:14 00 00 00
    
  3. キーマッピングの設定
    変更したい数だけ4バイトのデータが増えます。

    1D 00 3A 00  # 例:CapsLock → 左Ctrl
    # 前半2バイト:変更後のキーのコード
    # 後半2バイト:変更前のキーのコード
    
  4. 終了宣言

    00 00 00 00  # すべてのScancode Map設定で固定
    

スキャンコード一覧

キーボードカスタマイズで使用するスキャンコードを表形式でまとめました。設定時にはリトルエンディアンの値を使用します。

英数字キー

キー名 リトルエンディアン
0 0B 00
1 02 00
2 03 00
3 04 00
4 05 00
5 06 00
6 07 00
7 08 00
8 09 00
9 0A 00
A 1E 00
B 30 00
C 2E 00
D 20 00
E 12 00
F 21 00
G 22 00
H 23 00
I 17 00
J 24 00
K 25 00
L 26 00
M 32 00
N 31 00
O 18 00
P 19 00
Q 10 00
R 13 00
S 1F 00
T 14 00
U 16 00
V 2F 00
W 11 00
X 2D 00
Y 15 00
Z 2C 00

ファンクションキー

キー名 リトルエンディアン
F1 3B 00
F2 3C 00
F3 3D 00
F4 3E 00
F5 3F 00
F6 40 00
F7 41 00
F8 42 00
F9 43 00
F10 44 00
F11 57 00
F12 58 00
F13 64 00
F14 65 00
F15 66 00
F16 67 00
F17 68 00
F18 69 00
F19 6A 00
F20 6B 00
F21 6C 00
F22 6D 00
F23 6E 00
F24 76 00

制御キー

キー名 リトルエンディアン
Backspace 0E 00
CapsLock 3A 00
Enter 1C 00
Left Alt 38 00
Left Ctrl 1D 00
Left Shift 2A 00
Left Windows 5B E0
Right Alt 38 E0
Right Ctrl 1D E0
Right Shift 36 00
Right Windows 5C E0
Space 39 00
Tab 0F 00

特殊キー

キー名 リトルエンディアン
Delete 53 E0
End 4F E0
Home 47 E0
Insert 52 E0
NumLock 45 00
PageDown 51 E0
PageUp 49 E0
PrintScreen 37 E0
ScrollLock 46 00

日本語入力キー

キー名 リトルエンディアン
かな/カナ 70 00
変換 79 00
無変換 7B 00
全角/半角 29 00

注意点

  • スキャンコードは16進数で表されています
  • E0がついているキーは拡張キーを表します
  • キーマッピング時は必ずリトルエンディアンの値を使用してください
  • 重要なシステムキーの変更は避けることを推奨します

キーボードカスタマイズの目的

実際に変更する前に、再度キーボードカスタマイズの目的をまとめます。

解決したい問題点

  1. CapsLockキーの位置

    • タイピング中に誤ってCapsLockを押してしまう
    • 意図せず文字入力モードが切り替わり、コードの入力に支障が出る
  2. 機種別の問題

    • ノートPC:バックスペース右隣のNumLockキーの誤操作
    • デスクトップPC:バックスペース右隣のInsertキーの誤操作

改善方針

  1. 共通の改善

    • CapsLockキーをRight Ctrlキーとして使用
      (誤操作しても、何も入力されない)
    • 無変換キーをCapsLockキーとして使用
      (左親指で入力モードを切り替えられるため、便利)
    • Right CtrlキーをWindowsの無変換キーとして使用
      (残りのキーを割り当て)
  2. 機種別の改善

    • ノートPC:NumLockキーをBackspaceとして使用
      (誤操作でも文字削除ができる)
    • デスクトップPC:InsertキーをBackspaceとして使用
      (誤操作でも文字削除ができる)

カスタマイズ例

デスクトップPCの場合

00 00 00 00 00 00 00 00  # ヘッダー(固定値)
04 00 00 00              # マッピング数:4つ(ヘッダー、終了マーカーは含めない)
1D E0 3A 00              # CapsLockキー(3A 00)をRight Ctrlキー(1D E0)に変更
7B 00 1D E0              # Right Ctrlキー(1D E0)を無変換キー(7B 00)に変更
3A 00 7B 00              # 無変換キー(7B 00)をCapsLockキー(3A 00)に変更
0E 00 52 E0              # Insertキー(52 E0)をBackspaceキー(0E 00)に変更
00 00 00 00              # 終了マーカー(固定値)

実際の入力画面

上記では、説明のために改行していますが、実際には改行せずに続けて入力します。
スペースも不要で小文字で入力して構いません。自動で大文字に変換されます。

image.png

ノートPCの場合

00 00 00 00 00 00 00 00  # ヘッダー(固定値)
04 00 00 00              # マッピング数:4つ(ヘッダー、終了マーカーは含めない)
1D E0 3A 00              # CapsLockキー(3A 00)をRight Ctrlキー(1D E0)に変更
7B 00 1D E0              # Right Ctrlキー(1D E0)を無変換キー(7B 00)に変更
3A 00 7B 00              # 無変換キー(7B 00)をCapsLockキー(3A 00)に変更
0E 00 45 00              # NumLockキー(45 00)をBackspaceキー(0E 00)に変更
00 00 00 00              # 終了マーカー(固定値)

実際の入力画面

上記では、説明のために改行していますが、実際には改行せずに続けて入力します。
スペースも不要で小文字で入力して構いません。自動で大文字に変換されます。

image.png

トラブルシューティング

一般的な問題と解決方法

  1. 変更が反映されない場合

    • PCを再起動する(上記変更後、必ず再起動が必要です)
    • レジストリエディタを管理者権限で実行する
  2. キーが意図しない動作をする場合

    • スキャンコードが正しいか確認する
    • 既存のマッピングとの競合がないか確認する
  3. システムに問題が発生した場合

    • セーフモードで起動する
    • Scancode Mapを削除して元の設定に戻す

まとめ

レジストリエディタを使用したキーボードカスタマイズは、開発効率を向上させる強力なツールです。スキャンコードを適切に設定することで、CapsLockの入れ替えや、NumLockBackspaceとして使用するなど、自分の作業スタイルに合わせた最適な配置を実現できます。これらの変更は、システム全体に適用されるため、特別なソフトウェアを必要とせず、安定した環境を維持できます。

もし記事の内容に間違いがあれば、コメントでご指摘いただけますと幸いです。また、より良い方法や代替手段をご存知の方がいらっしゃいましたら、ぜひ共有していただければと存じます。例えば、他のキー配置のカスタマイズ例や、キーボード設定を管理する別のツールの使用経験など、皆様の知見をお聞かせいただければ幸いです。

1
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
1
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?