Para o Ubuntu 13.04 e inferior
Você pode usar a ferramenta xkblayout-state
. Veja o arquivo README.md para descrição, compilação, instalação e uso.
O comando a seguir fará exatamente o que você deseja:
xkblayout-state print "%s"
Para o Ubuntu 13.10 e superior
O Ubuntu 13.10 veio com algumas boas melhorias nesse sentido, e você pode usar a seguinte função bash simples:
get_current_xkblayout () {
current_input_nr=$(gsettings get org.gnome.desktop.input-sources current | \
awk '{ print $NF }')
shift=$(( 2 * ( $current_input_nr + 1 )))
gsettings get org.gnome.desktop.input-sources sources | tr -d "\',[]()" | \
awk -v cur="$shift" '{ print $cur }'
}
Os seguintes comandos também funcionam no 13.10:
setxkbmap -query | awk -F"(,|[ ]+)" '/layout:/ { print }'
ou:
setxkbmap -print | awk -F"+" '/xkb_symbols/ {print }'