窓使いの憂鬱を使いながら Warrock を起動するとキーボードがおかしくなる

再現性100%。
確実におかしくなります(´・ω・`)
Warrcok*1 と同時に起動する Xtrap っていうセキュリティ管理用のソフトが原因みたい。
WAR ROCK 9th SEASON | ウォーロック<公式サイト>
screenshot
ゲームを終了しても、窓使いの憂鬱を終了しない限りはずっとキーボードがおかしいので困る。
窓使いの憂鬱の代わりに XKeymacs に仕事をさせてもいいんだけど、XKeymacs はキーボードレイアウトを変更したら、それを反映させるのに PC を再起動しなくちゃいけないから面倒だ。
AutoHotKey でキーの配置をいじるスクリプトを書いてみようかなぁ。

追記

ahk-modeなんてのがあった!
早速導入(・∀・)

;;; ahk-mode の設定
(setq ahk-syntax-directory "C:/Program Files/AutoHotkey/Extras/Editors/Syntax")
(add-to-list 'auto-mode-alist '("\\.ahk$" . ahk-mode))
(autoload 'ahk-mode "ahk-mode")


そして AHKスクリプトをごにょごにょしてみる。
窓使いの憂鬱でできていた大体のことはできるようになった。
でも不満がないわけではない。
すごい書きかけだけど、とりあえず書いたスクリプトを貼っておこう。

#InstallKeybdHook [force]

;; $sc03A::Ctrl ; CapsLock > Ctrl
`;::Enter         ; セミコロン         > エンター
$^`;::Send, {`;}  ; Ctrl + セミコロン  > セミコロン
$+`;::Send, {`+}  ; Shift + セミコロン > プラス
$!`;::Send, !{`;} ; Alt + セミコロン   > Alt + セミコロン

vk1Csc079::Shift ; 変換   > Shift
vk1Dsc07B::Shift ; 無変換 > Shift

TAB::Alt   ; TAB   > Alt
Enter::Alt ; Enter > Alt

; 半角全角 > Alt + 半角全角
vkF3sc029::Send, !{vkF3sc029}
vkF4sc029::Send, !{vkF3sc029}
; カナ/かな > Alt + 半角全角
vkF2sc070::Send, !{vkF3sc029}
; Shift + Space > 半角全角
; ただし連続で押すとスペースになる
+Space::Send, !{vkF3sc029}

^i::Send, {TAB} ; Ctrl + i > TAB
; Ctrl + Shift + i > Shift + TAB
; ただし連続で押すと TAB になる
^+i::Send, +{TAB}

; Ctrl + @ > Alt + TAB
; うまくいってない
@::Send, {AltTab}

1行目の命令でタスクトレイにある AHK の常駐アイコンをダブルクリックしたあとに、「View > Key history and script info」から入力キーの確認ができる。
それでキーのアップ・ダウンを確認しながら実際に入力してみておかしいところがないかどうか調べてた。
おかしいところがあったら書き替えてから、常駐アイコンを右クリックして「Reload This Script」。
その繰り返し。
プログラムのデバッグ作業となんら変わりない。
なんら変わりないというかデバッグそのもの。
僕の考えとしては2つあって

  • 1つは、窓使いの憂鬱から AHK に完全に移行する。
    • これが理想。AHK の方が色々と応用が効くよう?だし。
  • もう1つは妥協案。窓使いの憂鬱AHK を使い分ける。
    • 現状不満があるのは Warrock をするときだけなので*2Warrock が起動したときに、窓使いの憂鬱を一旦終了して、代わりに AHK を使い、Warrock を終えたら窓使いの憂鬱を復活させる。というのを自動でやれたらいいなぁと思っている。がんばれば AHK だけでできると思う。

*1:韓国産のオンライン FPS。アクションが面白い。

*2:ってか Warrock の Xtrap が悪いので Warrock窓使いの憂鬱を弾かないようにしくれれば問題は解決する。でもたぶんそれは行われない気がするし、行われるとしてもいつになるか分からない。