一日一万行感謝のプログラミング

一日一万行感謝のプログラミング

ITエンジニアが書く普通のブログ

Windowsで自由にキーバインド変えるツールと設定について簡単に説明!

以前の投稿でLinux向けの記事を出していましたが、Windowsでも設定してみたら、ツールを使ってキーバインド変更できてしまってビックリしました。しかもすごい簡単!

ara1yu.hatenablog.com

準備

Keyhacのダウンロード

手順
Keyhac - Pythonによる柔軟なキーカスタマイズツール - craftware
https://sites.google.com/site/craftware/keyhac-ja

・インストール不要
・リンク先からZipをダウンロードして任意の場所に解凍

フォルダの中で次の2つを使います

keyhac/_config.py
      /keyhac.exe

まずデフォルトの設定ファイルの「_config.py」をコピーしてリネーム「config.py」
次に「keyhac.exe」をクリックして起動します!

※設定ファイルコピー前にkeyhac.exeを起動してしまったら、「config.py」作成後に再起動しましょう。

説明
keyhac.exeがアプリケーションですが、同じ階層にある「config.py」を優先して読み込むので今回はこの設定を活用するために、最初に「config.py」を作成しました!
勘の良い人は気づいたと思いますが、設定ファイルはPythonで記述します!Pythonの知識なくても数分の勉強でこの設定はかけると思います!

設定

設定の内容と理由は以前の記事へ(Linuxで自由自在にキーバインドを拡張する方法を試したら簡単だった - 一日一万行感謝のプログラミング)

キーマップ(キーバインド)だけ説明するとこんな感じです!
Linuxの設定と違うのはキーを

セミコロン + e → Up
セミコロン + d → Down
セミコロン + s → Left
セミコロン + f → Right
セミコロン + a → Home
セミコロン + g → End
セミコロン + h → BackSpace
セミコロン + j → Return(Enterキー)
セミコロン + k → Delete
セミコロン → セミコロン

記述

設定ファイルには元々様々な記述があるので下記の記述を加えることで実現していきます!

    keymap.defineModifier( "Semicolon", "User1" )
    keymap_global["O-Semicolon"] = "Semicolon"
    keymap_global["S-Semicolon"] = "S-Semicolon"

    keymap_global[ "O-LCtrl" ] = "Esc"
    keymap_global[ "U1-E" ] = "Up"
    keymap_global[ "U1-D" ] = "Down"
    keymap_global[ "U1-S" ] = "Left"
    keymap_global[ "U1-F" ] = "Right"
    keymap_global[ "U1-A" ] = "C-Left"
    keymap_global[ "U1-G" ] = "C-Right"
    keymap_global[ "U1-H" ] = "Back"
    keymap_global[ "U1-J" ] = "Enter"
    keymap_global[ "U1-K" ] = "Delete"
    keymap_global[ "U1-L" ] = "Delete"
解説
keymap.defineModifier( "Semicolon", "User1" )

これはセミコロンをモディファイヤーキー(Ctrlキーなど他のキーと組み合わせて使うための設定)にするための設定です。

    keymap_global["O-Semicolon"] = "Semicolon"
    keymap_global["S-Semicolon"] = "S-Semicolon"

モディファイヤーキーとして設定したセミコロンに本来のキーの役割を再定義します。
本来のセミコロンの役割が先の設定で失われているので
ワンショットモディファイヤ(モディファイヤキーを長押しせずに、軽く叩いた時の動作)の設定を施します。

keymap_global[ "U1-E" ] = "Up"

その後はワンショットモディファイヤキー(先に定義したUser1)を利用して各種設定を行います!これで完璧!

keymap_global[ "O-LCtrl" ] = "Esc"

ちなみにCtrlキーのワンショットをエスケープにする設定もいれてあります!これ便利!ですが、このEscは暴発しやすいので要注意です!

では、読んでくれてありがとうございました!
ブクマとSNSのシェアあると喜びます^^