Passa a sorgente di input specifica


23

In Mac OS X, è presente una scorciatoia da tastiera per alternare tra le fonti di input attivate.

testo alternativo

È possibile passare a una lingua specifica? Quindi, se hai 3 metodi di input, potresti avere 3 scorciatoie: Ctrl-1per l'inglese,Ctrl-2 spagnolo e Ctrl-3russo.


Il layout della tastiera e il linguaggio dell'interfaccia sono indipendenti. E poiché il linguaggio dell'interfaccia si applica solo dopo aver riavviato un programma, qualsiasi cosa ottenuta da un collegamento sarebbe negata dal requisito di riavviare le applicazioni comunque.
Daniel Beck

Non mi interessa cambiare le lingue dell'interfaccia. Sono interessanti solo le lingue di input.
Nikem,

Ho semplificato e chiarito la tua domanda. Per favore, ripristina se pensi che ho fatto qualcosa di sbagliato (sono nuovo a farlo).
Daniel Beck

Risposte:


7

Vi presento la "soluzione" più brutta possibile:

  • Abilita il supporto per i dispositivi di assistenza in Preferenze di Sistema »Accesso universale ,
  • e visualizzare il menu Sorgenti di input nella barra dei menu in Preferenze di Sistema »Lingua e testo .
  • Assicurarsi che il collegamento Ctrl-F8sia definito per Sposta lo stato attivo nei menu di stato in Preferenze di Sistema »Tastiera» Tasti di scelta rapida »Tastiera e immissione testo .
  • Assicurarsi che il menu Sorgenti di input sia la voce di menu più a sinistra che può essere spostata trascinando mentre si tiene premuto Cmd premuto.

Usa AppleScript Editore scrivi tre script, ognuno con il seguente codice:

tell application "System Events"
    key code 100 using control down # press Ctrl-F8
    delay 0.5 # wait a bit, UI might be slow
    key code 125 # press down to open the menu
    keystroke "german" # name of your desired language, in my case tested using German
    key code 36 # press enter
end tell

Salva una volta per ogni lingua, cambiando il nome della lingua. Se si desidera premere tasti diversi o assegnare qualcosa di diverso da Ctrl-F8, sostituire con i codici chiave qui . Puoi anche spostare il menu Sorgenti di input dalla sua posizione più a sinistra inserendo alcune frecce a destra pressioni del tasto .

Richiama gli script come preferisci, ad esempio usa il tuo launcher dell'applicazione (Quicksilver, Launchbar ecc.), Oppure avvolgili nei Servizi usando Automator e assegna loro le scorciatoie da tastiera in Preferenze di Sistema »Tastiera» Scorciatoie da tastiera »Servizi .


1
@Nikem Ha funzionato?
Daniel Beck

1
Sì, ha funzionato.
Nikem,

1
Anda, Daniel, anche se ho scelto un'altra soluzione, grazie comunque per avermi fatto conoscere Action Script and Services :)
Nikem,

@Nikem Prego. Per favore vota in alto la mia risposta facendo clic sul "triangolo freccia in alto" accanto ad essa se trovi utile questa risposta. Puoi anche accettare una risposta (indicando che è la risposta che ti piace di più e considerare risolto il problema) facendo clic sul segno di spunta accanto ad essa. A proposito, ActionScript è Adobe, questo è AppleScript.
Daniel Beck

@Daniel In effetti, non so quale risposta raccomandare. Ho scelto il mio, ma il tuo è più ampiamente utilizzabile ...
Nikem

12

Ho trovato una soluzione un po 'più bella in AppleScript, dato che conosci il nome del layout della tastiera a cui vuoi passare. Crea una funzione come questa:

on changeKeyboardLayout(layoutName)
 tell application "System Events" to tell process "SystemUIServer"
   tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)}
 end tell
end changeKeyboardLayout

e poi chiamalo da

 changeKeyboardLayout("English")
 changeKeyboardLayout("German")

Tenere presente che i nomi dei layout di tastiera sono localizzati, ovvero su un sistema tedesco l'esempio sopra riportato dovrebbe chiamare "Englisch" e "Deutsch".


Decisamente più bello del mio. Dovrei davvero imparare il mio AppleScript correttamente.
Daniel Beck

questo ha funzionato perfettamente per molti anni ma con Catalina sembra che il "testo di input" non sia più accessibile nella barra dei menu
Frank Mittelbach il

6

Un'opzione sarebbe quella di scaricare changeInput e assegnare scorciatoie a comandi della shell similichangeInput U.S. .

Puoi anche usare KeyRemap4MacBook:

<?xml version="1.0"?>
<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
    <inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>change_inputsources</name>
    <identifier>change_inputsources</identifier>
    <autogen>__KeyToKey__ KeyCode::E, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH</autogen>
    <autogen>__KeyToKey__ KeyCode::H, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
  </item>
