
RT。升级到 OSX 10.11 后,改用系统自带拼音输入法了。别的都很好,就是没办法通过 shift 键来临时切换到英文输入,只能按 caps lock 了。
我在想有没有办法能在切换大小写来一个屏幕通知,或者直接在状态栏显示当前 caps lock 状态,这样就不用经常低头看键盘上大小写状态了。
1 qgy18 OP 找到一个古老的 capsee,貌似可以实现我这需求,就是反应有点慢。 http://www.macupdate.com/app/mac/33343/capsee |
2 Yvette 2015-07-12 02:42:00 +08:00 歪个楼,我一般都是直接切换到英文输入法 |
3 zander 2015-07-12 03:02:59 +08:00 同上。 |
4 canautumn 2015-07-12 03:52:37 +08:00 如果需要临时切换我都是直接回车输入英文,连shift都懒得按。 |
5 txl263 2015-07-12 05:14:26 +08:00 Hammerspoon 简单的Lua脚本可以控制窗口布局,额外的功能就是楼主所需啦,很容易显示按键的屏幕通知的 |
6 txl263 2015-07-12 06:31:16 +08:00 在Hammerspoon的文档里找了一圈没看到怎么获取caps lock状态的,待我上github上问问的。话说,caps lock不是有指示灯吗? |
7 avalon 2015-07-12 07:54:09 +08:00 楼主,可以去安装 karabiner,参考 https://github.com/lwr/personal/blob/master/app-conf/Karabiner/private.xml 来实现shift切换中英文。但是状态的提示问题还是需要一个更好的解决办法。 |
8 Sylv 2015-07-12 08:14:47 +08:00 via iPhone 同楼上用 Karabiner 实现了 shift 键切换中英文输入法,用了很久了,另外实现了单按左 CMD 切换到英文输入法、单按右 CMD 切换到中文输入法,这样就不用转移视觉焦点去查看当前输入法是哪个再判断是否要按 shift,而是无脑一键就能切换到所需的输入法。 |
9 Sylv 2015-07-12 08:23:06 +08:00 via iPhone 另外显示 Caps Lock 通知的软件我试过好几个,最好用的是 App Store 上收费的 Capster,不过通知的默认样式不是很好看和简洁,但是可以通过 Growl 来更改通知的样式,为此我还花时间学了下怎么改 Growl 样式来自定义了个简洁醒目的样式。 |
11 squid157 2015-07-12 09:23:14 +08:00 el capitan下面,是输入法切换本身就有点问题的样子。。至少我这里是这样 |
15 qgy18 OP |
16 qgy18 OP |
17 Sylv 2015-07-12 11:13:39 +08:00 @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> |
18 txl263 2015-07-12 12:15:35 +08:00 @ |
19 xuc 2015-07-12 13:14:15 +08:00 我的键盘驱动有这个功能 |
20 ansel 2015-07-12 14:20:51 +08:00 百度输入法 |
21 txl263 2015-07-12 22:56:00 +08:00 上github上问了一下Hammerspoon还真不能显示caps lock的状态 |
23 txl263 2015-07-12 23:07:51 +08:00 话说,一定要用系统自带的输入法么,其它的有问题?QQ啊搜狗啊,都有中英文切换提示的嘛。。 |
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 |
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 的方法来切换输入法。 |
28 qgy18 OP |