¿Cómo puedo configurar ubuntu para volver al inglés después de unos minutos de inactividad?

¿Cómo puedo configurar ubuntu para volver al inglés después de unos minutos de inactividad?

Estoy usando Ubuntu desde hace varios años y lo disfruto enormemente. Me gano la vida desarrollando software en PHP y Javascript.

La única molestia menor que tengo es que me gustaría que la PC volviera a cambiar al inglés como idioma principal del teclado, ya que a veces lo olvido en hebreo y luego, cuando vuelvo a escribir algún comando de shell o simplemente lo desbloqueo, noto que está en el otro idioma después de presionar Enter.

Podrías descartar esto como un caso realmente extremo, pero tengo curiosidad por saber si hay un script que pueda escribir para configurar un temporizador que, después de una cierta cantidad de inactividad del teclado (podría estar leyendo algún libro electrónico y usando el mouse), vuelva a mi valor predeterminado. idioma que es el inglés en la configuración del teclado.

Una ventaja sería si pudiera excluir las teclas de flecha y las teclas de avance de página y similares del script y dejar que el cronómetro siga funcionando si se presionan esas teclas.

Respuesta1

Esto es muy posible, con la ayuda de un script en segundo plano, usando xprintidle, que devuelve el tiempo de inactividad actual.

Primero deberá instalarlo:

sudo apt-get install xprintidle

El siguiente script lee el resultado del comando xprintidley configura su teclado cada vez que pasa el tiempo establecido.

Cómo configurar el teclado (índice)

Para crear el comando correcto, el script necesita conocer el índice del teclado de destino. Para conseguirlo, ejecute el comando:

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

La salida será algo como:

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

Ahora, si desea configurar el último después de x tiempo, su índice es 2, ya que el primer elemento de una lista siempre es 0.

Cómo utilizar el guión

  1. Como se mencionó, primero instalexprintidle
  2. Copie el siguiente script en un archivo vacío
  3. En la sección principal del script, establezca:
    • el índice del idioma del teclado de destino, como se explicó anteriormente
    • el tiempo de inactividad después del cual cambiará el idioma del teclado (en segundos)
  4. Guarde el guión comochange_kb.py
  5. Pruébelo desde una terminal con el comando:

    python3 /path/to/change_kb.py
    
  6. Si todo funciona como se esperaba, agréguelo a sus aplicaciones de inicio: Dash > Aplicaciones de inicio > Agregar

La secuencia de comandos

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

información relacionada