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 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> |
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 |