Windows优化配置
对于用惯了macOS的开发者来说,Windows还是有诸多不便,下面以Win11为例,进行一些舒适化的优化配置
快捷键映射
怎么让Windows 11的键盘快捷键输入尽可能符合macOS的使用习惯?我举个例,比如macOS上复制快捷键是Command + C,Windows上是Ctrl + C,但实际上Ctr l+ C的相对位置或者手势手感和macOS并不一致,反倒是Alt + C才和macOS的Command+ C一致。
有没有某种开源或闭源工具,让Windows的这些组合键转换或模拟成macOS的?
Kinto (最推荐:开箱即用的“复刻级”开源方案)
如果你希望零配置直接获得最完美的 macOS 键盘体验,Kinto 是首选。这是一个专门为了让 Windows 和 Linux 键盘映射完全符合 Mac 习惯而诞生的开源项目。
核心原理: 它的底层使用了 AutoHotkey (AHK),但在其之上做了一套非常完善的逻辑封装。
优势: * 它不仅把物理上的
Alt键映射成了功能上的Ctrl(让你按Alt+C就能复制)。- 它完美解决了快捷键冲突。如果你只是简单交换按键,Windows 经典的
Alt+Tab(切换应用)就会失效。Kinto 内部写好了规则,让你依然可以用大拇指+食指(物理上的Alt+Tab,相当于 Mac 的Command+Tab)来完美切换多任务。 - 支持终端(Terminal)环境的特殊判定,行为逻辑与 macOS 高度一致。
- 它完美解决了快捷键冲突。如果你只是简单交换按键,Windows 经典的
Kinto 的 GitHub 仓库地址是:rbreaves/kinto,其官方主页是:kinto.sh
安装过程
管理员身份打开PowerShell,然后执行:
1 | Set-ExecutionPolicy Bypass -Scope Process -Force |
第一行执行后会有红色的警告,这个不是错误,所以不影响,继续执行第二行安装命令即可:
1 | Set-ExecutionPolicy : Windows PowerShell 已成功更新你的执行策略,但在更具体的作业域中定义的策略覆盖了该设置。由于发生覆盖,你的外壳程序将保留其当前的有效执行策略 RemoteSigned。请键入“Get-ExecutionPolicy -Lis |
安装命令过程中要下载各种组件,所以最好是先保证好Shell的代理是正常科学的。
然后过程中需要让确认的地方,都是直接按Y回车,但是一旦出现选择键盘这一步,要注意了!
1 | You are detected as running Windows. |
这里有点误导,第一眼以为是我想要变成什么键盘,当时我就选了1,最后发现Win键映射成Apple的Command键了,这并不是我们想要的,实际上应该选2,是指的当前实际是Windows键盘,然后Alt键才会被映射成Apple的Command键,这才是我们想要的!
窗口快速居中
Windows11上有没有什么方案让窗口快速居中?有强迫症
AutoHotkey (最极客、零后台负担)
AutoHotkey (AHK) 绝对是你的首选。它是一个只有几兆大小的开源脚本引擎,完全不会在后台消耗资源。
你可以编写一个极简脚本,将其绑定为 Win + C(或你喜欢的任何快捷键),瞬间将当前激活的窗口居中。
- 下载并安装 AutoHotkey。
- 在任意位置右键新建一个
.ahk脚本文件(例如CenterWindow.ahk),用文本编辑器打开。 - 填入以下代码(这段代码会自动计算去除了任务栏后的实际工作区,确保视觉绝对居中):
1 | #c:: ; 将 Win + C 绑定为触发快捷键,你可以改成 ^!c (Ctrl+Alt+C) 等 |
双击运行这个脚本。以后只需按下 Win + C,当前窗口就会优雅地飞到屏幕正中央。你可以将这个脚本的快捷方式放入系统的启动文件夹 (shell:startup) 实现开机自启。
注意事项
如果你同时还使用了Kinto,因为它也是基于AHK的,所以键盘映射转换后会有和上述的脚本会受影响,所以需要重新调整,在保证物理按键组合不变的情况下:
1 |
|
如果还外接了显示器,那么需要判断当前窗口在哪个显示器,否则每次居中都会弹回第一个显示器,优化后的脚本:
1 |
|
缩小任务栏高度
如何修改Windows 11任务栏的高度,我现在觉得它默认的太厚了,有没有任务优雅的方案可以修改大小?
Windhawk(最推荐:模块化、非破坏性)
Windhawk 被称为“Windows 定制领域的 Xposed 框架”。它是一个开源且高度模块化的工具,通过向系统进程注入代码来实现修改,而不是替换系统文件,因此非常轻量且安全。
如何操作:
- 前往 Windhawk 官网(windhawk.net)下载并安装。
- 在软件的“探索”模块中,搜索并安装名为 “Taskbar height and icon size” 的模块。
- 安装后,进入该模块的“高级选项”或“设置”,你可以精确定义任务栏的高度像素值(例如缩小到 30px 或 40px)以及图标的缩放比例。
优点: 极度优雅,不影响系统其他任何 UI 逻辑,模块随用随开,更新系统不易崩溃。
参数优化
安装后,默认参数如下:
1 | TaskbarHeight: 52 |
如果要改成Win10那种风格的大小,建议如何修改参数?
方案一:标准 Win10 风格(推荐)
这是最经典的 Windows 10 默认布局,紧凑且清晰。
- TaskbarHeight (任务栏高度):
40 - IconSize (主图标大小):
24 - TaskbarButtonWidth (主图标按钮宽度):
40 - IconSizeSmall (右下角托盘图标大小):
16(保持默认即可) - TaskbarButtonWidthSmall (托盘按钮宽度):
24(适当缩小,去除 Win11 过度设计的留白)
方案二:Win10 “小任务栏按钮” 风格
如果你以前在 Win10 中习惯勾选“使用小任务栏按钮”,追求极致的屏幕空间利用率,可以使用这组极限参数:
- TaskbarHeight:
30 - IconSize:
16 - TaskbarButtonWidth:
32 - IconSizeSmall:
16 - TaskbarButtonWidthSmall:
20或24
额外的注意事项:
- DPI 缩放: Windhawk 的这个模块会自动兼容系统的 DPI 缩放设置。因此你只需要输入上述 100% 缩放下的基准像素值 即可,无论你是 1080P 屏幕还是 4K 设置了 150% 缩放,系统都会自动计算出正确的比例。
- 生效方式: 修改参数并点击“保存”后,通常资源管理器会自动刷新。如果没有立刻生效,你可以按下
Ctrl + Shift + Esc打开任务管理器,找到“Windows 资源管理器 (explorer.exe)”并右键点击重启。
触控板手感优化
让Windows电脑的触控板尽可能地模仿MacBook的手感,有没有更通用的工具(开源闭源都可以)?
重塑加速度曲线 (开源工具:RawAccel)
Windows 鼠标设置里的“提高指针精确度”是一个非常古老且粗暴的加速算法。而 Mac 的指针加速是动态非线性的(慢速移动时极稳,快速甩动时瞬间跨越屏幕)。
解决方案: 使用 GitHub 开源项目 RawAccel。
如何操作:
- 首先,在 Windows 原生的“鼠标属性”中,彻底取消勾选“提高指针精确度”。
- 下载并安装 RawAccel。它会在驱动内核层拦截指针的原始输入信号(Raw Input)。
- 在可视化界面中,你可以使用不同的数学模型(如 Exponential 指数曲线或自定义多项式)来重新绘制触控板的加速度曲线。通过微调参数,你可以精准复刻出类似 macOS 的指哪打哪的阻尼感。
参数优化
要复刻 MacBook 的触控板手感,我们需要理解苹果在底层驱动中加入的“非线性调教”的核心逻辑:
- 绝对稳定的低速区(Precision Zone): 当手指极其微小地移动时(比如对齐代码或调整 UI 元素),指针完全不加速,就像吸附在屏幕上一样稳。
- 平滑起飞的中速区(Exponential Ramp): 当手指开始正常滑动时,速度呈指数或平滑曲线增长。
- 可控的极速上限(Speed Limit): 快速甩动手指跨越屏幕时,速度会有一个软上限,防止指针直接飞到屏幕外面找不到。
在 RawAccel 中,最能完美模拟这套逻辑的是 Natural (自然) 曲线。请按照以下参数进行初调:
核心参数推荐:Natural(自然曲线)
首先,将左侧中间的下拉菜单从 Off 改为 **Natural**。然后填入以下参数:
Sens Multiplier (基础灵敏度):
1(保持不变,这是低速移动时的基础速度)Limit (上限极值):
3到3.5- 含义: 这意味着当你以最快速度甩动手腕时,指针的移动速度最多会被放大到原来的 3 到 3.5 倍。这保证了你可以一划跨越整个屏幕。
Decay (衰减率/曲线斜率):
0.05到0.1- 含义: 控制曲线从 1.0 攀升到 3.0 的平滑程度。对于触控板来说,由于 DPI 和采样率不同于游戏鼠标,推荐从
0.08开始尝试。
- 含义: 控制曲线从 1.0 攀升到 3.0 的平滑程度。对于触控板来说,由于 DPI 和采样率不同于游戏鼠标,推荐从
Offset (偏移量/起飞阈值):
1到1.5- 含义: 这是复刻 Mac 手感的灵魂! 它会在图表最左侧划定一个区域。在这个速度范围内,加速完全不生效(保持 1.0)。这就为你微调光标创造了绝对稳定的“死区”。
我的参数
除了上述Sens Multiplier以外,其他参数都改为了推荐范围的中间值:3.25,0.075,1.25
三指滑动优化
我使用的是最新的ThinkPad笔记本,带Windows11专业版,有触控板。如何让这个触控板尽可能还原MacBook上的体验?特别是可以在三指滑动时实现按住鼠标左键拖动的功能(比如选择文本时)
ThreeFingerDragOnWindows(开源工具)
第一步:释放 Windows 原生的三指手势占用为了防止手势冲突,我们需要先关掉系统自带的三指功能。
- 打开 Windows 设置 (
Win + I) -> 蓝牙和其他设备 -> 触控板。 - 展开 “三指手势” 选项。
- 将“滑动”操作下拉菜单改为 “无” 。
第二步:安装开源注入工具
- 访问 GitHub 项目主页:搜索
ThreeFingerDragOnWindows(作者:ClementSrd)。 - 在 Releases 页面下载最新的安装包(通常是
.exe或.msi)。 - 安装并运行后,它会静默在系统托盘运行。
第三步:体验与微调现在的逻辑已经完全变成了 Mac 的逻辑:三根手指放上去,移动即为拖拽窗口或框选文本,手指离开即为释放左键。 你可以双击托盘图标打开设置,勾选 “Run at startup” (开机自启),它非常轻量,几乎不占用内存。
参数优化
ThreeFingerDragOnWindows我安装好了,但是感觉三指拖拽起来特别慢,意思就是我手指都划了很长距离了,但是实际上屏幕中的窗口或文本选择只拖动了一点点,要如何优化修改?
大幅提高鼠标基础移速(核心解决办法)
找到中间的 Mouse Speed 滑块。
- 现状: 默认值是
30。 - 修改建议: 将其大幅拉高,建议先尝试拉到
55到70之间。你可以一边拖动滑块,一边用三指在屏幕上随便拖拽一个窗口感受一下,直到它三指拖拽的速度与你单指移动指针的速度几乎一致为止。
适当增加加速度曲线
找到 Mouse acceleration 滑块。
现状: 默认值是
10。修改建议: 如果你觉得稍微快速划动时,窗口跟不上你的爆发速度,可以将其提高到
15或 **20**。这会增加非线性的速度补偿,让手感更轻盈。⚠️ 核心冲突警告: 既然我们刚才已经上了 RawAccel 这个全局的底层物理引擎,如果你在这里还保留
Mouse acceleration的值,就会导致双重加速计算(Double Acceleration) 。这是手感依然“发飘”或“不够线性”的罪魁祸首。优化建议: 立刻将这里的
Mouse acceleration降为 **0**。把基础的速度放大(Mouse Speed)交给这款软件(继续保持在 60 左右),而把非线性的加速曲线完全交给更专业的 RawAccel 处理。
降低拖拽触发阈值(解决“启动慢”的错觉)
找到 Start drag mouse move threshold 滑块。
- 现状: 目前设置为
100(像素)。意思是,当你的三指放上去后,必须先移动 100 个像素的距离,软件才会判定“哦,你是在拖拽”,然后才开始让窗口跟着动。这会让你产生强烈的“前段位移丢失/卡顿”感。 - 修改建议: 将其降低到
40到60左右。不要降到 0,否则容易和轻触点击误触,但在 40-60 的区间,拖拽的“跟手感”会立刻变得非常直接。 - 优化建议: 50 可能依然偏高。ThinkPad 玻璃触控板的信噪比很好,不容易产生坐标漂移。你可以大胆尝试降到
20或 **30**。只要你的手指放上去时不会因为轻微的颤抖而意外触发拖拽,这个值越低,响应越“瞬时”。
手指抬起与续接机制 (Drag Lock)
Allow releasing fingers and restarting drag… (开启状态)
Delay before click release (ms): 500
- 原理解析: 这相当于在触发虚拟的
ACTION_UP之前加了一个postDelayed。当你在触控板上边缘划到底,需要抬起手指重新定位时,系统会为你保持 500 毫秒的“鼠标左键按下”状态。 - 优化建议: 500ms 对大多数人来说偏长,有时拖拽完想立刻点击别的东西,会觉得“粘手”(左键还没释放)。建议调低到
200到300毫秒,能让释放动作更干脆。
- 原理解析: 这相当于在触发虚拟的
我的参数
Mouse Speed:70
Mouse acceleration:0(防止和RawAccel冲突)
Start drag mouse move threshold:30
Delay before click release:300
PowerShell命令补全
要在 Windows PowerShell 中实现类似 macOS 下 oh-my-zsh(配合 zsh-autosuggestions 等插件)的“历史命令自动预测”和“方向键搜索历史”功能,最通用且最强大的解决方案是配置 PowerShell 内置的 PSReadLine 模块。
它不需要像 Git 那样单独安装特定工具的补全包,而是基于你的输入历史来实现全局的预测补全,非常适合日常高频使用的命令(如 adb、gradlew、fastboot 等)。
配置过程
在 PowerShell 中运行以下命令使用记事本打开配置(如果文件不存在,它会提示你创建):
1 | if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force } |
添加 PSReadLine 增强配置(将以下配置代码复制并粘贴到打开的记事本文件中,保存并关闭):
1 | 引入 PSReadLine 模块(通常 Win11 已经内置) |
验证效果
关闭并重新打开 PowerShell,现在你可以体验以下操作:
- 灰字预测(Autosuggestions): 只要你曾经成功执行过
adb install base.apk,下次你刚输入adb i时,后面就会自动出现灰色的nstall base.apk提示,此时按下 右方向键(→) 即可直接补全整条命令。 - 按键搜索: 输入
adb,然后按 向上方向键(↑) ,PowerShell 会在你所有的历史记录中,只循环展示以adb开头的命令。 - 菜单补全: 输入
cd然后按TAB键,会在下方展示当前目录下的所有文件夹供你用方向键选择,而不是强行替换你当前敲击的字符。
错误修复
重新打开PowerShell后,提示如下:
Set-PSReadLineOption : 找不到与参数名称“PredictionSource”匹配的参数。
……
Set-PSReadLineOption : 找不到与参数名称“PredictionViewStyle”匹配的参数。
……
出现这个报错是因为 PowerShell 内置的 PSReadLine 模块版本太低。
灰字历史命令预测(-PredictionSource)这个功能是在 PSReadLine 2.2.0 及更高版本中才引入的。而绝大多数 Windows 11 和 Windows 10 默认自带的版本是 2.0 或 2.1,不支持这两个高级参数。
在你的 PowerShell 中,直接运行以下命令来强制安装最新版本(安装到当前用户目录下,不会影响系统默认文件):
1 | Install-Module -Name PSReadLine -AllowClobber -Force -SkipPublisherCheck -Scope CurrentUser |
(注意:如果系统提示你是否需要安装或更新 NuGet provider 或者信任 PSGallery 仓库,请输入 Y 并回车确认。)
也可以全局安装(影响所有用户):
1 | Install-Module -Name PSReadLine -AllowClobber -Force -SkipPublisherCheck -Scope AllUsers |
PowerShell设置代理
不搞什么临时变量,对于经常需要开关代理的开发者,直接将代理环境变量写死可能会导致部分内网请求失败。最优雅的做法是在上一节我们刚刚编辑过的 $PROFILE 配置文件中,添加两个快捷命令:一个用于开启代理,一个用于关闭代理。
配置过程
输入 notepad $PROFILE 打开配置文件,追加脚本代码:
1 | ========================================== |
保存后重新打开 PowerShell,输入 proxy 或 unproxy 就可以正常使用了!
注意,代理的端口按自己的科学进行修改,我这里是10809哦!
终端自动复制问题
PowerShell用鼠标选择文本会自动复制,能否取消这个功能?每次不小心划到了文本也给我复制到剪贴板了
原生终端
- 打开设置: 点击 PowerShell 窗口顶部标签栏右侧的下拉小箭头
˅,选择 “设置” (或者直接在窗口中按下快捷键Ctrl + ,)。 - 进入交互菜单: 在弹出的设置页面左侧菜单栏中,找到并点击 “交互” (Interaction) 。
- 关闭功能: 在右侧的设置列表中,找到 “将所选内容自动复制到剪贴板” (Automatically copy selection to clipboard) 选项,将它右侧的开关切换为 “关” 。
- 保存: 点击页面右下角的 “保存” 按钮。
Tabby终端
有时候跨平台的三方终端会覆盖原生终端的设置,所以需要单独修改。
依次进入设置、终端、剪贴板,找到“选中时复制”,关闭即可。
Claude Code CLI
没想到某些CLI也会自带这种鬼设置,优先级会高于终端本身的设置。
启动claude后,输入/config进入配置,找到“Copy on select”,改为false即可。





