dingwen07
V2EX  ›  Windows

在 Windows 设置使用 Caps Lock 切换输入法中英文(PowerToys)

  •  
  •   dingwen07 · Jun 29, 2022 · 6495 views
    This topic created in 1444 days ago, the information mentioned may be changed or developed.

    本来是 macOS 下面的习惯,两个系统一起用人有点裂开。我想要实现 CapsLock 切换输入法语言,Shift+CapsLock 切换大小写锁定,方法是把 CapsLock 用“重新映射键”改成输入法里的切换中英文快捷键,然后用“重新映射快捷键”把 Shift+切换中英文快捷键(而不是 Shift+CapsLock )映射成 Shift+CapsLock 。

    img1

    img2

    因为一开始没有弄懂 PowerToys 的规则所以 Shift+CapsLock 一直实现不了。。。

    10 replies    2025-12-15 19:29:40 +08:00
    ByteCat
        1
    ByteCat  
       Jun 29, 2022
    AutoHotKey 两行搞定了

    ```
    #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn ; Enable warnings to assist with detecting common errors.
    SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.

    CapsLock::
    Send, #{Space}
    ```
    butanediol2d
        2
    butanediol2d  
       Jun 29, 2022
    @ByteCat #1 我之前也用过 AHK 解决这个问题,但是效果不是特别好,不知道跟你这个是不是一样。

    我现在直接用的 Rime ,把 capslock 设置为切换中英文了。
    wyf88
        3
    wyf88  
       Jun 30, 2022 via iPhone   ❤️ 12
    我的 AHK 命令,模拟 macOS ,短按 CapsLock 切换输入法,长按切换大小写
    ```
    CapsLock::
    KeyWait, CapsLock, T0.45
    if (ErrorLevel)
    SetCapsLockState, % (t:=!t) ? "On" : "Off"
    else
    Send ^{Space}
    KeyWait, CapsLock
    return
    ```
    F4NNIU
        4
    F4NNIU  
       Jun 30, 2022 via iPhone
    @wyf88 谢谢,捡到宝了。👍
    shi05275
        5
    shi05275  
       Jun 30, 2022
    @wyf88 学习了
    kid1412621
        6
    kid1412621  
       Jun 30, 2022 via Android
    powertoys 貌似没办法实现长按?
    workingonescape
        7
    workingonescape  
       Mar 3, 2023
    @wyf88 老哥牛逼,亲测有效
    HeraingBus
        8
    HeraingBus  
       Jul 1, 2023
    @wyf88 您可太强了
    zhangly7
        9
    zhangly7  
       Jun 11, 2025
    AHK v2 的实现

    CapsLock:: {
    static t := false
    result := KeyWait("CapsLock", "T0.45")
    if (!result) {
    t := !t
    SetCapsLockState(t ? "On" : "Off")
    } else {
    Send("^{Space}")
    KeyWait("CapsLock")
    }
    }
    honue
        10
    honue  
       Dec 15, 2025
    写了个切换的小工具,切换带悬浮窗显示,https://github.com/honue/TapCaps
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2974 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 05:22 · PVG 13:22 · LAX 22:22 · JFK 01:22
    ♥ Do have faith in what you're doing.