3 votos

Cambiar de teclado cada vez que se selecciona iTerm

Utilizando Applescript o Automator, ¿es posible cambiar el teclado del software (fuente de entrada) a un determinado teclado (fuente de entrada) cada vez que iTerm pasa a primer plano?

El escenario es el siguiente

  • Hago clic en la ventana de iTerm
  • La ventana de iTerm pasa a primer plano
  • Un script cambia el teclado(fuente de entrada) a uno que yo especifique

2voto

Fuzzy Purple Monkey Puntos 702

Por ejemplo, podría guardar este plist 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>

A continuación, ejecute launchctl load ~/Library/LaunchAgents/itermchangeinput.plist .

También puedes usar un shell script 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

Sin embargo, puede ser menos eficiente porque ejecuta dos nuevos procesos cada segundo.

El entrada original del blog sobre changeInput fue borrado por el autor, pero subí el binario a http://19a5b0.s3-website-us-west-2.amazonaws.com/changeInput.tgz .

Si siempre cambias a iTerm con un atajo de teclado (como F7), podrías usar un private.xml así 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/ ).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X