Como posso configurar o Ubuntu para voltar ao inglês após alguns minutos de inatividade?

Como posso configurar o Ubuntu para voltar ao inglês após alguns minutos de inatividade?

Estou usando o Ubuntu há vários anos e gosto muito dele. Estou desenvolvendo software em PHP e Javascript para viver.

O único pequeno aborrecimento que tenho é que gostaria que o PC voltasse para o inglês como idioma principal do teclado, já que às vezes esqueço em hebraico e quando volto para digitar algum comando shell ou apenas desbloqueá-lo, percebo que está em o outro idioma depois de pressionar Enter.

Você pode descartar isso como um caso realmente extremo, mas estou curioso para saber se há um script que eu possa escrever para definir um cronômetro que, após uma certa quantidade de inatividade do teclado (posso estar lendo algum e-book e usar o mouse), volte ao meu padrão idioma que é o inglês nas configurações do teclado.

Um bônus seria se eu pudesse excluir teclas de seta, page-down e teclas semelhantes do script e deixar o cronômetro continuar funcionando se essas teclas fossem pressionadas.

Responder1

Isso é muito bem possível, com a ajuda de um script em 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 xprintidlee configura seu teclado sempre que o tempo definido passa.

Como configurar o teclado (índice)

Para criar o comando correto, o script precisa conhecer o índice do teclado de destino. Para conseguir 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 tempo, seu índice é 2, já que o primeiro item de uma lista é sempre 0.

Como usar o script

  1. Como mencionado, primeiro instalexprintidle
  2. Copie o script abaixo em um arquivo vazio
  3. Na seção head do script, defina:
    • o índice do idioma do teclado de destino, conforme explicado acima
    • o tempo ocioso após o qual você alterará o idioma do teclado (em segundos)
  4. Salve o script comochange_kb.py
  5. Faça um teste e execute-o em 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 roteiro

#!/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

informação relacionada