强制使用德语键盘输入中文(更新)
我只喜欢使用 Tastaturbelegung E1 („Erweiterte Tastaturbelegung 1“),也不喜欢经常切换,冒着忘记当前布局状态的风险。原因不解释。所以我会尽一切努力在任何平台使用这个布局,或者至少是 QWERTZ 布局。以前用过不少方案,效果有好有坏,有的优雅有的别扭,是时候总结一下,并更新推荐做法了。
Windows
曾经使用 AutoHotkey 的脚本强制交换 z 和 y,并且在系统中添加如下的计划任务保证以最高权限自启:

这个方法虽然稳定,但是完全没有处理(难以配置的)特殊符号,需要用时还是得回忆美式键盘。
后来看到这种特殊需求也是长久存在的,且最近才有人分享,便换成了这个更便利的改注册表的方案。我原样复制如下:
- Start regedit
- Navigate to key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts
- You have now to search the ID of your input method. For instance Chinese (Traditional) is 00000404. Chinese (Simplified) is 00000804. For other languages you can CTRL+F. Ensure you are on the right key: Layout Text should read your selected language.
- Change the value of Layout File from KBDUS.DLL to KBDGR.DLL for german, KBDSF.DLL for swiss french or KBDSG.DLL for swiss german. If you need another layout, take a look on sibling keys and try to find the DLL.
- Reboot.
Windows 11 大概在去年第一次主动增加了对 E1 和 E2 键盘布局的支持。对我来说,正确的文件应该是 KBDGRE1.DLL。如此,无论使用何种拼音输入法,无论在何种环境下,都不会出现美式键盘布局。即使是屏幕键盘,也可实现精分状态。
Linux
直接完美支持。和 fcitx5 一起使用也不会有问题。
MacOS
这个系统的中文输入法实现机制很奇怪,总之没试成功。
iOS
使用“仓输入法”(Hamster)的自定义键盘布局功能即可实现。可惜 Gboard 这种少有自带纠错的输入法不支持,否则小屏幕输入应该更轻松。
Android
目前没找到任何办法。