Come modificare la sorgente di input in una lingua diversa con un collegamento (una sola combinazione di tasti)?

1

Voglio usare quattro lingue nel mio sistema OS X (inglese, spagnolo, cinese e giapponese) e so che posso cambiare la lingua con + Space . Tuttavia, ho un odio patologico per il passaggio ad esso, perché mi impone di scegliere tra così tante scelte! So anche che posso cambiarlo dalla barra dei menu a destra della barra, ma è molto più disgustoso della soluzione + Space .

Quindi preferisco cambiarlo con una scorciatoia più semplice, come la seguente:

  • left passa all'inglese
  • right passa allo spagnolo
  • left + left + C passa al cinese
  • destra + destra + C passa al giapponese.

Ho provato a usare Karabiner (il discendente da KeyRemap4MacBook ), ma non funziona al primo tentativo in cinese, sul quale quando si passa al cinese, rimane in inglese (l'icona della sorgente di input sul la barra dei menu cambia, ma la tastiera non funziona). Ma per qualche motivo, se cambio da inglese a cinese a inglese a cinese (due tentativi), la tastiera cinese funziona finalmente.

Quindi non mi piace l'idea di usare Karabiner . Quindi qual è il modo migliore per cambiare la sorgente di input?

    
posta Blaszard 19.09.2014 - 11:27
fonte

2 risposte

3

Ho incontrato lo stesso problema con cinese e giapponese. (L'icona sulla barra dei menu è cambiata ma la sorgente di input non è stata effettivamente modificata finché non sono passato a un'altra sorgente di input e viceversa.) È un bug noto in base a un post alla mailing list di Karabiner :

It's one of the most annoying bug of OS X.

Changing CJK input sources directly from program is not handled appropriately.

So, you need the following procedures.

Step1:
Enable "Select next source in Input menu" (command-option-space) on System Preferences > Keyboard > Shortcuts.

Step2:
Change input source by sending command-option-space.

<autogen>
  __KeyToKey__
  KeyCode::K, ModifierFlag::OPTION_L,
  KeyCode::VK_CHANGE_INPUTMODE_US,
  KeyCode::VK_WAIT_100MS,
  KeyCode::SPACE, ModifierFlag::COMMAND_R | ModifierFlag::OPTION_L,
  <!-- adjust wait for your machine -->
  KeyCode::VK_WAIT_10MS,
  KeyCode::VK_WAIT_10MS,
  KeyCode::VK_WAIT_10MS,
  KeyCode::SPACE, ModifierFlag::COMMAND_R | ModifierFlag::OPTION_L,
  <!-- adjust wait for your machine -->
  KeyCode::VK_WAIT_10MS,
  KeyCode::VK_WAIT_10MS,
  KeyCode::VK_WAIT_10MS,
  KeyCode::SPACE, ModifierFlag::COMMAND_R | ModifierFlag::OPTION_L,

  Option::NOREPEAT,
</autogen>

changeinput è influenzato dallo stesso bug.

Un'altra soluzione è passare a un'altra fonte di input e viceversa:

<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
    <inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_SPANISH</name>
    <inputsourceid_equal>com.apple.keylayout.Spanish</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_US</name>
    <inputsourceid_equal>com.apple.keylayout.US</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_CHINESE</name>
    <inputsourceid_equal>com.apple.inputmethod.TCIM.Pinyin</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>inputsources</name>
    <identifier>inputsources</identifier>
    <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_L, ModifierFlag::COMMAND_L | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_US, KeyCode::COMMAND_L</autogen>
    <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, ModifierFlag::COMMAND_R | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_SPANISH, KeyCode::COMMAND_R</autogen>
    <autogen>__KeyToKey__ KeyCode::C, ModifierFlag::OPTION_L | ModifierFlag::COMMAND_L | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_CHINESE, KeyCode::VK_CHANGE_INPUTSOURCE_US, KeyCode::VK_CHANGE_INPUTSOURCE_CHINESE</autogen>
    <autogen>__KeyToKey__ KeyCode::C, ModifierFlag::OPTION_R | ModifierFlag::COMMAND_R | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA, KeyCode::VK_CHANGE_INPUTSOURCE_US, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
  </item>
</root>
    
risposta data 06.10.2014 - 14:53
fonte
0

è una chiave "morta", un tasto modificatore. Non fa nulla da solo, anche se in quanto tiene conto di quante volte è stato premuto, sarebbe probabilmente il motivo per cui funziona al secondo tentativo.

Altro al punto ... perché dovresti usare per cambiare lingua di input, eliminando così il suo uso per qualsiasi altra funzione.

Perché non usare i tasti F, forse, invece?

Una soluzione migliore potrebbe essere una di queste ...

link

    
risposta data 19.09.2014 - 14:14
fonte

Leggi altre domande sui tag