Mac Input Source Change - Mac自带输入法Shift中英切换调整

AI 摘要: 本文主要介绍了使用Karabiner-Elements替换Sogou输入法的方法,以及解决了输入法切换快捷键和图标显示问题。同时总结了使用原生的Pinyin输入法和ABC输入法的体验,并提供了一些参考链接。

1. 背景

最近一段时间发现 M1 电池掉电很快,通过监控器查看过去 12 小时发现 Sogou 输入法的耗电很多(类似情况好几次了);加上以前 Mac 下只保留一个 Sogou 输入法也需要做一些系统配置修改,所以性替换回系统自带默认的Pinyin 输入法ABC 输入法

这里替换是采用键盘映射方式实现,即通过Karabiner-Elements 软件实现输入法切换!

删除 Sogou 输入法仅保Pinyin 输入法ABC 输入法,遇到几个问题:

  1. 输入法切换快捷键问题:Sogou 默认使用Left-Shift 快捷键切换,但 Apple 键盘输入默认不支持(可以配置为 Cap 大小写按键或Ctrl+Space 组合键,还是非常不习惯) → 这里使用 Karabiner-Elements 开源的键盘映射软件实现 Left-Shift 切换中英文输入法
  2. 输入法切换时候存在小图标问题:在输入框下存在一个明显的切换图标,非常影响沉浸似输入,希望移除

2. 输入法快捷键切换方案 - Karabiner-Elements

2.1. Karabiner-Elements 简介

Karabiner 是一个 macOS 系统下的键盘映射工具,它允许用户自定义键盘按键的行为。通过 Karabiner,用户可以重新映射、禁用或修改各种按键功能,以满足个人需求。

Karabiner 最初是由 Takayama Fumihiko 开发的,并在 2016 年改名为"Karabiner-Elements"。它使用了一种称为"EventTap"的技术来拦截和处理输入事件,并根据用户配置文件中的规则进行相应操作。

使用 Karabiner,你可以实现以下功能:

  1. 重新映射按键:将某个按键映射到另一个按键上。
  2. 禁用按键:完全禁用某个按键。
  3. 修改组合键:更改组合快捷键(如 Command+C)的行为。
  4. 创建复杂规则:根据特定条件创建复杂的规则集,例如只在特定应用程序中生效。

要使用 Karabiner,在其官方网站上下载并安装对应版本即可。你还可以参考以下链接获取更多关于 Karabiner 的信息:https://karabiner-elements.pqrs.org/

2.2. Karabiner 修改操作流程

  1. 软件下载 :https://github.com/pqrs-org/Karabiner-Elements/releases/tag/v14.13.0

  2. 安装配置:注意相关隐私权限的放开

  3. 进入Karabiner的配置目录:cd ~/.config/karabiner/assets/complex_modifications

  4. 创建一个 remapLShift.json 的文件,实现下面两个效果:

    • 默认的 left_shift 组合按键效果保留,即仍然Shift+字母、数字 仍然和不做 Mapping 映射之前一样
    • 单独按下Left_Shift按键,则等同于按下 Left_Control+Alt+Space空格,即实现输入法的切换,体验和Sougou 切换一致 映射成Ctrl+Alt+Space
  5. remapLShift.json配置内容

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    {
      "title": "L_Shift to Ctrl+Alt+Space",
      "rules": [
        {
          "description": "Change L_Shift to control + alt + space to switch EN/ZH",
          "manipulators": [
            {
              "type": "basic",
              "from": {
                "key_code": "left_shift",
                "modifiers": {
                  "optional": ["any"]
                }
              },
              "to": [
                {
                  "key_code": "left_shift",
                  "lazy": true
                }
              ],
              "to_if_alone": [
                {
                  "key_code": "spacebar",
                  "modifiers": ["left_control", "left_option"]
                }
              ]
            }
          ]
        }
      ]
    }
    
  6. 配置加载 Karabiner-1

    Karabiner-2

  7. 至此,配置工作已经完全完成

3. 输入法图标隐藏

  1. 问题现象 输入法切换的Icon图标
  2. 隐藏输入法切换 Icon 图标
    1
    
    sudo defaults write /Library/Preferences/FeatureFlags/Domain/UIKit.plist redesigned_text_cursor -dict-add Enabled -bool NO
    
  3. 重启电脑后,即可以完成该图标隐藏
  4. 在 Menu 菜单栏放开输入 Icon 图片(可选) 菜单栏展示输入法图标

4. 总结

之前使用 Sogou 输入法一直觉得功能有些太冗余了,实际上就是软件不符合单一职责,但商业化又不允许,所以加了一堆有的没的功能,对于输入法的核心定位感觉有些偏离。

市面上除了 Sogou 也有一些其他输入法,但体验下来有的感觉还不如 Sogou。 - https://www.zhihu.com/question/455027751

为了在 Mac 上使用 Sogou 输入法,同时不乱切换到其他 ABC 输入法,所以需要删掉 ABC 输入法(系统至少要保留一个,所以也得改一些系统配置,还是有些折腾,之前 MacTip 也有记录过)

最近发现 Sogou 不知道是不是在搞数据采集什么的,搞得 M1 掉电很快,索性就卸载考虑原生的 Apple 输入法,为了让原生的输入法和 Sogou 有同样的流畅输入体验,不得不再折腾下。

目前改完后,不管是双拼提示词,还是中英文切换体验,苹果 Pinyin 输入法+ABC 目前看起来使用感觉还是非常流畅(虽然会多了一个附带的 Map 键盘映射软件Karabiner-Elements),整体感觉蛮不错的,还是可以考虑替换一把,毕竟原生的输入法兼容性还是会好一些!

5. 参考

  1. Apple 下删除 ABC 仅保留苹果输入法: https://www.jianshu.com/p/0ba1292441b9
  2. 关于 Karabiner 按键替换的信息:https://karabiner-elements.pqrs.org/
  3. Karabiner 软件安装、 https://www.onejar99.com/mac-keyboard-en-zh-switch-by-karabiner-elements/
  4. 输入法切换替换隐藏图标:https://discussionschinese.apple.com/thread/255178136?answerId=259709464322&sortBy=best#259709464322
  5. 一些其他输入法:https://www.zhihu.com/question/455027751