Aquí está mi configuración de entrada (observe el orden de los idiomas en la lista, cuál es mi preferencia).
Ahora, inicialmente, cuando invoco el acceso directo para cambiar la entrada, la lista se ve así (como se esperaba):
Ahora selecciono la entrada en coreano (segundo elemento) y vuelvo a invocar el atajo de cambio. Así es como se ve la lista:
Como puedes ver el orden cambió.
Y ahora, si selecciono otra entrada e intento cambiar nuevamente, la lista cambia por completo.
¿Hay alguna manera de evitar que gnome reorganice la lista todo el tiempo?
Creo que vale la pena mencionar que mi trabajo se trata de idiomas y cambio de idioma todo el tiempo (buscando un carácter chino, volviendo al teclado en inglés, volviendo a un diccionario coreano para encontrar una definición, etc...), encontré que el cerebro recuerda más fácilmente la ubicación de los idiomas en la lista que lo que realmente está escrito, y así es como lo hace Windows.
Desearía que hubiera una manera de solucionarlo; de lo contrario, tendría que informarlo como un problema en el sitio web de gnome.
Gracias de antemano.
Respuesta1
Desde entonces, no existe una extensión gnome-Shell a partir de ahora para el cambio estático de la distribución del teclado usando los atajos predeterminados Super+Espacio y Mayús+Super+Espacio.
y los comentarios sobre este enlaceOrden estático del cambio de distribución del teclado en Ubuntu 17.10 y versiones posteriores con GNOME 3de OP
El problema con la solución propuesta en el enlace (Alt+Shift) es que carece de retroalimentación visual y no puede usar el acceso directo para la entrada anterior (como win+shift+espacio para retroceder una entrada). Entonces no es realmente satisfactorio.
Podría lograr al menos un punto de dos (comentarios visuales y volver al diseño anterior) con la siguiente solución.
Solución alterna
Sistema operativo: Ubuntu 19.10
Cree dos scripts con los contenidos siguientes, los he denominado "SuSpace.sh" y "ShSuSpace.sh".
SuSpace.sh
#!/bin/bash
totalLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources.length" | grep -oP "(?<=').*?(?=')")
currentLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().currentSource.index" | grep -oP "(?<=').*?(?=')")
declare -i math=$currentLang+1
if [ "$math" -lt "$totalLang" ]; then
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources["$currentLang+1"].activate()"
else
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources[0].activate()"
fi
ShSuSpace.sh
#!/bin/bash
totalLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager()._mruSources.length" | grep -oP "(?<=').*?(?=')")
currentLang=$(gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().currentSource.index" | grep -oP "(?<=').*?(?=')")
declare -i math=$currentLang-1
if [ "$math" -eq -1 ]; then
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources["$totalLang-1"].activate()"
else
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval "imports.ui.status.keyboard.getInputSourceManager().inputSources["$currentLang-1"].activate()"
fi
Puede crear accesos directos personalizados para estos dos scripts según sus deseos.