Configurando teclas de atalho para mudar o idioma [duplicado]

1

Como posso definir o Caps Lock para definir o idioma russo e Shift + Caps Lock para definir inglês? Não apenas Ctrl + Shift para alterná-los.

    
por Rostislav 06.07.2016 / 19:39

2 respostas

2

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 )
    
por Sergiy Kolodyazhnyy 06.07.2016 / 21:00
1

Até onde sei, tudo o que você pode mudar é alternar para o próximo idioma. Você pode fazer isso clicando na tela do idioma na barra de tarefas e selecionando Configurações de Entrada de Texto.

Lá você tem duas opções:

Switch to next source using:
Switch to previous source using:

Ao alterá-los, você pode alternar entre os idiomas. Se você tiver apenas dois idiomas, só precisará definir o primeiro (já que o segundo não adicionará à sua funcionalidade).

No seu caso, você pode definir o caps lock como alternar para a próxima fonte e mudar + caps como alternar para a fonte anterior.

Se eu puder sugerir algo, no entanto, seria apenas definir o comutador para a próxima origem como shift + caps. Dessa forma, ao digitar um documento atingindo o caps lock, o idioma não será alterado, permitindo a troca mais fácil entre caracteres maiúsculos e não maiúsculos. Shift + Caps sempre mudará de russo para inglês e inglês para russo sempre que você pressioná-lo.

    
por Karsus 06.07.2016 / 19:54