Asus ZenBook3 の US キーボードを便利に使う AutoHotKey スクリプトを試行錯誤しているがうまく行かず…
英字配列の Asus ZenBook3 を便利に使いたくて、久々に AutoHotKey スクリプトをイジり始めたが、色々難儀でうまく行かず…。
目次
fn
キーのキーコードがない
ZenBook3 には Delete キーがあるものの、少し小さくて使いづらいので、Mac における fn + Delete
のように、fn + BackSpace
が Delete キーの動作をしたら使いやすくなるかな?と思った。
そこで AutoHotKey や Keymill でキーコードを調べてみたが、fn
キー自体のキーコードが特定できなかった。fn + RCtrl
で AppsKey
が直接押下されたことになっていたりと、ドライバ側でうまいことやっている様子。
何か fn
キー自体のイベントを特定する方法があったら教えてほしい。
Alt 長押しで IME を切り替えたいが通常の押下時はコンビネーションも効くようにしたい
IME 切替は Ctrl + Space
でやっているのだが、キーピッチが少し広めの ZenBook3 だとコレが少々面倒臭い。
そこで「Alt キーを長押しした時に Ctrl + Space
を送るが、通常の場合は Alt キー標準の動作をさせる」というスクリプトを作ろうと思ったのだが、「通常の Alt キーの動作 = Alt + Tab
などコンビネーションでの押下」をうまく残すことができなかった。
一応途中まで書いたのは以下のとおり。
; 常にフックを使う
#UseHook On
; LAlt を0.2秒長押しで Ctrl + Space (IME 切替) にする
LAlt::
KeyWait, LAlt, T0.2
If(ErrorLevel) {
Send, ^{Space}
KeyWait, LAlt
Return
}
Send, {LAlt}
Return
; RAlt を0.2秒長押しで Ctrl + Space (IME 切替) にする
RAlt::
KeyWait, RAlt, T0.2
If(ErrorLevel) {
Send, ^{Space}
KeyWait, RAlt
Return
}
Send, {RAlt}
Return
コレで「長押しで Ctrl + Space
、それ以外は Alt
」までは実現できている。LAlt
と RAlt
は別々に用意しないと動かなかった (Alt
でまとめては書けなかった)。
2018-06-07 追記 : alt-ime-ahk が優秀だったので、コチラを使うことにした。
同様に、右 Ctrl 長押しでアプリケーションキーにするが、それ以外の時は通常の右 Ctrl キーとして使うという動きも考えたが、コチラもコンビネーション入力がうまく認識されず…。
; RCtrl を0.5秒長押しでアプリケーションキーにする
RCtrl::
KeyWait, RCtrl, T0.5
If(ErrorLevel) {
Send, {AppsKey}
KeyWait, RCtrl
Return
}
Send, {RCtrl}
Return
その他…
あとは使用頻度が低く、コンビネーションでの利用がない CapsLock
キーを Ctrl + Space
(IME 切替) に当てるか、とか考えたのだが、あまりに標準外なキーバインドにすると普通のマシンが触れなくなるので、「Windows で Mac 標準風なバインドを少し取り入れる」程度に留めたい。そういう思いもあって、Alt 単独あたりでお茶を濁そうとしていたのだが、うまく行かず…。
うまいやり方があれば教えてください。