2
3

More than 5 years have passed since last update.

AutoHotKeyでCtrl+Spaceを全角/半角切り替えを行う

Posted at

Windows10マシンでのUSキーボードで楽をしたい

通常のUSキーボードで日本語切り替えをする場合は、Alt+`(チルダ) の組合せをする必要がある。
当然面倒なので、やってられない。
(5年以上MacOSを使っていたため、AutoHotKeyの存在を知らなかった。)

MacOSでの日本語切り替えの方法

Command+Space

日本語切り替え方法を悩む

USキーボードの場合、Macキーボードと違い、Spaceキーの左右は、Altキーが存在する(Macキーボードでは、Spaceキーの左右は、coommandキーだ)。
そのため、Alt+Spaceを日本語切り替えにしようかと思って設定していたが、なぜか不便な感じがして止めた。
仕方なく、Ctrl+Spaceの組合せにしたのだが、今度はMacOSで日本語入力するときもCtrl+Spaceの組合せで切り替える癖がついてしまい、やる気をそがれてしまう。
複数(とは言え2種類)のOSを使い分けるのは骨が折れてしまう。

Ctrlキーとは?

当然Aキーの左側にありますよね?
キーボード備え付けのキーレイアウト(マクロ?)で入れ替えていると思います。

Caps2Ctrl.ahk
CapsLock::Ctrl
sc03a::Ctrl
#InstallKeybdHook
#UseHook

残念ながらAutoHotKeyでは入れ替えることが出来ませんでした。
(Ctrlキーが押しっぱなしになってしまい、使い物になりません)
英語キーボードを使っているのだが・・・。

参考URL

https://did2memo.net/2013/10/03/autohotkey-ctrl-key-is-stuck/
http://heavy.sblog.jp/?p=144
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1299757242

キーボード

学生時代からHappy Hacking Keyboard(以下HHKB)を使い続け、そのときはWindowsOSだった。
MacOSとの組合せは、6〜7年ほどしかないが、もう戻れない。
そのため、わざわざWindowsOS用にキーボードを買い増しした。
ここ数週間はNiZ(87キー)キーボードを使っているが、キーが軽くて気持ち悪さを覚えている。
今後もWindowsOSにあったキーボード探しの旅に出ると思う。
  HHKBは10年以上の友だ。
今日もAmazonからキーボードが届く。
※公式ページはどこだ?
 これ? https://www.nizkeyboard.com

実際の設定

AutoHotKey.ahk
#IfWinNotActive, Minecraft
    ^Space::Send, {vkF3sc029}   ; Ctrl+Spaceで"全角/半角"キー送信
    return
#IfWinNotActive

;;; Minecraftの起動 win + Alt + m
#!m::
    MinecraftGame := "D:¥game¥Minecraft¥MinecraftLauncher.exe"
    IfWinExist, Minecraft
    {
        sleep 500
        WinActivate
    }
    else
    {
        Run, %MinecraftGame%, , , varMinecraftPID
        WinActivate
    }
return

#IfWinActive Minecraft
b::SubMinecraftF3AndB() ; F3+b あたり判定表示の有無を切り替える.
PrintScreen::Send, {F2} ; Minecraft用のスクリーンショット
#IfWinActive

;   ■□■□■□■□■□■□ 以下,サブ関数 □■□■□■□■□■□■
SubMinecraftF3AndB()
{   ; bキー単独で動く.
;           F3+b あたり判定表示の有無を切り替える.
        Send, {F3 Down}b
        Sleep 100
        Send, {F3 Up}
}

AutoHotKeyなのに、Minecraftの話

Ctrl+Spaceを日本語切り替えにした場合、Minecraftのキーと競合する。
Minecraftゲームでは、Ctrlキーが走る。Spaceキーはジャンプ。
Ctrl+Spaceでは、走りながらジャンプする。これをすることにより、微妙に移動速度が上がる。
そのため、この組合せを殺すことが出来ない。
ゆえに、ゲームが起動しているときだけ、日本語切り替えを無効化するようにしている。
そのキーワードがIfWinNotActiveで、スペース後にゲームのタイトル名を付ければ、ゲーム起動時にはキーワードで囲まれたホットキーを無効化できるという訳だ。
設定時は、競合していることに気づかず、混乱していた。

ついでに、Minecraftゲームの起動設定

Win+Alt+mの組合せで、Minecraftゲームが起動するように設定した。

その後、ゲームのなかで、Mob(動物や敵など)を検知しやすくしたいので、デバッグ機能の一部に、F3+bの組合せにて、それが可能になるのだが、キーを押すのがめんどくさい。
そのため、bキー押下のみでそれが実現できるように設定している。
Minecraftを起動しているときにだけ動けば良いため、*.ahkファイルもそのように分けていた。
しかし、IfWinActiveは、どちらにせよ記述しなければまともに動いてくれなかったため、ファイルを分ける意味を見つけられなくなってしまった。
IfWinActiveを付けずにキーの組合せをした場合、F3だけが単独でゲーム側に送られる。これもCapsLockをCtrlに入れ替えられないのと同様に、解決方法を見つけられなかった。
Minecraft用に設定しているのは、これだけではないため、全容を・・・いずれGithubに公開しようと思っている。

リンク

[Windows10]US配列の入力切替を Ctrl + Space に変更して楽になった

Nizキーボードのカスタマイズ

いずれは参考にしたいリンク

IMEの状態をゲット出来るようになるまでのノンプログラマー的冒険
レジストリをちょさないでHHKBをWindowsで使う

2
3
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
2
3