O código python abaixo deve ser vinculado a dois atalhos diferentes. Por exemplo, para o inglês, ligue Ctrl + Alt + 1 para
python /path/to/script us
E para o russo, ligue Ctrl + Alt + 2 para
python /path/to/script ru
Para mais informações sobre como configurar atalhos, leia a resposta de Luis Alvarado
Embora, na realidade, a configuração da fonte de entrada dependa de um índice de fontes na matriz gsettings, esse script determina o índice de cada fonte de forma automática e apropriada
Código fonte do script
from gi.repository import Gio
import sys
def gsettings_get(schema,path,key):
if path is None:
gsettings = Gio.Settings.new(schema)
else:
gsettings = Gio.Settings.new_with_path(schema,path)
return gsettings.get_value(key)
def gsettings_set(schema,path,key,value):
if path is None:
gsettings = Gio.Settings.new(schema)
else:
gsettings = Gio.Settings.new_with_path(schema,path)
return gsettings.set_uint(key,value)
sources = list(gsettings_get('org.gnome.desktop.input-sources', None ,'sources' ))
index = 0
for source in sources:
for item in source:
if sys.argv[1] == item:
index = sources.index(source)
gsettings_set( 'org.gnome.desktop.input-sources' , None, 'current',index )