gpt4 book ai didi

keyboard - 我可以让这个 AutoHotKey qwerty-half 键盘脚本在大写锁定状态下工作吗?

转载 作者:行者123 更新时间:2023-12-02 19:27:04 24 4
gpt4 key购买 nike

我在 https://autohotkey.com/board/topic/1257-half-qwerty-one-handed-typing/ 找到了这个脚本

此脚本的作用是将空格键重新映射为修饰符。当按住 space 时,键盘会反转,对称线位于 g 和 h 之间。因此,e 将变为 i,b 将变为 n,p 将变为 q,依此类推。如果在没有按任何其他键的情况下按下并释放空格键,则会发送一个空格。 Shift 或 Control 等修饰键可与 Half-qwerty 结合使用。

问题是,当大写锁定打开时,它不适用于大写字母。

任何帮助都会很棒!

;QWERTY half-keyboard emulator

mirror_1 = 0
mirror_2 = 9
mirror_3 = 8
mirror_4 = 7
mirror_5 = 6
mirror_q = p
mirror_w = o
mirror_e = i
mirror_r = u
mirror_t = y
mirror_a = `;
mirror_s = l
mirror_d = k
mirror_f = j
mirror_g = h
mirror_z = /
mirror_x = .
mirror_c = ,
mirror_v = m
mirror_b = n
mirror_6 = 5
mirror_7 = 4
mirror_8 = 3
mirror_9 = 2
mirror_0 = 1
mirror_y = t
mirror_u = r
mirror_i = e
mirror_o = w
mirror_p = q
mirror_h = g
mirror_j = f
mirror_k = d
mirror_l = s
mirror_n = b
mirror_m = v


;This key may help, as the space-on-up may get annoying, especially if you type fast.
Control & Space::Suspend

;These keys are optional, but they may help if you are typing on the left-hand side.

CapsLock::Send, {BackSpace}
+Capslock::Capslock
;Capslock is backspace and Shift+Capslock works for Capslock.

Space & `::Send, {-}

Space & CapsLock::Send, {Enter}

If spacebar didn't modify anything, send a real space keystroke upon release.
space::
Send {space}
return

space & 1::
space & 2::
space & 3::
space & 4::
space & 5::
space & q::
space & w::
space & e::
space & r::
space & t::
space & a::
space & s::
space & d::
space & f::
space & g::
space & z::
space & x::
space & c::
space & v::
space & b::
space & `;::
space & ,::
space & .::
space & /::
space & 6::
space & 7::
space & 8::
space & 9::
space & 0::
space & y::
space & u::
space & i::
space & o::
space & p::
space & h::
space & j::
space & k::
space & l::
space & n::
space & m::
;Determine the mirror key, if there is one:
if A_ThisHotkey = space & `;
MirrorKey = a
else if A_ThisHotkey = space & ,
MirrorKey = c
else if A_ThisHotkey = space & .
MirrorKey = x
else if A_ThisHotkey = space & /
MirrorKey = z
else ; To avoid runtime errors due to invalid var names, do this part last.
{
StringRight, ThisKey, A_ThisHotkey, 1
StringTrimRight, MirrorKey, mirror_%ThisKey%, 0 ; Retrieve "array" element.
if MirrorKey = ; No mirror, script probably needs adjustment.
return
}


Modifiers =
GetKeyState, state1, LWin
GetKeyState, state2, RWin
state = %state1%%state2%
if state <> UU ; At least one Windows key is down.
Modifiers = %Modifiers%#
GetKeyState, state1, Control
if state1 = D
Modifiers = %Modifiers%^
GetKeyState, state1, Alt
if state1 = D
Modifiers = %Modifiers%!
GetKeyState, state1, Shift
if state1 = D
Modifiers = %Modifiers%+
Send %Modifiers%{%MirrorKey%}
return

请注意,AutoHotKey 变量名称不区分大小写。

最佳答案

; Associative array that mirrors the left and right side of the keyboard.
keyA := {"1" : "0"
,"2" : "9"
,"3" : "8"
,"4" : "7"
,"5" : "6"
,"q" : "p"
,"w" : "o"
,"e" : "i"
,"r" : "u"
,"t" : "y"
,"a" : ";"
,"s" : "l"
,"d" : "k"
,"f" : "j"
,"g" : "h"
,"z" : "/"
,"x" : "."
,"c" : ","
,"v" : "m"
,"b" : "n"
,"0" : "1"
,"9" : "2"
,"8" : "3"
,"7" : "4"
,"6" : "5"
,"p" : "q"
,"o" : "w"
,"i" : "e"
,"u" : "r"
,"y" : "t"
,";" : "a"
,"l" : "s"
,"k" : "d"
,"j" : "f"
,"h" : "g"
,"/" : "z"
,"." : "x"
,"," : "c"
,"m" : "v"
,"n" : "b"}

; Make Hotkeys
for index, value in keyA
Hotkey, % "$*" index, FlipFlop, On
return

; Disables space from being sent if it's held down for more than 300ms
$*Space::
KeyWait, Space, T0.3
if (ErrorLevel = 1)
KeyWait, Space
Else
Send, {Space}
return

; Removes the hook and wildcard modifiers
FlipFlop:
StringReplace, hk, A_ThisHotkey, % "$*"
; If space is held
if GetKeyState("Space", "P")
; Send the mirror of the keys along with any held modifiers
Send, % "{Blind}" keyA[hk]
Else
; Send the actual key pressed along with modifiers
Send, % "{Blind}" hk
return

关于keyboard - 我可以让这个 AutoHotKey qwerty-half 键盘脚本在大写锁定状态下工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44169632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com