qgy18
V2EX  ›  Apple

Mac 下有没有在屏幕或状态栏显示键盘大小写的软件?

  •  
  •   qgy18 · Jul 11, 2015 · 7935 views
    This topic created in 3985 days ago, the information mentioned may be changed or developed.

    RT。升级到 OSX 10.11 后,改用系统自带拼音输入法了。别的都很好,就是没办法通过 shift 键来临时切换到英文输入,只能按 caps lock 了。

    我在想有没有办法能在切换大小写来一个屏幕通知,或者直接在状态栏显示当前 caps lock 状态,这样就不用经常低头看键盘上大小写状态了。

    31 replies    2017-11-08 10:22:08 +08:00
    qgy18
        1
    qgy18  
    OP
       Jul 11, 2015
    找到一个古老的 capsee,貌似可以实现我这需求,就是反应有点慢。
    http://www.macupdate.com/app/mac/33343/capsee
    Yvette
        2
    Yvette  
       Jul 12, 2015
    歪个楼,我一般都是直接切换到英文输入法
    zander
        3
    zander  
       Jul 12, 2015
    同上。
    canautumn
        4
    canautumn  
       Jul 12, 2015
    如果需要临时切换我都是直接回车输入英文,连shift都懒得按。
    txl263
        5
    txl263  
       Jul 12, 2015
    Hammerspoon 简单的Lua脚本可以控制窗口布局,额外的功能就是楼主所需啦,很容易显示按键的屏幕通知的
    txl263
        6
    txl263  
       Jul 12, 2015
    在Hammerspoon的文档里找了一圈没看到怎么获取caps lock状态的,待我上github上问问的。话说,caps lock不是有指示灯吗?
    avalon
        7
    avalon  
       Jul 12, 2015
    楼主,可以去安装 karabiner,参考 https://github.com/lwr/personal/blob/master/app-conf/Karabiner/private.xml 来实现shift切换中英文。但是状态的提示问题还是需要一个更好的解决办法。
    Sylv
        8
    Sylv  
       Jul 12, 2015 via iPhone
    同楼上用 Karabiner 实现了 shift 键切换中英文输入法,用了很久了,另外实现了单按左 CMD 切换到英文输入法、单按右 CMD 切换到中文输入法,这样就不用转移视觉焦点去查看当前输入法是哪个再判断是否要按 shift,而是无脑一键就能切换到所需的输入法。
    Sylv
        9
    Sylv  
       Jul 12, 2015 via iPhone
    另外显示 Caps Lock 通知的软件我试过好几个,最好用的是 App Store 上收费的 Capster,不过通知的默认样式不是很好看和简洁,但是可以通过 Growl 来更改通知的样式,为此我还花时间学了下怎么改 Growl 样式来自定义了个简洁醒目的样式。
    txl263
        10
    txl263  
       Jul 12, 2015
    @Sylv 无脑一键就能切换到所需的输入法?英文怎么切换?
    squid157
        11
    squid157  
       Jul 12, 2015
    el capitan下面,是输入法切换本身就有点问题的样子。。至少我这里是这样
    Sylv
        12
    Sylv  
       Jul 12, 2015 via iPhone
    @txl263 没明白你问什么?
    txl263
        13
    txl263  
       Jul 12, 2015
    @Sylv 你不是设置了单按右 CMD 切换到中文输入法么,然后说一键就能切换到所需的输入法,我就问切换到英文用什么?
    qgy18
        14
    qgy18  
    OP
       Jul 12, 2015
    @txl263 啊,他不是写了么「单按左 CMD 切换到英文输入法、单按右 CMD 切换到中文输入法」
    qgy18
        15
    qgy18  
    OP
       Jul 12, 2015
    @avalon
    @Sylv
    我装好了 karabiner,要实现按 shift 临时切换到英文输入,是把 shift 映射为 Caps Lock 么?但是这样在英文输入状态下整个都不好了啊。
    qgy18
        16
    qgy18  
    OP
       Jul 12, 2015
    知道了,加上这个:
    <inputsource_only>CHINESE_SIMPLIFIED</inputsource_only>

    看了下那个 private.xml,karabiner 好强大,多谢二位分享~
    @avalon
    @Sylv
    Sylv
        17
    Sylv  
       Jul 12, 2015   ❤️ 2
    @qgy18
    Karabiner 自带的切换输入法的功能有点 bug,有时候切换到中文输入法后输出的还是英文。因此我采用了另外一种实现:在系统设置中更改默认切换输入法快捷键 ⌘+Space 为不存在的按键 F18,然后用 Karabiner 映射单按 shift 为 F18 来实现切换输入法。

    下面是我的实现(有简化过,因为我的需求更复杂),供参考:


    <item>
    <name>Shift Keys to Switch Input Method</name>
    <appendix>Shift keys to F18 on OS X</appendix>
    <appendix>(Works well with setting F18 to switch input method in System Preferences)</appendix>
    <identifier>private.shifts_to_switch_input_method</identifier>
    <modifier_not>
    ModifierFlag::COMMAND_L, ModifierFlag::COMMAND_R,
    ModifierFlag::OPTION_L, ModifierFlag::OPTION_R,
    ModifierFlag::CONTROL_L, ModifierFlag::CONTROL_R
    </modifier_not>
    <block>
    <!-- SHIFT_L -->
    <modifier_not>ModifierFlag::SHIFT_R</modifier_not>
    <autogen>
    __KeyOverlaidModifier__
    <!-- from -->
    KeyCode::SHIFT_L,
    <!-- hold -->
    KeyCode::SHIFT_L,
    <!-- tap -->
    KeyCode::F18
    </autogen>
    </block>
    <block>
    <!-- SHIFT_R -->
    <modifier_not>ModifierFlag::SHIFT_L</modifier_not>
    <autogen>
    __KeyOverlaidModifier__
    <!-- from -->
    KeyCode::SHIFT_R,
    <!-- hold -->
    KeyCode::SHIFT_R,
    <!-- tap -->
    KeyCode::F18
    </autogen>
    </block>
    </item>


    <!-- input source definition -->
    <inputsourcedef>
    <!-- english input method -->
    <name>ENGLISH</name>
    <languagecode>en</languagecode>
    </inputsourcedef>


    <item>
    <name>Command Keys Remappings</name>
    <appendix>Tap Command Keys to Change Input Method</appendix>
    <appendix>(Command_L to English)</appendix>
    <appendix>(Command_R to Chinese)</appendix>
    <appendix>(On OS X, use F18 to change input method)</appendix>
    <identifier>private.commands_remappings</identifier>
    <modifier_not>
    ModifierFlag::OPTION_L, ModifierFlag::OPTION_R,
    ModifierFlag::SHIFT_L, ModifierFlag::SHIFT_R,
    ModifierFlag::CONTROL_L, ModifierFlag::CONTROL_R
    </modifier_not>
    <block>
    <!-- Current is not English -->
    <inputsource_not>ENGLISH</inputsource_not>
    <!-- Command_L => F18 (tap) / Command_L (hold) -->
    <modifier_not>ModifierFlag::COMMAND_R</modifier_not>
    <autogen>
    __KeyOverlaidModifier__
    <!-- from -->
    KeyCode::COMMAND_L,
    <!-- hold -->
    KeyCode::VK_LAZY_COMMAND_L,
    <!-- tap -->
    KeyCode::F18
    </autogen>
    </block>
    <block>
    <!-- Current is English -->
    <inputsource_only>ENGLISH</inputsource_only>
    <!-- Command_R => F18 (tap) / Command_R (hold) -->
    <modifier_not>ModifierFlag::COMMAND_L</modifier_not>
    <autogen>
    __KeyOverlaidModifier__
    <!-- from -->
    KeyCode::COMMAND_R,
    <!-- hold -->
    KeyCode::VK_LAZY_COMMAND_R,
    <!-- tap -->
    KeyCode::F18
    </autogen>
    </block>
    </item>
    txl263
        18
    txl263  
       Jul 12, 2015
    @qgy18 哈,了解了,看的太快漏了半句。
    xuc
        19
    xuc  
       Jul 12, 2015
    我的键盘驱动有这个功能
    ansel
        20
    ansel  
       Jul 12, 2015
    百度输入法
    txl263
        21
    txl263  
       Jul 12, 2015
    上github上问了一下Hammerspoon还真不能显示caps lock的状态
    qgy18
        22
    qgy18  
    OP
       Jul 12, 2015
    @txl263 谢谢哈~ Caps Lock 是有指示灯,但是打字的时候低头去看确实不方便啊。只能先这样了。
    txl263
        23
    txl263  
       Jul 12, 2015
    话说,一定要用系统自带的输入法么,其它的有问题?QQ啊搜狗啊,都有中英文切换提示的嘛。。
    Vicia
        24
    Vicia  
       Sep 4, 2015
    @Sylv 多谢思路。 Karabiner 切换到中文输入法时仍然输出英文的 bug 终于解决了,非常感谢!
    Sylv
        25
    Sylv  
       Sep 4, 2015 via iPhone
    @Vicia 很高兴能有帮助。
    ruanjf
        26
    ruanjf  
       Nov 23, 2015
    <item>
    <name>官方中文输入法: 单击 Shift_L - 中英文切换</name>
    <identifier>private.remap.shiftL2change.inputsource</identifier>
    <block>
    <inputsource_only>ENGLISH</inputsource_only>
    <autogen>
    __KeyOverlaidModifier__
    KeyCode::SHIFT_L,
    KeyCode::SHIFT_L,
    KeyCode::VK_CHANGE_INPUTSOURCE_CHINESE_SIMPLIFIED
    </autogen>
    </block>
    <block>
    <inputsource_only>CHINESE_SIMPLIFIED</inputsource_only>
    <autogen>
    __KeyOverlaidModifier__
    KeyCode::SHIFT_L,
    KeyCode::SHIFT_L,
    KeyCode::VK_CHANGE_INPUTSOURCE_US
    </autogen>
    </block>
    </item>
    自己又撸了一发,还望指点指点 @Sylv
    Sylv
        27
    Sylv  
       Nov 23, 2015 via iPhone
    @ruanjf 看起来没啥大问题,不过用 VK_CHANGE_INPUTSOURCE 切换输入法可能会有问题,有时会切换到中文输入法后还是英文输入法的状态, Karabiner 文档里也有提到这个问题( https://github.com/tekezo/Karabiner/blob/af352cf4f87fd23e892aa7228e7cd677ad69d220/src/core/server/Resources/vkchangeinputsourcedef.xml ),所以我后来改用 F18 的方法来切换输入法。
    qgy18
        28
    qgy18  
    OP
       Nov 23, 2015
    我最终还是改用「 RIME | 中州韻輸入法引擎」了,貌似所有的问题都解决了。
    http://rime.im/

    感谢各位,尤其是:

    @Sylv
    @ruanjf
    tortoo
        29
    tortoo  
       Apr 8, 2017
    @Sylv 打扰问个 growl 的使用问题,它能否一直停留在桌面?而不是几秒后消失?
    Hoson
        30
    Hoson  
       Nov 6, 2017
    @qgy18 请问一下 RIME 可以大小写提示吗?我下载了没看到这样到配置
    Hoson
        31
    Hoson  
       Nov 8, 2017
    @Hoson Capsee 反应太慢,Captin 免费的还不错,还有 Appstore 里面搜 cap,有几款收费软件。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2562 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 16:00 · PVG 00:00 · LAX 09:00 · JFK 12:00
    ♥ Do have faith in what you're doing.