技术手记

改注册表以在旧 CPU 电脑上升级 Windows 11

公司有一批旧 i5-7200u 的笔记本电脑,打算装 Win11Pro 提供远程访问,做一些测试用,发现直接切换专业版序列号提示错误,准备把系统默认的系统通过 ISO 文件先升级到 Win11 23H2 的 Pro 版也提示处理器不支持

通过新增注册表项解决此问题,在 Computer\HKEY_LOCAL_MACHINE\SYSTEM\Setup\MoSetup 路径下,新增一个 DWORD (32-bit) 字段,命名为 AllowUpgradesWithUnsupportedTPMOrCPU 并将值设为 1,再运行 ISO 里的 setup.exe 就不报错了

方法参考自 https://www.theverge.com/22715331/how-to-install-windows-11-unsupported-cpu-intel-amd-registry-regedit

ThinkPad 40AC 雷电三扩展坞

从早期真正放在笔记本底部的 Dock 时代开始,就对 ThinkPad Dock 这样底座连各种线缆,笔记本电脑本体随时拔了就走的模式特别喜欢,买过用过 T60、X200、X230 的底座式扩展坞,和 40A9、40AC 两个外接式的扩展坞,本文介绍下 40AC 这个雷电三协议的扩展坞

办公室桌上这个已经用了两年多了,之前在 v2ex 上开了个帖介绍记录:买了个 ThinkPad 40AC 雷电 3 扩展坞给 2020 Intel i5 MacBook Pro 13 用,近乎完美体验一线通 ,本文为这个帖的整理更新

为什么需要一个扩展坞

因为在办公室,对 MacBook Pro 外接两个 4K 显示器,加上有线键鼠耳机等需求(蓝牙有干扰和延迟),每天笔记本过来插拔一堆线,期待能用上雷电接口连供电加显示数据等特性,一根线搞定

现在桌上还有一个铭凡类似 NUC 的小主机装着 Windows 当主力机在用,也期望能更简单把这一堆外设在小主机和笔记本之间切换

为什么选了 ThinkPad 40AC 这个扩展坞

在 2021 年那个时间点,之前能搜到给 MacBook Pro 的扩展坞,要么指向 CalDigit 这种苹果官方背书但贼贵的,要么是 HP 或 Dell 家需要装驱动且存在 macOS 升级后不可用的风险,或者输出接口没法满足(比如最核心的 2x 4K@60Hz)

ThinkPad 的扩展坞,公司之前买过一个 40A9,是比较早的 USB-C 协议扩展坞,能一根 USB-C 上行到笔记本电脑,解决 供电+单个显示器+USB+LAN+耳麦 的需求,但 macOS 接多个显示器时只能被当成同一个输出源输出同样的信号,偶发有笔记本休眠后再唤醒时显示器无法唤醒的问题,需要重新插拔一下(用在 ThinkPad 上可以多个输出也没唤醒问题),同时最大只能双 1080p@60Hz,所以没有继续选这个

当时参考 https://post.smzdm.com/p/aekzgq6k/ 这个文章,对比下来 40AC 应该是满足需求且价格最合适的,事实上在 2021 年八月,闲鱼五百多买了一套 40AC 加 135W 电源加雷电三线,用下来也是近乎完美的

在 2023 年八月这个时间点,可选的除了已经全套价格降到 300 以内的 40AC,还有 40AN 这个二代雷电三扩展坞,和 40B0 这个雷电四扩展坞等,不过后面两个价格还是略贵,所以当家里有需求时,我还是再买了个 40AC

官网在 https://support.lenovo.com/us/en/solutions/acc100356 ,各种驱动固件和技术规格都可以从这里找到

用起来怎么样

先上个图,左侧那个黑色长条形就是 ThinkPad 40AC 扩展坞本体,后面那个黑色的大块头电源是连这个扩展坞供电同时给更上行设备提供充电能力,右侧那个银白色的小方块是铭凡 NPB5 小主机

ThinkPad 40AC Thunderbolt 3 Dock

目前接上去的线包括

  1. 135W 联想方口电源输入
  2. 雷电三下行线,连接笔记本电脑或其他设备,同时可带 65W 供电(能满足 MacBook Pro 13 和 14 的需求,更大没测试)
  3. DP 到一个 4K@60Hz 显示器
  4. RJ45 接千兆 LAN 有线网
  5. USB-A 接键盘、鼠标、充电线(给自己的小米手环充电用)
  6. USB-C 形态雷电三下行 DP 模式接另一个 4K@60Hz 显示器
  7. 3.5mm 耳机孔接有线耳麦

接 MacBook Pro 13(2020 Intel i5 款)和 MacBook Pro 14 (2021 M1Pro 款)都是即插即用,不需要破解,不需要改 SIP 或系统设置,测过从 macOS Catalina (10.15)一直到 Ventura (13.x)都是可用的,在可见的未来也不应该出其他问题

接 ThinkPad X1 Carbon 2018(Intel i5-8350u)、Lenovo Miix 720 (Intel i5-7200u) 、铭凡 NPB5 (Intel i5-13500H) 这些 Windows 设备也都是完美工作

缺点和瑕疵

  1. 显示输出限制
    • 不管是 Windows 还是 macOS,想双 4K@60Hz 只能一个走雷电三下行,一个走 DP,技术规格详见 https://support.lenovo.com/us/en/solutions/pd029622
    • macOS 对扩展坞上所有除 DP 模式雷电三下行的显示接口,都当做一个输出,所以在这些接口上怎么接多个显示器,都被 macOS 当成一个且输出同样的内容,要分屏只能是雷电三下行走一个,其他接口任选一个(为了跑满 4K@60Hz,还是选 DP)
  2. macOS 下耳机输出音量不可调节
    • 这其实应该赖 macOS,在更早的音频固件下是可以调音量的,最新的固件反倒不行,详见后面固件问题部分
  3. 没有读卡器

固件问题

最新的固件版本是 1.0.0.25,如果没有特殊需求,建议刷到这个最新的版本,下载页面在 https://pcsupport.lenovo.com/us/en/downloads/DS506176 ,单独的固件下载链接是 https://download.lenovo.com/pccbbs/mobiles/ar_tbtdockfw10.exe

这个版本的固件在 macOS 下无法调节耳机音量,不过有一个神奇的办法是把其中音频部分的固件单独降级到 1.0.0.12 版本固件里带的 04-0E-80_Rev_0080 就好了

根据其他版本的下载链接推测出来可用的固件下载链接在 https://download.lenovo.com/pccbbs/mobiles/thinkpad_tbt3_dock_web_fw_v1.0.0.12.exe

下载后运行,固件内容会被默认解压到 C:\DRIVERS\ThinkPad_TBT3_Dock_WEB_FW\ 这个目录下,不要在图形界面里刷新,进入 Windows 的命令行,然后用下面这个命令,强制只刷新音频部分的固件

C:\DRIVERS\ThinkPad_TBT3_Dock_WEB_FW\ThinkPad_TBT3_Dock_TVSU_FW.exe /audio /f

最后用 v1.0.0.25 版本固件更新程序的 check 功能看,其他几个模块是最新,音频部分提示目前是 0080 需要升级到 0087 就好了

不过 04-0E-80_Rev_0080 这个音频固件在 Windows 下,会导致扩展坞上的耳机插孔明明插了设备,但 Windows 不认导致无法输出,所以不是接苹果设备的话,还是建议整体都用最新固件

搜狗输入法(Windows版)修改方括号输入直角引号

本文参考整理自 https://www.cnblogs.com/xiaohi/p/17399462.html

习惯了使用「」直角引号来在中文输入中表示引用,macOS 下的搜狗输入法有很简单的方式可以打开自定义符号,Windows 版的搜狗输入法在某个版本前也是可以自定义符号的,当前(2023.8)的最新版,还有自定义符号的入口,但只能从下拉框里选择,不能自定义,默认的是【】这两个符号