</root>

Vedi il documentazione di private.xml .

VK_CHANGE_INPUTSOURCE_ENGLISH è definito in vkchangeinputsourcedef.xml . Puoi vedere gli ID delle fonti di input da EventViewer.app. Senza | ModifierFlag::NONEad esempio la prima impostazione si applicherebbe anche a option-command-E. Vedere l'origine per i valori del codice tasto e le impostazioni predefinite .


4

So che è una vecchia domanda. Ma anche alla fine del 2016, non ho ancora trovato una soluzione semplice e piacevole. Pertanto, ho fatto IMEShortcuts , funziona su Sierra. È possibile assegnare un collegamento personalizzato per qualsiasi metodo di input specifico. Per favore, provaci. E se voi ragazzi trovate qualche bug, sarei felice di aiutarvi.

Inoltre, Karabiner (noto come KeyRemap4MacBook) è un ottimo personalizzatore di tastiera per Mac. Ma è un po 'complicato e attualmente rotto su Sierra. Se stai usando Yosemite o El Capitan, sarebbe un'altra buona scelta.


Grazie per i tagli dell'IMES! È molto carino. Sarei lieto di pagare $ 5 o giù di lì se aggiungessi icone alla barra dei menu per mostrare il linguaggio attivo (quindi non avrei bisogno di ENTRAMBI i cortometraggi e l'icona dell'app nella mia barra dei menu che occupa spazio). Vorrei anche essere in grado di personalizzare l'icona utilizzata, ad esempio voglio usare l'input del francese canadese perché è più vicino a QWERTY degli Stati Uniti, ma voglio vedere una bandiera francese perché una bandiera canadese non simboleggia "francese" per me. Queste cose lo renderebbero fantastico!
iconoclasta,

Avvertenza: se non hai già scaricato IMEShortcuts in passato (prima che la registrazione del dominio scadesse e venisse sostituita da una pagina abusiva con malware con estensione chrome), non prendere nulla da rockcell.com fino a quando non è stato risolto.
ecmanaut

1

Ho un'altra soluzione che mi ha soddisfatto di più. KeyRemap4MacBook è un'applicazione che ti consente di rimappare i pulsanti della tastiera. Tra le altre cose, consente ad alcuni, per niente esaustivi, supporto per il cambio di lingua. Quindi abbiamo una configurazione personalizzata che fa quello che voglio.

Contro: - applicazione di terze parti - solo supporto linguistico limitato per ora

Pro: - Concettualmente un po 'più bello dello script in esecuzione sull'interfaccia utente


Non ho trovato nulla legato all'uso flessibile delle fonti di input sul sito web, solo alcune azioni codificate relative al russo / inglese. Puoi elaborare?
Daniel Beck

Non è flessibile Succede solo che supporta il passaggio all'inglese e al russo (e ora estone), che sono le lingue di cui avevo bisogno. E ti consente di mappare combinazioni di tasti arbitrarie a tali azioni. Passare alla lingua nel mio caso.
Nikem,

Non riesco a trovare il modo di installarlo con Karabiner.
Ivan Balashov,

1

Su AppleScript devi solo prendere cmd + "spazio" (o qualcos'altro, ciò che cambi sorgente della tastiera).

E tutto ciò di cui hai bisogno:

    key code 49 using command down

49 - codice del pulsante 'spazio' in ASCII per AppleScript.

PS: non dimenticare di ottenere l'accesso per l'utilità AppleScript in Preferenze di Sistema.


1

Ho trovato kawa - un'app abbastanza semplice per soddisfare esattamente le tue esigenze. Collegamenti di installazione per passare direttamente alla sorgente di input necessaria.


1
Benvenuto in Super User. Leggere Come consigliare il software, quindi modificare la risposta per includere almeno le informazioni minime richieste (gli elementi in grassetto ). I post senza queste informazioni possono essere soggetti a cancellazione. Grazie per aver contribuito.
Dico Reintegrare Monica il

0

Questo link ha un video su come farlo. Ha già un hotcake con "comando + spazio", ma il tasto di scelta rapida spotlight è anche "comando + spazio". Spotlight sovrascrive il tasto di scelta rapida, quindi il cambio di lingua non si verifica. Il video nel collegamento mostra come modificare il tasto di scelta rapida in modo da poter attivare il tasto di scelta rapida.

In bocca al lupo,


1
Sa già come passare da una lingua all'altra, vuole passare a una lingua specifica , poiché probabilmente ne ha attivate più di 2.
Daniel Beck

Sì, esattamente come ha detto Daniel. Ho 3 lingue di input e devo selezionarne una specifica.
Nikem,

Scusa ... devo aver frainteso la domanda. Pensavo stessi cercando di trovare un modo per alternare tra le lingue con un tasto di scelta rapida.
David,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.