V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qgy18
V2EX  ›  Apple

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

  •  
  •   qgy18 · 2015-07-11 23:13:55 +08:00 · 7031 次点击
    这是一个创建于 3452 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    看了下那个 private.xml,karabiner 好强大,多谢二位分享~
    @avalon
    @Sylv
    Sylv
        17
    Sylv  
       2015-07-12 11:13:39 +08:00   ❤️ 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  
       2015-07-12 12:15:35 +08:00
    @qgy18 哈,了解了,看的太快漏了半句。
    xuc
        19
    xuc  
       2015-07-12 13:14:15 +08:00
    我的键盘驱动有这个功能
    ansel
        20
    ansel  
       2015-07-12 14:20:51 +08:00
    百度输入法
    txl263
        21
    txl263  
       2015-07-12 22:56:00 +08:00
    上github上问了一下Hammerspoon还真不能显示caps lock的状态
    qgy18
        22
    qgy18  
    OP
       2015-07-12 23:02:10 +08:00
    @txl263 谢谢哈~ Caps Lock 是有指示灯,但是打字的时候低头去看确实不方便啊。只能先这样了。
    txl263
        23
    txl263  
       2015-07-12 23:07:51 +08:00
    话说,一定要用系统自带的输入法么,其它的有问题?QQ啊搜狗啊,都有中英文切换提示的嘛。。
    Vicia
        24
    Vicia  
       2015-09-04 01:46:16 +08:00
    @Sylv 多谢思路。 Karabiner 切换到中文输入法时仍然输出英文的 bug 终于解决了,非常感谢!
    Sylv
        25
    Sylv  
       2015-09-04 04:32:51 +08:00 via iPhone
    @Vicia 很高兴能有帮助。
    ruanjf
        26
    ruanjf  
       2015-11-23 14:11:47 +08:00
    <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  
       2015-11-23 14:42:29 +08:00 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
       2015-11-23 20:19:21 +08:00
    我最终还是改用「 RIME | 中州韻輸入法引擎」了,貌似所有的问题都解决了。
    http://rime.im/

    感谢各位,尤其是:

    @Sylv
    @ruanjf
    tortoo
        29
    tortoo  
       2017-04-08 17:54:59 +08:00
    @Sylv 打扰问个 growl 的使用问题,它能否一直停留在桌面?而不是几秒后消失?
    Hoson
        30
    Hoson  
       2017-11-06 19:23:02 +08:00
    @qgy18 请问一下 RIME 可以大小写提示吗?我下载了没看到这样到配置
    Hoson
        31
    Hoson  
       2017-11-08 10:22:08 +08:00
    @Hoson Capsee 反应太慢,Captin 免费的还不错,还有 Appstore 里面搜 cap,有几款收费软件。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   921 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:46 · PVG 03:46 · LAX 11:46 · JFK 14:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.