windows下将Ctrl+Tab映射到Alt+Tab实现切换程序的解决方案

731 阅读2分钟

背景:公司配备的电脑是windows平台,而我自己是用mac,两者键位上会有点区别,为了避免频繁切换平台带来的割裂感,我把键盘的ctrl、alt、和win键的位置进行了调整,并通过via设置了单个按键的映射,实现了windows的ctrl和mac的command键位置统一,放在空格键左边 0a6bf8aef95b59e715633eb5c2e82e05.jpg image.png 至此复制粘贴等键位终于统一了,可是切换窗口的快捷键并没有统一,mac下是command+tab,windows下是alt+tab,搜了下发现windows并不能直接修改alt+tab,那只能通过快捷键映射去实现了

方案一:windows官方的powerToys(不完美)

[下载链接:apps.microsoft.com/detail/xp89…]

下载完是这样的 image.png 点击重新映射快捷键 image.png 按步骤设置 image.png 点击确定后,验证是否生效

优点

简单,健壮

缺点

有时会失效,得打开powerToys窗口才能重新生效,苦于这个bug才另寻他路


方案二:AutoHotkey实现

[下载链接:www.autohotkey.com/]

  1. 下载v2版本 image.png

  2. 安装完打开是这样的(最好安装在默认的路径别去更改它) image.png 点击New Script创建新的脚本,输入文件名后点击Create image.png

  3. 创建完会自动打开文件夹 image.png

  4. 右键记事本打开(仅一次) image.png

  5. 粘贴如下代码

    ; ==== 将 alt+tab 切换窗口的能力赋予 ctrl+tab ====
    
    ~Ctrl & Tab::
    {
        ; 释放Ctrl键避免干扰
        Send "{Ctrl Up}"
    
        ; 检查Shift键状态,已实现反向切换
        if GetKeyState("Shift", "P") {  ; 如果Shift被物理按下
            Send "{Alt Down}{Shift Down}{Tab}"
            Send "{Shift Up}"
        } else {
            Send "{Alt Down}{Tab}"
        }
        return
    }
    
    ; 防止 Alt 被锁定
    ~Ctrl Up::
    {
        Send "{Alt Up}"
        return
    }
    

    image.png

  6. 保存后,双击运行

  7. 如果有更改,保存后重新双击运行一次(会提示说是否覆盖直接选是) image.png

如果发现改崩了或者出现什么异常,可以尝试用记事本打开脚本,清空代码后执行第7步,如果没法删除代码(键盘失效)可以锁屏再解锁,或者重启

优点

用AutoHotkey基本上比较稳定,目前还没发现什么bug,等我用一段时间再看看~

缺点

会覆盖ctrl+tab原本的功能(比如在浏览器下ctrl+tab是切换标签页)