macOS 的中英输入法切换对我而言一直是个老大难问题,感觉总是无法准确知道自己目前的输入语言,以及能准确快速地切换到自己需要的输入法
好在后来接触到 karabiner,搞了一份右 cmd 切换中文,右 shift 切换英文的方案,简洁明了,也不影响自身组合键功能。
但是目前 BigSur 下 karabiner 用不了了,然后感觉又回到了输入法各种混乱的时期。
前两天发现 BigSur 下 hammerspoon 好像是正常运行的,并且好像这货也能做按键映射操作。于是翻了两天资料教程。终于找到一篇和我需求比较接近的 https://blog.blahgeek.com/IMLight/。
经过一番折腾(指查 hammerspoon 的 api 文档以及临时学习 lua 语法),终于初步实现了。
代码主要为两个 lua
主要修改自上面提到的那个帖子的代码,将其对象化,因为后面要两个实例跑,对应两个映射操作。因为对 lua 不熟悉,写得可能比较丑,好在能用
定义输入法切换以及映射按键等
用法 在 hammerspoon 的 init.lua 添加 require "singleKeyChangeIme" 引用即可。
1
wyx119911 2020-09-09 19:52:03 +08:00
一直用 keyboard maestro 。但是有 bug 会偶尔切换失灵
|
2
honjow OP @wyx119911 keyboard maestro 用得不多,感觉自己不太会配置,或者只是我更习惯至今编辑配置文件的方式。我这个脚本用了一天,也碰到偶尔没反应的情况,不过大体还好
|
3
thet 2020-09-09 22:42:41 +08:00 via iPhone
自带的中英切换不能用吗
|
4
keyv 2020-09-09 22:47:31 +08:00 via iPhone
我把切换的按键放到 touch bar 上了,替换掉原来 siri 的位置。
|
5
Cuo 2020-09-09 23:26:33 +08:00 1
kawa 可以给每个输入法指定快捷键,很适合多语言用户
|
6
shoujiaxin 2020-09-09 23:52:04 +08:00 via iPhone 1
搞这么复杂。。。Caps Lock 切中英文有什么问题吗
|
7
BearD01001 2020-09-10 00:09:09 +08:00 via iPhone
@shoujiaxin 表示这个按键切输入法经常失效
|
8
lslqtz 2020-09-10 00:15:02 +08:00
一直用 caps lock 和 control+space……
|
9
Procumbens 2020-09-10 00:17:04 +08:00
System Preference -> Keyboard -> Input Sources -> Show Input menu in menu bar & Use the Caps Lock key to switch to and from U.S. (press and hold to enable typing in all uppercase.)
中文系统下应该是:系统偏好设置->键盘->输入源,勾选在菜单栏显示输入菜单以及使用 Caps Lock 键来切换不就可以满足需求了嘛…… |
10
honjow OP |
11
Contextualist 2020-09-10 02:46:39 +08:00
Karabiner 的作者正在用 DriverKit 写新版本( Big Sur 可用): https://github.com/pqrs-org/Karabiner-DriverKit-VirtualHIDDevice
@honjow 要不要试试毒。 |
12
sinxccc 2020-09-10 02:52:09 +08:00
我有一个 plist 放在 ~/Library/LaunchAgents 下面,直接把右边的 cmd 映射成了 F16 来切换输入法。
|
13
honjow OP @Contextualist 明天试试
|
14
20015jjw 2020-09-10 03:34:02 +08:00 via Android
control space 我觉得很好用
主要是因为我的 caplocks 是 dual role control esc |
15
Contextualist 2020-09-10 05:03:29 +08:00
|
16
tsohgdivil 2020-09-10 06:12:04 +08:00
哭了,怎么 karabiner 又不能用了。楼主试用完以后能够分享一下么
|
17
tsohgdivil 2020-09-10 06:15:05 +08:00
看了一下 karabiner 的官网,似乎现在的暂时不可用是 Big Sur 系统本身的 bug 导致的:
Important Notice macOS Big Sur Beta 6 has a very serious DriverKit issue. Karabiner-Elements will stop working after restarting your Mac due to the issue. You have to reinstall the driver by the following way every reboot on macOS Big Sur Beta 6. |
18
honjow OP @Contextualist 试了下,好像可以用,不过官网说的重启要重新安装驱动的情况,因为还没重启,不知道究竟需不需要
|
19
typetraits 2020-09-12 21:51:08 +08:00
hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x70000006E}]}'
CapsLock 映射为 F19,然后改快捷键里面的切换输入法就可以了 不需要安装任何第三方工具 |
20
honjow OP @typetraits 还是有点区别的,我的需求是一个键绑定一个输入法,不是一个键循环切换
|
21
Anna1879 2021-12-06 04:13:45 +08:00
强烈推荐 [单键切换输入法]{t/565667#;},20211206 Monetary 依旧有效,记得下载完最新配置在保持系统仅有中英两种输入法的前提下系统切换键更换为 `F18` 即可。
|