É possível obter o layout de teclado atual na linha de comando?
Eu já tentei de maneiras diferentes:
-
localectl
( status
) etc.
-
cat /etc/default/locale
-
cat /etc/default/keyboard
-
setxkbmap -query
-
gsettings ...
-
setxkbmap -print | grep xkb_symbols
( setxkbmap -v | awk -F "+" '/symbols/ {print }'
)
- Tentou instalar
xkblayout-state
, mas não quer ser instalado ( make
falha)
Então ... tudo isso mostra o mesmo evento de saída se o layout do teclado foi alterado para outro ... eles mostram layout nós . Btw eu tenho verificado dezenas de tópicos e nenhum resultado ... então por favor não marcá-lo como um duplicado. Vamos descobrir como alcançá-lo corretamente.
uname -a
mostra Linux x4 4.4.0-97-generic #120-Ubuntu SMP Tue Sep 19 17:28:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
A distribuição é KDE Neon 5.8
, que é baseada no Ubuntu
O sistema de janelas é X11
A propósito, encontrei isto: xset -q | grep -A 0 'LED' | cut -c59-67
aqui . É claro como fazer isso?
As saídas dos comandos acima:
$ localectl status
:
System Locale: LANG=en_US.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
VC Keymap: n/a
X11 Layout: us
X11 Model: pc105
$ cat /etc/default/locale
:
# File generated by update-locale
LANG="en_US.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
$ cat /etc/default/keyboard
:
# KEYBOARD CONFIGURATION FILE
# Consult the keyboard(5) manual page.
XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS=""
BACKSPACE="guess"
$ setxkbmap -query
:
rules: evdev
model: pc101
layout: us,ru
options: grp:alt_shift_toggle
$ setxkbmap -print | grep xkb_symbols
:
xkb_symbols { include "pc+us+ru:2+inet(evdev)+group(alt_shift_toggle)" };
$ setxkbmap -v | awk -F "+" '/symbols/ {print }'
:
us
$ cat ~/.config/kxkbrc
:
[Layout]
DisplayNames=,
LayoutList=us,ru
LayoutLoopCount=-1
Model=pc101
Options=grp:alt_shift_toggle
ResetOldOptions=true
ShowFlag=false
ShowLabel=true
ShowLayoutIndicator=true
ShowSingle=false
SwitchMode=Global
Use=true
Todos esses comandos foram executados duas vezes (antes e depois da alteração do layout do teclado). Então não há resultado.
A propósito:
$ xset -q | grep -A 0 'LED' | cut -c59-67
(a língua inglesa está ativada):
00000000
$ xset -q | grep -A 0 'LED' | cut -c59-67
(o idioma russo está ativado):
00001000
Então ... como você vê, esta muda. Tudo em tudo é claro para obter layout atual?