VSCode編もあります

注意

日本語配列のキーボードを想定しています。

何を変更するのか

キーマップを以下のように変更します。

元のキー 変更後の機能
CapsLock Ctrl
Shift + Space BackSpace
無変換 全角・半角
変換 + H, J, K, L ←, ↓, ↑, →
変換 + N, M Home, End
変換 + A, Q (, )
変換 + S, W {, }
変換 + D, E [, ]
変換 + F, R _, :
変換 + G, T &, |
変換 + U, I =, -
変換 + Z %
変換 + X !
変換 + C '
変換 + V "
カタカナ・ひらがな Enter

ホームポジションのまま使用頻度の高い記号・操作を入力できるので、コーディングが爆速になります。 gg 1番目~11番目は特に便利です。もうこれ無しには戻れません。

みなさんも是非やってみてください。

Windowsの場合

1. CapsLock、無変換、カタカナ・ひらがなの変更

  1. Change Keyをダウンロードして解凍します。(7zipがないと解凍できないかもしれないです)
  2. 管理者権限で起動し、以下のように変更します。
    • 「CapsLock」を「Ctrl」
    • 「無変換」を「半角・全角」
    • 「カタカナ・ひらがな」を「Enter」

設定後にアプリは削除して構いません。

2. その他のキーマップを変更

  1. AutoHotKeyから、v1.1のほうをダウンロード・インストールします(v2.0では動作未確認)。
  2. 以下の内容のsettings.ahkファイルを作成します(ファイル名は任意)。
#InstallKeybdHook
#UseHook

;BackSpace
+Space::Send,{Blind}{BS}

;CursorKeys
vk1C & H::Send,{Blind}{Left}
vk1C & J::Send,{Blind}{Down}
vk1C & K::Send,{Blind}{Up}
vk1C & L::Send,{Blind}{Right}
vk1C & N::Send,{Blind}{Home}
vk1C & M::Send,{Blind}{End}

;SymbolKeys
vk1C & A::Send,{Blind}{(}
vk1C & S::Send,{Blind}{{}
vk1C & D::Send,{Blind}{[}
vk1C & F::Send,{Blind}{_}
vk1C & Q::Send,{Blind}{)}
vk1C & W::Send,{Blind}{}}
vk1C & E::Send,{Blind}{]}
vk1C & R::Send,{Blind}{:}

vk1C & Z::Send,{Blind}{asc 0037}
vk1C & X::Send,{Blind}{!}
vk1C & C::Send,{Blind}{'}
vk1C & V::Send,{Blind}{"}

vk1C & G::Send,{Blind}{&}
vk1C & T::Send,{Blind}{|}

vk1C & U::Send,{Blind}{=}
vk1C & I::Send,{Blind}{-}
  1. このファイルをC:/Users/{username}/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startupに保存します。 win + Rshell:startupと入力するとフォルダを開けます。

これで起動時に自動で設定ファイルが読み込まれます。

管理者権限のウィンドウで有効化したい場合

デフォルトでは管理者権限のウィンドウで使えないのですが、以下の手順でどのウィンドウでも使えるようになります。

  1. 作成したahkファイルをどこかに保存
  2. スタートアップフォルダにbatファイルもしくはショートカットを作る
  3. batファイル・ショートカットの内容を"C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe" <AHK_FILE_PATH> /uiAccessとする

参考: AutoHotkeyを管理者権限のウィンドウ上でも動かしたいけど管理者権限で動かしたくない場合

Ubuntuの場合

1. CapsLockをCtrlに変更

【Ubuntu】Caps LockをCtrlに変更

この記事を参考にしてCapsLockをCtrlに変更します。

2. 無変換、カタカナ・ひらがなの変更

ターミナルを開いて/usr/share/X11/xkb/symbols/inetを編集します。 事前にコピーしてバックアップをとっておいてください。

104〜111行目にこのような記述があります。

// Commented out because HZTG has same keycode as TLDE
//    key <HZTG>   {      [ Zenkaku_Hankaku       ]       };

    key <HKTG>   {      [ Hiragana_Katakana     ]       };
    key <HENK>   {      [ Henkan                ]       };
    key <MUHE>   {      [ Muhenkan              ]       };
    key <KATA>   {      [ Katakana              ]       };
    key <HIRA>   {      [ Hiragana              ]       };

これを以下のように変更します。

// Commented out because HZTG has same keycode as TLDE
//    key <HZTG>   {      [ Zenkaku_Hankaku       ]       };

    key <HKTG>   {      [ Return                ]       };
    key <HENK>   {      [ Henkan                ]       };
    key <MUHE>   {      [ Zenkaku_Hankaku       ]       };
    key <KATA>   {      [ Katakana              ]       };
    key <HIRA>   {      [ Hiragana              ]       };

3. その他のキーマップを変更

  1. xremapxremap-linux-x86_64-gnome.zipをダウンロードして解凍します(arm64の方はxremap-linux-aarch64-gnome.zipだと思います)。
  2. 以下の内容のsettings.ymlファイルを作ります(ファイル名は任意)。
keypress_delay_ms: 20

virtual_modifiers:
  - Henkan
keymap:
  - name: "Back Space"
    remap:
      Shift-Space: BackSpace

  - name: "Cursor Keys"
    remap:
      Henkan-H: Left
      Henkan-J: Down
      Henkan-K: Up
      Henkan-L: Right
      Henkan-N: Home
      Henkan-M: End

  - name: "Symbol Keys"
    remap:
      Henkan-A: KPLeftParen      # (
      Henkan-Q: KPRightParen     # )
      Henkan-S: Shift-RightBrace # {
      Henkan-W: Shift-BackSlash  # }
      Henkan-D: RightBrace       # [
      Henkan-E: BackSlash        # ]
      Henkan-F: Shift-Ro         # _
      Henkan-R: Apostrophe       # :
      Henkan-G: Shift-6          # &
      Henkan-T: Shift-Yen        # |

      Henkan-Z: Shift-5          # %
      Henkan-X: Shift-1          # !
      Henkan-C: Shift-7          # '
      Henkan-V: Shift-2          # "

      Henkan-U: KPEqual          # =
      Henkan-I: KPMinus          # -

xremapの仕様上、ファイルの内容と実際のキー出力が異なっています。

自分でカスタマイズしたい場合、evdev/scancodes.rsこのファイルのキー一覧からエスパーしてください。(KEY_1, KEY_ENTERなどのKEY_は設定ファイルでは省略できるようです)

  1. xremapsettings.ymlの2つのファイルをどこかに配置します(私は~/Startup/xremap/に配置)。
  2. 起動時に自動で読み込まれるよう、Ubuntuのサービスに登録します。 参考: systemdによるサービス作成(Ubuntu起動時処理)
  3. 以下の内容のxremap.serviceファイルをつくり、/etc/systemd/system/に配置します。 パスは適宜入力してください。
[Unit]
Description=xremap service
StartLimitIntervalSec=200
StartLimitBurst=10

[Service]
User=root
ExecStart={xremapのパス} {settings.ymlのパス}
ExecStop=/usr/bin/killall xremap
RestartSec=10

[Install]
WantedBy=default.target
  1. 以下のコマンドを実行してサービスを開始します。
sudo systemctl daemon-reload
sudo systemctl start xremap
sudo systemctl status xremap.service

この時点でキーマップは適用されているので試してみてください。

  1. 出力を見て成功していそうであれば、以下のコマンドでサービスを登録します。
sudo systemctl enable xremap