Crear atajo de teclado en i3 para cambiar el layout de teclado

Script de cambio de layout en php

Creamos un archivo en php, llamado keyboard.php y lo ubicamos en una ruta, por ejemplo /home/aaa/:

Con el siguiente contenido:

    <?php

    $layout = trim(explode(':', shell_exec('setxkbmap -query | grep layout'))[1]);

    if($layout === 'es')
    {
        shell_exec('setxkbmap us');
        shell_exec('notify-send -r 69696 "Teclado US"');
    }
    else
    {
        shell_exec('setxkbmap es');
        shell_exec('notify-send -r 69696 "Teclado ES"');
    }

Una vez hecho esto, si llamamos al script haciendo uso de un interprete php veremos la notificación informando del cambio de layout de ES a US y de US a ES.

Atajo de teclado desde i3

Editamos el archivo ~/.i3/config y agregamos la siguiente línea:

bindsym $mod+o exec php /home/aaa/keyboard.php

Así quedará vinculada la conbinación de teclas Super + Tecla O, al cambio de layout

Pero para que funcione debería reiniciarse i3 o alternativamente usar la combinación de teclas Shift + Super + C

Última actualización: 19 de Octubre de 2023 a las 15:59 (CET)