O motivo pelo qual você não encontrou uma solução é que não há uma. Não existe o “layout de teclado atual”, se por isso você quer dizer algo como “layout QWERTY dos EUA”. O layout do teclado não precisa ser nenhum layout pré-definido específico. A única maneira de descrevê-lo sem ambiguidade é despejar todo o conjunto de mapeamentos (o que você pode fazer com xkbcomp :0 -
).
Você pode descobrir qual layout está configurado nesta ou nessa interface de configuração. Tudo o que você dirá é qual layout está configurado nessa interface específica. Não vai te dizer se esse layout é atual. O usuário pode ter usado uma interface diferente para alterar o layout ou pode ter definido um mapa de teclas totalmente personalizado com uma ferramenta como xmodmap
ou xkbcomp
.
A saída obtida de setxkbmap -query
é a mais próxima possível. Ele obtém informações do servidor X, portanto, você não se depara com o problema de arquivos de configuração que podem ou não ter sido aplicados. No entanto, existem duas maneiras de informar ao servidor X para alterar o layout do teclado: fornecendo um nome de layout (e opções) ou definindo chaves individuais. Se setxkbmap -query
diz us
, significa que a última vez que alguém solicitou com êxito ao servidor X para carregar um layout específico, a solicitação foi carregar o layout us
. Mas, se houver uma solicitação subsequente para alterar a configuração de chaves individuais, o layout poderá ser completamente diferente.
Ninguém está fazendo nada errado. É só que não há nenhum conceito de “layout atual” no sistema em geral, porque o layout do teclado não precisa ser um layout pré-definido.