Ubuntu 18.04: como alterar o layout do teclado de um script?

2

No Ubuntu 16.04, a seguinte coisa funcionou:

/usr/bin/gsettings set org.gnome.desktop.input-sources current 0

Mas depois de atualizar para o 18.04, ele não funciona mais.

    
por Ivan G. 24.05.2018 / 21:29

2 respostas

1

Este método de troca de layouts de teclado foi descontinuado. O novo, apenas ligeiramente mais enigmático é este:

gdbus call --session --dest org.gnome.Shell \
    --object-path /org/gnome/Shell \
    --method org.gnome.Shell.Eval \
    "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"

(créditos: link )

O número em inputSources[1] define qual layout você deseja. Portanto, se você tiver dois layouts diferentes configurados, será 0 ou 1. Você pode obter uma lista dos layouts configurados usando este comando:

$ gsettings get org.gnome.desktop.input-sources sources
[('xkb', 'us+intl-unicode'), ('xkb', 'us')]
    
por Sebastian Stark 24.05.2018 / 22:06
1

A resposta do Sebastian é ótima, posso confirmar que funciona muito mais rápido que o método anterior que usei:

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us')]"
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ru'), ('ibus', 'googlepinyin')]"

Para esclarecer sua resposta, o número entre colchetes ( inputSources[1] ) é a partir de 0, no meu caso 0 serão nós, 1 ru e 2 pinyin no código a seguir:

#!/bin/bash
gdbus call --session --dest org.gnome.Shell \
    --object-path /org/gnome/Shell \
    --method org.gnome.Shell.Eval \
    "imports.ui.status.keyboard.getInputSourceManager().inputSources[1].activate()"

Você pode armazenar scripts de shell para cada comutador de idioma em seu diretório inicial, por exemplo, /home/nome_do_usuário/.keyboard/langXX.sh. Lembre-se de permitir a execução deles.

Em seguida, você precisa adicionar atalhos em Configurações / Dispositivos / Teclado / Atalhos personalizados: Screenshot

    
por Timofey Bugaevsky 07.09.2018 / 07:27