
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 xprintidle
y 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
- Como se mencionó, primero instale
xprintidle
- Copie el siguiente script en un archivo vacío
- 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)
- Guarde el guión como
change_kb.py
Pruébelo desde una terminal con el comando:
python3 /path/to/change_kb.py
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