Cambiar el teclado cada vez que se selecciona iTerm

3

Usando Applescript o Automator, ¿es posible cambiar el teclado del software (Fuente de entrada) a un teclado determinado (fuente de entrada) cada vez que iTerm se convierte en primer plano?

El escenario es el siguiente

  • Hago clic en la ventana de iTerm
  • La ventana de iTerm se pone en primer plano
  • Un script cambia el teclado (fuente de entrada) a uno que yo especifique
pregunta Heartinpiece 17.02.2014 - 07:20

1 respuesta

2

Por ejemplo, puedes guardar esta lista como ~/Library/LaunchAgents/itermchangeinput.plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>itermchangeinput</string>
  <key>ProgramArguments</key>
  <array>
    <string>osascript</string>
    <string>-e</string>
    <string>set prev to missing value
repeat
    set cur to name of application (path to frontmost application as text)
    if cur is "iTerm" and prev is not "iTerm" then do shell script "changeInput U.S."
    delay 1
    set prev to cur
end repeat</string>
  </array>
  <key>RunAtLoad</key>
  <true/>
  <key>KeepAlive</key>
  <true/>
</dict>
</plist>

Luego ejecuta launchctl load ~/Library/LaunchAgents/itermchangeinput.plist .

También puedes usar un script de shell como este:

while sleep 1;do cur=$(lsappinfo find ASN=$(lsappinfo front)|cut -d\" -f2);[[ $cur = iTerm && $prev != iTerm ]]&&changeInput U.S.;prev=$cur;done

Aunque podría ser menos eficiente porque ejecuta dos nuevos procesos cada segundo.

El la publicación del blog original sobre changeInput fue eliminada por el autor, pero subí el archivo binario a enlace .

Si siempre cambia a iTerm con un método abreviado de teclado (como F7), puede usar un private.xml me gusta esto con KeyRemap4MacBook :

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_ITERM</name>
    <url>file:///Applications/iTerm.app</url>
  </vkopenurldef>
  <inputsourcedef>
    <name>US</name>
    <inputsourceid_prefix>com.apple.keylayout.US</inputsourceid_prefix>
  </inputsourcedef>
  <item>
    <name>test</name>
    <identifier>test</identifier>
    <autogen>__KeyToKey__ KeyCode::F7, ModifierFlag::NONE, VK_OPEN_URL_ITERM, VK_CHANGE_INPUTMODE_US</autogen>
  </item>
</root>

Puede ver los ID de las fuentes de entrada con EventViewer ( /Applications/KeyRemap4MacBook.app/Contents/Applications/EventViewer.app/ ).

    
respondido por el user495470 17.02.2014 - 08:03

Lea otras preguntas en las etiquetas