2 votos

¿Cómo cambiar el idioma de entrada del teclado desde el terminal?

Ya tengo una forma de hacerlo:

function input-switch-darwin() {
    cliclick kd:ctrl kp:space ku:ctrl
}

Pero esto es muy lento:

 time cliclick kd:ctrl kp:space ku:ctrl
cliclick kd:ctrl kp:space ku:ctrl  0.02s user 0.03s system 13% cpu 0.434 total; max RSS 7088

2 votos

Eche un vistazo a esta respuesta ¿Cambiar la distribución del teclado OSX ("fuente de entrada") mediante programación a través de terminal o AppleScript? . Acabo de probarlo, el código en "Adicionalmente", y funciona más rápido que: cliclick kd:ctrl kp:space ku:ctrl . Dicho esto, mientras estoy en Terminal Si pulsas ctrl+espacio, cambiarás entre los dos diseños que tengo, ¿por qué no puedes pulsar las teclas físicamente?

0voto

HappyFace Puntos 38

Gracias al consejo de @user3439894, encontré una respuesta (necesitas ripgrep y https://github.com/myshov/xkbswitch-macosx instalado):

ec() print -r -- "$@"
ecerr() { ec "$@" 1>&2 }

function input-lang-set-darwin() {
    # https://github.com/myshov/xkbswitch-macosx
    # `hyperfine --warmup 5 'xkbswitch -s 3' 'xkbswitch -s 0' 'xkbswitch -se Persian-ISIRI2901' 'xkbswitch -se US'`
    # they all ran about the same 77ms
    local wanted="${1:l}" to='US'
    case "$wanted" in
        en*) to=US ;;
        fa*|per*) to='Persian-ISIRI2901' ;;
        toggle*)
            case "$(input-lang-get-darwin)" in
                U.S.) to='Persian-ISIRI2901' ;;
                Persian*) to='US' ;;
            esac
        ;;
        *) ecerr "Not supported" ; return 1 ;;
    esac
    xkbswitch -se "$to"
}
function input-lang-get-darwin() {
    defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | command rg -e '"KeyboardLayout Name" = "([^"]*)"' --replace '$1' --only-matching --color never
}

Otra opción es https://github.com/Lutzifer/keyboardSwitcher pero no pude construirlo sin xcode.

0 votos

¿Podría explicar por qué no utiliza simplemente el Espacio de Control?

0 votos

@TomGewecke Quería añadir un botón de alternancia de entrada a la barra táctil. Otro uso era cambiar automáticamente a inglés si escribo algo que no sea inglés en el terminal, pero me lo estoy replanteando. Además, no me resulta tan fácil pulsar ctrl-espacio, ya que tengo las manos algo incapacitadas.

0 votos

Una sola cosa para tocar en la barra táctil en lugar de dos teclas me parece bien. Sobre todo si utilizo tres o más teclados y quiero elegir cualquiera con un solo toque entre tres o más iconos de la barra táctil.

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