honjow
2019-10-31 10:40:52 +08:00
我记得这是用了某个 api 的,都会有这样的问题。
我设置的单键切换指定输入法的,右 cmd 切换搜狗,右 shift 切换自带 ABC
后来我琢磨了下 修改了原有的切换方式,中文切换英文保留使用 api 的方式,英文切换中文则使用模拟 ctrl+空格的方式。不过这只适用于只使用两种输入法的情况。三种的话使用模拟 ctrl+空格的方式没法精准切换到指定的输入法。
***参考代码***
```json
{
"description": "单键切换输入法 改进版",
"manipulators": [
{
"conditions": [
{
"input_sources": [
{
"language": "zh-Hans"
}
],
"type": "input_source_unless"
}
],
"from": {
"key_code": "right_command"
},
"to": [
{
"key_code": "spacebar",
"modifiers": [
"left_control"
]
}
],
"type": "basic"
},
{
"conditions": [
{
"input_sources": [
{
"language": "en"
}
],
"type": "input_source_unless"
}
],
"from": {
"key_code": "right_shift"
},
"to": [
{
"key_code": "right_shift"
}
],
"to_if_alone": [
{
"select_input_source": {
"input_source_id": "com.apple.keylayout.ABC"
}
}
],
"type": "basic"
}
]
}
```