gh0stzk / dotfiles

BSPWM environment with 18 themes. With a theme selector to change on the fly.
GNU General Public License v3.0
3.02k stars 225 forks source link

Change keyboard layout with a keyboard shortcut #293

Closed roda404 closed 3 months ago

roda404 commented 3 months ago

Hello, I'm new to Arch Linux and I usually use Visual Studio Code, that's why I use the English keyboard layout, but sometimes I need the Spanish keyboard to put accents and the letter ñ, before installing this script I had both layouts and I could switch between them with the shortcut "right alt" but when using the script this stopped working, how can I configure that again to be able to change the layout with a keyboard shortcut?

gh0stzk commented 3 months ago

Hola, hablas español? Seguramente antes tenias un entorno de escritorio como kde o gnome, etc, y tienen esa funcion "shortcut" integrada, en los wm, carecen de todo, pero claro que se puede hacer, en una busqueda rapida encontre esto: https://www.reddit.com/r/bspwm/comments/d3gft0/cant_change_keyboard_layout/

Agrega setxkbmap -option grp:alt_shift_toggle es,us & al final del archivo bspwmrc

Otra opcion seria hacerlo con el demonio sxhkd que usa bspwm agregando esto al archivo sxhkdrc:

# Change layout
shift + space
     path/to/script/toggle_kb.sh

El script toggle_kb.sh :

#! /bin/bash

CURRENT_LAYOUT=$(setxkbmap -query|awk -F : 'NR==3{print $2}'|sed 's/ //g')

if [ "$CURRENT_LAYOUT" = "us" ]; then
    setxkbmap "es"
else
    setxkbmap "us"
fi

cambia es por latam si eres de latinoamerica. El script lo puedes guardar en ~/.config/bspwm/src/ asi esa carpeta esta dentro del PATH y ya solo tienes que llamar al script sin poner una ruta invocandolo solo con toggle_kb.sh.

Yo usaria la segunda ya que alt + shift de la primera opcion intervendria con las teclas preestablecidas en bspwm. Me dices si te sirvio.

gh0stzk commented 3 months ago

Importante no mencione, si editas el archivo sxhdrc del segundo metodo, despues de guardar los cambios, oprime super + esc super es la tecla windows. Para que se recargue el demonio sxhkd.

Y no olvides dar permisos de ejecucion al script.

roda404 commented 3 months ago

Muchas gracias, una cosa mas, me pasa que al reproducir un video en YT tengo tearing, la pantalla se ve como cortada, hay manera de solucionar eso? EN KDE Plasma no me pasaba, tengo una RX 6600 y un monitor de 75hz

roda404 commented 3 months ago

Probe el segundo metodo pero solo funciona si escribo toggle_kb.sh en la consola, no funciona el atajo del teclado y ya lo agregue en el archivo sxhkdrc y presione windows+esc

gh0stzk commented 3 months ago

Tu problema de tearing posiblemente sea mas de lo mismo, kde te configura muchas cosas por default, que distro tienes??? es arch puro?? En mi arch configuro eso directamente en el archivo intel o amd en /etc/X11/xorg.conf.d/

ejemplo de graficos intel: /etc/X11/xorg.conf.d/20-intel.conf

Section "Device"
    Identifier  "Intel Graphics"
    Driver      "Intel"
    Option      "AccelMethod"   "sna"
    Option      "DRI"       "3"
    Option      "TearFree"  "true"
    Option      "TripleBuffer" "true"
EndSection

En mis maquinas con intel asi quito el tearing.

ejemplo graficos amd:

Section "OutputClass"
     Identifier "AMD"
     MatchDriver "amdgpu"
     Driver "amdgpu"
     Option "TearFree" "true"
EndSection

Si no tienes configurado eso, por eso tienes tearing, arch no lo configura por si solo y si usas un wm como bspwm aun menos, kde seguramente mete mano ahi por eso no veias tearing, como sea en ambos casos tengas intel o amd, tienes que crear el archivo en /etc/X11/xorg.conf.d/ y depende que tengas, el archivo debe llamarse 20-intel.conf o 20-amd.conf

una vez hecho eso, reinicia y ya no deberias tener problemas.

respecto a lo otro intenta:

# Change layout
shift + alt + space
     ~/.config/bspwm/src/toggle_kb.sh

deberia funcionar.

roda404 commented 3 months ago

Tengo la distro de KDE Plasma, instalé Arch con archinstall pero la próxima vez lo instalaré de la manera tradicional. Ya todo me funciona, el tearing se fue y puedo cambiar el layout del teclado con el atajo, muchas gracias por todo :D