Aqui está uma maneira de conectar o XMonad e vários layouts de teclado.
Etapa 1. Crie um script que alterne entre seus layouts. Por exemplo, digamos que apoiaremos inglês (EUA), italiano e francês.
/home/you/bin/layout_switch.sh
:
#!/bin/zsh
# LICENSE: PUBLIC DOMAIN
# switch between my layouts
# If an explicit layout is provided as an argument, use it. Otherwise, select the next layout from
# the set [us, it, fr].
if [[ -n "" ]]; then
setxkbmap
else
layout=$(setxkbmap -query | awk 'END{print }')
case $layout in
us)
setxkbmap it
;;
it)
setxkbmap fr
;;
*)
setxkbmap us
;;
esac
fi
Teste este script - execute-o e veja se o layout do teclado alterna entre os layouts. Em caso afirmativo, prossiga para o próximo passo.
Etapa 2. Personalizar as configurações do XMonad para oferecer suporte à associação de chave personalizada que alternará o layout.
Em seu diretório home, crie um diretório chamado ".xmonad" (se não existir).
/home/you/.xmonad/xmonad.hs
:
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import System.IO
main = do
xmonad $ defaultConfig
{
terminal = "gnome-terminal"
} 'additionalKeys'
[ (( mod1Mask , xK_Escape), spawn "/home/you/bin/layout_switch.sh")
]
Agora, reinicie o XMonad pressionando Mod + q. O seu seletor de layout deve estar totalmente funcional.
Referência: link