搜了下解决办法,有说到可以在旧版里自己输入自定义符号,再更新到新版配置还在的,说明这个应该还有通过非设置界面直接修改配置文件的办法,见最上面的链接,此处简化整理

  1. 打开 %USERPROFILE%\AppData\LocalLow\SogouPY.users\00000001\punctures.ini 文件,若不存在此路径或此文件,参考 C:\Program Files (x86)\SogouInput\13.2.0.6899 这样的路径去找到 punctures.ini 这个文件

  2. 找到 [flaafl][fnaafn] 两处设定,从命名看,分别是左右方括号在中文半角和中文全角下的字符输出,修改为

        [flaafl]
        Name=flaaaaaafl
        ChHalf=amdaaaaadm
        ChFull=badaaaaaca
    
        [fnaafn]
        Name=fnaaaaaafn
        ChHalf=andaaaaadn
        ChFull=bbdaaaaacb
        

  3. 保存,并设定此文件只读(此处作用不详,且发现设过只读也会在搜狗输入法设置里被修改掉)

  4. 注销当前用户并重新登录或关机重启生效

不要更新 macOS 14 beta4

在我的 MacBook Pro 13 (2020, Intel i5) 上带来了 SMC 固件问题,导致插电或拔电就会死机,自行修复失败,去苹果店天才吧本地刷固件解决,且按天才吧工作人员描述,问题出现概率不低,不管是 Intel 芯片还是 M 芯片都有

记录下我的处理过程

2023.7.26 前

一切正常,主系统为 13.4.1(c),通过划分磁盘分区的方式另外装了一个 14.0 beta

2023.7.26

主系统升级 13.5

在第二分区上尝试升级 14.0 beta4,多次在重启后提示升级失败

2023.7.27

第二分区 14.0 beta4 在某次重启后升级成功,问题开始出现,如果是在非插电模式下使用,只要插电立马死机,三五秒后自动关机

2023.7.28

尝试关机,长按电源键 10 秒后再开机,故障依旧

切换启动磁盘到主系统 13.5,故障依旧

https://support.apple.com/zh-cn/HT204063 重置 NVRAM 和按 https://support.apple.com/zh-cn/HT201295 重置 SMC,不管是 13.5 还是 14.0 beta4,故障依旧

2023.7.29

新尝试,在非插电模式下正常关机后,插电,系统自动开机,可正常使用,在开机状态下拔掉电源,立马死机,三五秒后自动关机,故障现象同不插电开机后再插电的表现

联系苹果电话技术支持,建议进诊断模式看自检结果,以及尝试降级到机器出厂系统版本,案例代码 1**3

