Bookmarks

You haven't yet saved any bookmarks. To bookmark a post, just click .

  • 从零开始打造优雅易用的 macOS 之输入法配置

  • 前言

    在之前的文章中,我们已经一步一步的完成了以下工作:

    • 使用U盘全新安装macOS Majove
    • 使用Homebrew等方式安装常用软件
    • 使用iTerm2+Zsh+antigen配置终端

    今天的文章则准备讲一下,使用Karabiner-Elments进行简单改键,并优化中英文输入法的切换。

    要解决的是很多朋友会遇到的诸如想要输入英文的时候出来中文、想要输入中文的时候却发现是英文,而需要删除内容重新输入或者切换输入法再输入的问题。本文适用对象主要为使用Macbook、MacPro,iMac等设备并使用Mac键盘的用户,其他用户仅供参考。

    以配置尽量简单为原则,我们要实现的目标如下:

    • CapsLock映射为Ctrl右option映射为CapsLock
    • 右Command设置为单按发送F17,用于切换输入法
    • 删除鼠须管输入法的英文输入模式,两种输入法一中一英,解放Shift键
    • 使用ShowyEdge在屏幕上方菜单栏增加一层色块,直观显示当前输入法是中文还是英文

    下面开始进行设置。

    修改键盘映射

    安装Karabiner-Elements

    Karabiner-Elments介绍

    Karabiner是一款免费且强大的键盘自定义工具,由于原Karabiner的所有功能无法支持macOS Sierra以及后续版本,作者先实现了主要的键盘映射和响应时间等功能,并命名为Karabiner-Elements。

    项目Github地址:
    Karabiner
    Karabiner-Elements

    安装方式

    虽然可以选择直接官网下载安装,但如果你看过本系列第一篇文章或者同样使用Homebrew Cask,那么推荐你使用Homebrew Cask安装,打开终端,输入下面的命令:

    homebrew cask install karabiner-elements
    

    稍等片刻,就完成了安装。

    如果你没有安装Homebrew Cask,请到这个页面下载安装Karabiner-Elemetns。

    键盘映射设置

    安装完成后打开软件,可以看到Karabiner-Elements支持多键盘使用同一配置或针对不同键盘使用不同配置:
    Karabiner界面

    从界面上我们可以看到,Karabiner-Elements主要功能包括:

    • Simple Modifications简单改键:将一个按键映射为另一个按键
    • Function Keys功能键:调整F1-F12功能键对应的功能
    • Complex Modifications复杂改键:下载脚本实现各种高端改键

    所以如果你愿意折腾,大可以慢慢研究,但很多人只是想用微小的代价来实现一些便利,不增加学习成本,也不用配置半天,我就是其中之一,本来还想利用Complex Modifications实现CapsLock单击是ESC组合使用则为Ctrl,使用中却发现使用这个脚本就无法同时使用将右option映射为CapsLock,后来干脆放弃,只用前文提到的三个功能:

    • 在Simple Modifications中手动添加,将CapsLock映射为Ctrl,将将右option映射为CapsLock
      Karabiner设置

    • 在Complex Modifications中下载脚本设置按下右Command发送F17
      点击Complex Modifications,再点击左下角的Add item,软件只默认安装了三个规则,我们需要从网上下载规则导入,点击上方的Import more rules from the Internet(open a web browser)
      Karabiner设置
      就会打开一个浏览器窗口,里面包含了大量规则,这里是高端用户一展身手的地方,但今天我们只用其中一个,从最上方Modifier Keys这一分类中找到Tapping modifier-keys produces a f-key.,点击右侧的Import,在弹出的窗口中再点击Import即可完成规则导入:
      Karabiner设置

    找到我们需要使用的规则,并点击右侧的Enable激活:
    Karabiner设置
    Karabiner设置

    这样我们就完成了键盘映射的修改,下面我们开始进行输入法的调整。

    配置输入法切换

    鼠须管(Squirrel)安装

    大约在两年多前我从百度输入法切换到鼠须管(Squirrel)之后,就再也没有更换过输入法,当然这不一定是因为这款输入法多好用,也可能是因为我比较懒,不过平心而论,Squirrel无论从界面美观程度还是稳定程度上都已经非常好了,而且词库很强大,通过扩展词库支持各种输入模式,我本人一直使用的是五笔拼音模式,另外,这款输入法还同时完全支持Linux和Windows,一个配置可以行走三大系统,对于多系统用户很友好。

    如果你有兴趣尝试一下这款输入法的话,请到官方网站下载,Homebrew Cask安装时总是下载不成功,所以直接官网下载安装即可。

    鼠须管(Squirrel)基本配置

    注意:原本更新频率很低的鼠须管近期突然连续更新,先后更新了0.10版本和0.11版本,下面所写的配置可能已经过时,如果你是第一次安装该输入法,以下内容仅供参考,待测试。

    原本我已经安装好了鼠须管并直接复制了Macbook上的配置,为了写这篇文章,特意重新安装了一下,主要是为了方便看到这篇文章而使用鼠须管的朋友。

    设置默认输入方式

    安装好鼠须管后,默认启用的是朙月拼音输入法,由于本人一直使用五笔输入法,因此安装后第一件事就是启用五笔输入法,选中鼠须管后,在下面的菜单中,点击用户设定:
    鼠须管设置
    进入用户设置目录~/Library/Rime/后,新建一个default.custom.yaml,用于覆盖掉default.yaml中的相关配置,文件内容输入:

    patch:
      schema_list:
        - schema: wubi_pinyin
    

    保存之外,在输入法菜单中点击“重新部署”,就会自动下载五笔相关词库,如果你使用纯五笔,也可以把wubi_pinyin改成wubi86

    多余的输入方案可以自行删除,也可以不管,毕竟也占不了多少空间。

    界面设置

    鼠须管默认的界面已经比较美观,我之前主要是把垂直显示改成了水平显示,并调小了字体,界面设置的相关内容在squirrel.yaml中,我们对其进行直接修改或者新建一个squirrel.custom.yaml,重写配置。
    这里直接分享一下我目前使用的配置内容,我都是直接复制过来用:

    patch:
      style:
        app_options:
        alpha: 0.9
        border_width: 1
        border_height: 1
        font_point: 16
        horizontal: true
        font_face: PingFangSC-Regular
        corner_radius: 5
        color_scheme: native
      show_notifications_via_notification_center: true
      app_options:
        iterm2
    

    其中style部分就是界面配置,下面的app_options是为了解决软件兼容性增加的设置,我在里面排除了iterm2,如果有其他有兼容的程序,添加在下面即可。有朋友开发了图形化的设置工具,可以到这里下载。

    保存文件内容后,重新部署,立马就能看到效果。

    关闭鼠须管英文输入模式

    回到我们想要实现的目的上,我们想要实现的目的是这样的:

    • 英文输入法只负责英文输入,鼠须管只负责中文输入(除非回车强制上屏)
    • 使用右Command作为快捷键一键切换输入法
    • 使用ShowyEdge在菜单栏显示透明色块直观指示当前输入法

    这样我们就实现了,既能快速切换,又能直观了解当前是英文还是中文输入状态,我认为算是一个相对简单而效果又不错的解决方案。

    由于方案中要求中文输入法只负责中文输入,因此我们需要关闭鼠须管的英文输入模式,关闭之外,按Shift键不再切换至英文模式,具体实现方式很简单:

    从输入方案中 engine/processor 列表里删除 ascii_composer

    具体操作则是,找到你使用的输入方案对应的配置文件,比如我正在使用的是五笔拼音,对应的配置文件就是wubi_pinyin.schema.yaml,从里面的engine/processor 列表里删除 ascii_composer,因为要修改的只有一行,我没有新建wubi_pinyin.schema.custom.yaml文件,而是直接进行了修改,具体如下:
    鼠须管设置
    看红线那一行,增加#注释掉,然后保存文件,重新部署即可,之后就无法通过Shift键切换中英文状态了。

    修改输入法切换快捷键

    之前我们已经通过Karabiner-Elements将右Command键设置成了单按发送F17键,我们打开系统偏好设置——键盘,切换到快捷键选项卡,找到右侧列表中的输入法,双击右侧列表中的选择上一个输入法,点击右Command,修改快捷键:
    修改切换输入法快捷键

    输入法状态提示

    通过上面的设置,我们已经基本实现目标,但由于macOS输入法并不像Windows类似会显示一个输入法面板,很多时候我们并不知道当前是中文状态还是英文状态,这就需要某些工具的辅助。

    经过了解,有一个isHUD是为此目的设计的,实现的是每次切换输入法都在屏幕中间出现一个类似系统自带的切换信息提示,收费6元,有想尝试的朋友可以尝试一下。这里我们选择的是ShowyEdge,全免费,通过设置能实现比isHUD更好的效果。

    ShowyEdge能够在屏幕显示一块颜色块,可大可小,颜色透明度均可自定义。

    安装ShowyEdge

    万能的Homebrew Cask可以安装这款工具,打开终端,输入

    brew cask install showyedge
    

    稍等片刻,就可以完成安装。

    未安装Homebrew Cask的朋友可以从这里下载

    设置ShowyEdge

    打开软件,界面很简单,点击左下方的Add custom color就能把当前输入法添加进去,由于我们只有两种输入法,因此只要将中文输入法添加进去进行提示就可以,当没有提示的时候,就是英文状态,如果你有多种输入法,也可以都添加进去。

    ShowyEdge设置

    之后我们要做的就是:

    • 将高度设置为1,即正好覆盖整个菜单栏
    • 选择颜色,我是直接从最右侧的画笔提供的颜色中选择了Aqua
    • 切换到Advanced选项卡调整透明度,只要你认为有足够区分度就可以

    ShowyEdge设置

    设置完成效果:
    英文状态
    中文状态

    感谢

    本文的内容部分参考了以下文章,向作者表示感谢: