Como posso configurar o ubuntu para voltar ao inglês depois de alguns minutos de inatividade?

3

Estou usando o Ubuntu há vários anos e aproveito imensamente. Estou desenvolvendo software em PHP e Javascript para ganhar a vida.

O único aborrecimento que eu tenho é que eu gostaria que o PC mudasse de volta para mim para o inglês como a principal linguagem de teclado, já que às vezes eu esqueço em hebraico e quando eu volto para digitar algum comando shell ou apenas destravar eu observe que está no outro idioma depois que eu pressionar Enter.

Você pode ignorar isso como um caso realmente difícil, mas estou curioso para saber se há um script que eu possa escrever para definir um cronômetro que, depois de uma certa inatividade do teclado (talvez eu esteja lendo algum ebook e use o mouse) para o meu idioma padrão, que é o inglês nas configurações do teclado.

Um bônus seria se eu pudesse excluir as teclas de seta e as teclas page-down e semelhantes do script e deixar o timer continuar marcando se essas teclas fossem pressionadas.

    
por Ami Heines 12.03.2015 / 07:17

1 resposta

2

Isso é muito bem possível, com a ajuda de um script de segundo plano, usando xprintidle , que retorna o tempo ocioso atual.

Você precisará instalá-lo primeiro:

sudo apt-get install xprintidle

O script abaixo lê a saída do comando xprintidle e configura seu teclado sempre que o horário definido é passado.

Como configurar o teclado (índice)

Para criar o comando correto, o script precisa conhecer o índice do teclado de destino. Para obter isso, execute o comando:

gsettings get org.gnome.desktop.input-sources sources

A saída será algo como:

[('xkb', 'us+intl'), ('xkb', 'us'), ('xkb', 'nl')]

Agora, se você quiser definir o último após x time, seu índice é 2, já que o primeiro item em uma lista é sempre 0.

Como usar o script

  1. Como mencionado, primeiro instale xprintidle
  2. Copie o script abaixo em um arquivo vazio
  3. Na seção head do script, defina:
    • o índice do idioma de teclado segmentado, conforme explicado acima
    • o tempo ocioso após o qual você alterará o idioma do teclado (em segundos)
  4. Salve o script como change_kb.py
  5. Teste-o de um terminal pelo comando:

    python3 /path/to/change_kb.py
    
  6. Se tudo funcionar como esperado, adicione-o aos seus aplicativos de inicialização: Dash > Aplicativos de inicialização > Adicionar

O script

#!/usr/bin/env python3
import subprocess
import time

#--- 
kb_id = 2       # set the targeted keyboard index (first = 0)
set_time = 300  # idle tim in seconds
#---

get_t = lambda cmd: subprocess.check_output(cmd).decode("utf-8").strip()

t1 = int(get_t(["xprintidle"]))
idle_t = set_time*1000

while True:
    time.sleep(1)
    t2 = int(get_t(["xprintidle"]))
    if all([t1<idle_t, t2>idle_t]):
        cmd = "gsettings set org.gnome.desktop.input-sources current "+str(kb_id)
        subprocess.Popen(["/bin/bash", "-c", cmd])
    else:
        pass
    t1 = t2
    
por Jacob Vlijm 12.03.2015 / 10:04