使用诊断模式(按 https://support.apple.com/zh-cn/HT202731 开机按 D),诊断结果为 ADP000 没有发现问题(按 https://support.apple.com/zh-cn/HT203747

使用在线恢复模式安装出厂版本系统(按 https://support.apple.com/zh-cn/HT204904 开机按 Shift-Opt-Cmd-R),删除所有原宗卷,新建宗卷后不插电安装 macOS Catalina 10.15.7,故障依旧

2023.7.31

到苹果西湖店,联系预约的 Genius Bar 工作人员,表示的确是 macOS 14.0 beta4 引入的问题,需要刷个固件,他们机器连线刷完就好了

修复 WordPress 插件 Collapsing Archives 在 PHP8 下不能使用的问题

使用 Collapsing Archives 这个 WordPress 插件很多年了,就是本文右边能看到的历年存档,可以很漂亮折叠起来,而不是官方默认插件只能按年聚合,不能展开看有哪些文章

但是在 WordPress 升级到某个版本,及容器升级到 PHP8 后,只要开启这个插件,必然整个 WP 站都挂的,开 WordPress Debugging 看报错信息也没有头绪,没有可以联系作者的渠道,在 WordPress 论坛反馈也没反应

其中一个普遍的报错是

[error] 1088#1088: *266661 FastCGI sent in stderr: “PHP message: PHP Fatal error: Uncaught TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, class collapsArch does not have a method “enqueue_scripts” in /home/foo/www/blog/wp-includes/class-wp-hook.php:307

这个问题参考 https://wordpress.org/support/topic/an-error-occurred-11/#post-15472977 获得了解决,具体办法是到 ~/wp-content/plugins/collapsing-archives/ 目录下修改 collapsArch.php 的 42 行,从

if (!is_admin()) {
    wp_enqueue_script('jquery');
    add_action( 'wp_enqueue_scripts', array( 'collapsArch', 'enqueue_scripts' ) );
} else {

改为

if (!is_admin()) {
    wp_enqueue_script('jquery');
    add_action( 'wp_head', array( 'collapsArch', 'get_head' ) );
} else {

但是问题依然没有解决,还有一处拼写错误需要修改,参考 https://wordpress.org/support/topic/great-until-php-8/#post-16349890 的办法,在 ~/wp-content/plugins/collapsing-archives/ 目录下修改 defaults.php 的 27 行,从

  'post_type' => 'post',
  'taxoncmy' => 'category',
  'postTitleLength' => '');

改为

  'post_type' => 'post',
  'taxonomy' => 'category',
  'postTitleLength' => '');

至此,重新启用插件恢复正常

macOS 还是需要 Karabiner 来解决 CapsLock 和 Shift 延迟的问题

在前阵子的 macOS 实用小工具记录 2 里提到,因为有原生锁屏快捷键后不用装 Karabiner 了,但最近在 macOS 下打字,按 CapsLock 切换大小写或临时按 Shift 时总有延迟的感觉,搜到这个现象很普遍,但怎么解决不知道

今天看到 v2ex 这个帖 https://www.v2ex.com/t/851971 ,以及里面提到的几个其他讨论帖,还是把 Karabiner 装了回来,因为

How to disable caps lock delay
Karabiner-Elements disables the caps lock delay without any action since v13.3.0.

官网在 https://karabiner-elements.pqrs.org/

如果用 brew 则用 brew install karabiner-elements 安装

macOS 实用小工具记录 2

本文用于更新和补充 macOS 实用小工具记录 里提到的工具 v2022.03.16

更新部分

Hidden Bar

  • 最终发现不用也能接受,只要吧 Stats 显示的监控变少一点就好了,不用放那么多图标在菜单栏里

Karabiner

  • 如原文所说,之前是为了映射 Power 键方便锁屏,现在用原生 Ctrl+Cmd+Q 已经可以解决了,自己没有别的键映射就没再装了

Scroll Reverser

  • 这个工具的作者说未来会改为收费工具,虽然一直没有落地,但不想白嫖
  • 另外是这个工具在 macOS Monterey 下(macOS 12.x)偶尔会失效,找到了另一个工具来替代

补充部分

Cleaner

Keka

  • https://www.keka.io
  • 压缩解压工具,命令行版的 p7zip 对非专业用户还是不够友好

MOS

  • https://mos.caldis.me/
  • 替代 Scroll Reverser 的小工具,将鼠标的滚轮方向单独调整成跟 Windows 下方向一样,保留触摸板是原生方向
  • 在 GitHub 上有免费开源,也可以 brew 安装,界面看起来更现代化一些

macOS 实用小工具记录

记录一下自己目前在 macOS 上常用的小工具们(按字母序)v2022.02.10

DaisyDisk

  • https://daisydiskapp.com/
  • 磁盘空间分析工具,免费可试用,我某次买过付费的就一直在用
  • 可以用 gdu 等工具替代,只是这个可视化做的更漂亮

displayplacer

EasyRes

  • http://easyresapp.com/
  • 屏幕分辨率快速管理工具,免费,Mac App Store (MAS) 直接有下载
  • 相比 RDM 等工具,这个安装和使用更方便

Hidden Bar

Itsycal

Karabiner

  • https://karabiner-elements.pqrs.org/
  • 键位重映射工具,之前主要用来把外接键盘的 Pause/Break 重置为 Power 方便锁屏,现在有了原生 Ctrl+Cmd+Q 后好像用不上了

Rectangle

  • https://rectangleapp.com/
  • 窗口布局管理工具,之前的 Spectacle 不更新了,这个适配新的更好点,同样免费且开源

Scroll Reverser

  • https://pilotmoon.com/scrollreverser/
  • 鼠标滚动方向调整小工具,系统原生只能触摸板和鼠标方向同时改,实际上触摸板保留 macOS 原生方向跟手挺好,外接鼠标还是跟 Win 保持一致更舒服

Snipaste

  • https://www.snipaste.com/
  • 截图小工具,也有推荐 Shottr 的,不过这个在 macOS/Win 上都有,国人开发界面也更好理解

Stats

近期用电脑的几个小技巧调整

Edge 浏览器在某个版本后默认开启了拷贝当前访问网页链接时,复制的是网页标题,粘贴时如果遇到富文本编辑器,出来是标题文字加跳转链接,如果遇到纯文本编辑器,出来就是网页标题。这个可以在 Edge 的设置里「共享、复制和粘贴」里将格式改成「纯文本」来解决

macOS 12 Monterey 里新增了快捷备忘录的操作,默认是屏幕右下角作为触发角,以及 Fn+Q 唤起。这个本是个好事,但增加了触发角其实会有不必要的困扰,在 macOS 的系统偏好设置里,到「桌面与屏幕保护程序」里,在屏幕保护程序页的右下角来设置「触发角」将其改为没有任何行为即可。顺带吐槽下触发角这个设置项的入口其实挺反直觉的,好在还能有搜索

MacBook Pro 通过 BootCamp 安装 Windows 10 及取消 Office365 链接 OneDrive

公司有一批换旧下来的 MacBook Pro,同时因为一些调试需求,又需要 Windows 设备,看了下公司买的 Windows 10 Pro 授权是有多的,可以通过 BootCamp 在这些机器上装 Win10 来当测试机用

BootCamp 在 macOS 里自带

准备好 Win10 的安装文件,因为我们有买企业授权,直接去批量许可服务中心去下载对应 ISO 文件

这里有踩一个坑,在 macOS Catalina (10.15) 之前版本,BootCamp 可能提示复制 ISO 文件失败,这里需要使用一个叫 Boot Camp ISO Convert 的工具,将原版 ISO 做一下转换。简单说原因就是 FAT32 文件系统不支持单个文件超过 4GiB,转换工具可以将 ISO 里的 install.wim 转成更小的文件,工具下载链接在 https://twocanoes-software-updates.s3.amazonaws.com/Boot%20Camp%20ISO%20Converter1_6.dmg

按 BootCamp 提示,选择转换好后的 ISO 文件,确定分区大小,直接下一步就好了。重启进入 Windows 安装流程可能发现没有网络,先跳过,等完成安装后在资源管理器里看有一个虚拟光驱,里面是 Win10 安装文件,进入发现里面相比原版安装镜像多了个 Boot Camp 工具包文件夹,进去 setup.exe 安装好各种驱动,再重启一次就完成安装

目前看 Win10 对 MacBook Pro 的高分屏支持也还不错,除了安装过程一开始只能 100% DPI,后面的安装流程和系统内,200% DPI 下显示效果很棒

因为是测试机,登录企业 Office 365 后不希望跟账户绑定的 OneDrive 和 OneDrive for Business 打通,先在系统设置里卸载 OneDrive,然后在注册表里到 计算机\HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Internet 路径下,新增一个名为 OnlineStorage 的 DWORD 键值,数值写 3,关闭所有 Office 应用再重新打开,在个人账户页和打开页就都没有 OneDrive 在线内容了