Зажатый shift переключает раскладку

Вопросы, на которые не получается найти ответ в Arch wiki или на форуме
Ответить
tenkovin
Сообщения: 4
Зарегистрирован: 29.09.2025

#

добрый день. сразу извиняюсь за отсутствие заглавных букв т.к. с описываемой проблемой их тяжело вводить.

После очередного обновления (я делаю sudo pacman -Syu) при зажатой клавише shift пишутся символы во второй раскладке. то есть при попытке написать русскую букву "ы" в малом и большом регистре пишется следующее: ыS. при попытке написать английскую букву k в малом и большом регистре пишется kЛ. в интернете не нашел похожих случаев. привожу некоторые данные о системе:

cat /etc/X11/xorg.conf.d/00-keyboard.conf
Cкрытый текст
cat /etc/X11/xorg.conf.d/00-keyboard.conf
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# update this file.
Section "InputClass"
Identifier "system-keyboard"
MatchIsKeyboard "on"
Option "XkbLayout" "us,ru"
Option "XkbModel" "pc105"
Option "XkbVariant" "dvorak,"
Option "XkbOptions" "grp:win_space_toggle"
EndSection
inxi -f
Cкрытый текст
System:
Host: arch Kernel: 6.16.8-arch3-1 arch: x86_64 bits: 64
Desktop: GNOME v: 49.0 Distro: Arch Linux
Machine:
Type: Desktop System: ASRock product: B650M-H/M.2+ v: N/A
serial: <superuser required>
Mobo: ASRock model: B650M-H/M.2+ serial: <superuser required>
UEFI: American Megatrends LLC. v: 3.01 date: 05/10/2024
CPU:
Info: 6-core model: AMD Ryzen 5 7500F bits: 64 type: MT MCP cache: L2: 6 MiB
Speed (MHz): avg: 2998 min/max: 428/5077 cores: 1: 2998 2: 2998 3: 2998
4: 2998 5: 2998 6: 2998 7: 2998 8: 2998 9: 2998 10: 2998 11: 2998 12: 2998
Graphics:
Device-1: NVIDIA AD104 [GeForce RTX 4070 SUPER] driver: nvidia v: 580.82.09
Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8
compositor: gnome-shell driver: X: loaded: nvidia unloaded: modesetting
gpu: nvidia,nvidia-nvswitch resolution: 2560x1440~180Hz
API: EGL v: 1.5 drivers: nvidia,swrast
platforms: gbm,wayland,x11,surfaceless,device
API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: nvidia mesa v: 580.82.09
renderer: NVIDIA GeForce RTX 4070 SUPER/PCIe/SSE2
Info: Tools: api: eglinfo,glxinfo gpu: nvidia-smi x11: xprop,xrandr
Audio:
Device-1: NVIDIA AD104 High Definition Audio driver: snd_hda_intel
Device-2: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
driver: snd_hda_intel
Device-3: EDFIER EDIFIER W820NB driver: hid-generic,snd-usb-audio,usbhid
type: USB
API: ALSA v: k6.16.8-arch3-1 status: kernel-api
Server-1: PipeWire v: 1.4.8 status: active
Network:
Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi
IF: wlan0 state: up mac:
Device-2: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
driver: r8169
IF: enp8s0 state: down mac:
IF-ID-1: br-693021ca1090 state: down mac:
IF-ID-2: docker0 state: down mac:
Bluetooth:
Device-1: Intel AX200 Bluetooth driver: btusb type: USB
Report: btmgmt ID: hci0 state: up address: 70:D8:C2:3F:BA:D7 bt-v: 5.2
Drives:
Local Storage: total: 953.87 GiB used: 379.6 GiB (39.8%)
ID-1: /dev/nvme0n1 vendor: A-Data model: LEGEND 850 size: 953.87 GiB
Partition:
ID-1: / size: 952.87 GiB used: 379.29 GiB (39.8%) fs: btrfs
dev: /dev/nvme0n1p2
ID-2: /boot size: 1022 MiB used: 318.6 MiB (31.2%) fs: vfat
dev: /dev/nvme0n1p1
ID-3: /home size: 952.87 GiB used: 379.29 GiB (39.8%) fs: btrfs
dev: /dev/nvme0n1p2
ID-4: /var/log size: 952.87 GiB used: 379.29 GiB (39.8%) fs: btrfs
dev: /dev/nvme0n1p2
Swap:
ID-1: swap-1 type: zram size: 4 GiB used: 0 KiB (0.0%) dev: /dev/zram0
Sensors:
System Temperatures: cpu: 41.6 C mobo: N/A
Fan Speeds (rpm): N/A
Info:
Memory: total: 32 GiB note: est. available: 30.96 GiB used: 3.28 GiB (10.6%)
Processes: 375 Uptime: 17m Shell: Bash inxi: 3.3.39
смена раскладки туда и обратно в journalctl -xe:
Cкрытый текст
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 33 with keysym 33 (keycode c).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 6e with keysym 6e (keycode 39).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 32 with keysym 32 (keycode b).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 2f7259c9 with keysym 60 (keycode 31).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 34 with keysym 34 (keycode d).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 31 with keysym 31 (keycode a).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 33 with keysym 33 (keycode c).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 6e with keysym 6e (keycode 39).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 32 with keysym 32 (keycode b).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 2f7259c9 with keysym 60 (keycode 31).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 34 with keysym 34 (keycode d).
Sep 29 16:09:51 arch gnome-shell[1708]: Overwriting existing binding of keysym 31 with keysym 31 (keycode a).
env | grep LANG
Cкрытый текст
GDM_LANG=en_US.UTF-8
LANG=en_US.UTF-8
[user@arch ~]$

до обновления все работало штатно. клавиатура keychron K7, и по кабелю и по синезубу результат один и тот же во всех режимах. буду очень благодарен если кто поможет. Спасибо!
BendalfRU
Сообщения: 61
Зарегистрирован: 07.07.2025

#

дарю
XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:ctrl_shift_toggle,grp:ваша_кнопка_switch"
BACKSPACE="guess"

+ в настройках клавитауры иксвсё включено "использовать сис настр по умолч"
если так не нравится выключи и добавь измени там на свой вкус
Последний раз редактировалось BendalfRU 30.09.2025 05:36, всего редактировалось 1 раз.
ALiEN
Аватара пользователя
Сообщения: 313
Зарегистрирован: 23.08.2022

#

BendalfRU:дарю
И куда это вписывать? С дебианом случайно не перепутали?

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

BendalfRU
Сообщения: 61
Зарегистрирован: 07.07.2025

#

ALiEN:И куда это вписывать? С дебианом случайно не перепутали?
__я не утверждаю что у меня всё чётко правильно,
но оно работает нормально.
___И в консоли и в эмуляторе норм рисует по русски и переключения нормально.

/etc/default/keyboard
XKBMODEL="pc105"
XKBLAYOUT="us,ru"
XKBVARIANT=","
XKBOPTIONS="grp:lwin_toggle,grp_led:scroll"
BACKSPACE="guess"
/etc/vconsole.conf
LOCALE=ru_RU.UTF-8
XKBMODEL=pc105
FONT=ter-u16b
#FONT=UniCyr_8x16
#FONT=cyr-sun16
FONT_MAP=
# ru-ms, ru_win  ls /usr/share/kbd/keymaps/i386/qwerty
#KEYMAP=ruwin_ct_sh-UTF-8
KEYMAP=ru-ms
USECOLOR=yes
XKBLAYOUT=ru
#,ru-ms

#XKBOPTIONS=grp:ctrl_shift_toggle
XkbOptions="grp:lwin_toggle,grp_led:scroll"
/etc/x11/
input.conf

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbModel" "pc105"
    #   Option "XkbOptions" "grp:ctrl_shift_toggle"
       Option "XKBOPTIONS" "grp:lwin_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
	Identifier  "Keyboard0"
	Driver      "kbd"
EndSection
в дебиане и убунту другой шрифт и фонт мап
BendalfRU
Сообщения: 61
Зарегистрирован: 07.07.2025

#

выше я дал примеры рабочие, не копируйте бездумно.
tenkovin:После очередного обновления
вообще-то вам очень поможет чтение https://wiki.archlinux.org/title/
и там уже настроите как вам удобно.
ALiEN
Аватара пользователя
Сообщения: 313
Зарегистрирован: 23.08.2022

#

BendalfRU:/etc/vconsole.conf
man vconsole.conf
Cкрытый текст
OPTIONS
       The following options are understood:

       KEYMAP=, KEYMAP_TOGGLE=
           Configures the key mapping table for the keyboard.  KEYMAP= defaults
           to "us" if not set. Specially, if "@kernel" is specified, no keymap
           will be loaded, i.e. the kernel's default keymap is used. The
           KEYMAP_TOGGLE= can be used to configure a second toggle keymap and
           is by default unset.

       FONT=, FONT_MAP=, FONT_UNIMAP=
           Configures the console font, the console map and the unicode font
           map.
Никаких XKB* и прочих переменных там быть не может. Это мусорные записи.

Далее. Лень было гуглить, спросил ИИ насчет /etc/default/keyboard:
Arch Linux does not use the /etc/default/keyboard file;
instead, it uses /etc/vconsole.conf for console keyboard layout
and localectl for both console and X11 layouts.

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

BendalfRU
Сообщения: 61
Зарегистрирован: 07.07.2025

#

ALiEN:Это мусорные записи.
1-ии часто гонит пургу. в другой теме чел понаделал с видеодрайвером по советам дипссика и получил хрень.
2- до того как я сделал как написано, было странное.
если я грохнул иксы или он сам упал, то в консоле крякозябры.
Не претендую на истину, кавардачил методом тыка.

__Может и мусорные, программа ищет конкретные строки и параметры, так что по барабану :))
У меня несколько ПК с разными ОС, здесь я только про АРЧЛИНУКС пишу вопросы
tenkovin
Сообщения: 4
Зарегистрирован: 29.09.2025

#

localectl set-x11-keymap ru,us pc105 , grp:win_space_toggle,grp:lshift_switch
Не помогло
setxkbmap -model pc105 -layout ru,us -variant , -option grp:win_space_toggle,grp:lshift_switch
помогло, но при перезагрузке сбрасывается, пробовал добавить в xinitrc и .xprofile, не помогло

Создал исполняемый файл nano ~/.config/autostart/setxkbmap.desktop, помогло, по крайней мере при перезагрузке результат сохраняется.
    [Desktop Entry]
    Name=setxkbmap
    Comment=Set keyboard switch
    Exec=setxkbmap -model pc105 -layout ru,us -variant , -option grp:win_space_toggle,grp:lshift_switch
    Terminal=false
    Type=Application
    StartupNotify=false
Конечно все еще не понятно почему это происходит, но хотя бы теперь можно пользоваться. Спасибо.
BendalfRU
Сообщения: 61
Зарегистрирован: 07.07.2025

#

tenkovin:Спасибо.
Прочитайте арчвики по вашему оконному менеждеру и менеждеру входа.
window и display менеджер соответственно. + также xresourses xsession xinit и так далее.
Там есть особенности.
__
ALiEN
Аватара пользователя
Сообщения: 313
Зарегистрирован: 23.08.2022

#

BendalfRU:Там есть особенности.
нет никаких особенностей. Ну разве что с wayland'ом надо с бубном потанцевать.

Для консоли:
/etc/vconsole.conf
KEYMAP=ruwin_alt-UTF-8
FONT=cyr-sun16
Для иксов:
/etc/X11/xorg.conf.d/00-keyboard.conf
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbOptions" "grp:alt_shift_toggle,compose:menu"
EndSection
* переключение раскладки в этом примере на alt+shift
** compose:menu - опционально. Можно не указывать..

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

vasek
Сообщения: 574
Зарегистрирован: 31.08.2022

#

Wiki Archlinux
Перед тем, как локаль сможет быть использована в системе, она должна быть сгенерирована:
- раскомментируйте соответствующую строку в файле /etc/locale.gen
… проверяем
grep -v '^$\|^#' /etc/locale.gen
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
- сгенерируйте выбранные локали командой: # locale-gen
- системная локаль устанавливается с помощью переменной LANG в файле /etc/locale.conf
cat /etc/locale.conf
LANG=ru_RU.UTF-8
- для console указываем keymap + прописываем шрифт
cat /etc/vconsole.conf
KEYMAP=ru
FONT=ter-v18b

PS -
ls /etc/X11/xorg.conf.d/00-keyboard.conf
ls: невозможно получить доступ к '/etc/X11/xorg.conf.d/00-keyboard.conf': Нет такого файла или каталога

Ошибки не исчезают с опытом - они просто умнеют

BendalfRU
Сообщения: 61
Зарегистрирован: 07.07.2025

#

везде куча ссылок туда сюда , их тоже.
просто читаешь и делаешь чо написано. благодарности авторам арчвики

сначала делаем
https://wiki.archlinux.org/title/Linux_console
локали(языки)
https://wiki.archlinux.org/title/Localization
https://wiki.archlinux.org/title/Locale

затем
ALiEN:нет никаких особенностей.
а вот и да ;) ,
lxdm https://wiki.archlinux.org/title/LXDM
gdm https://wiki.archlinux.org/title/GDM
lightdm https://wiki.archlinux.org/title/LightDM


vasek:ls /etc/X11/xorg.conf.d/00-keyboard.conf
etc/x11/input.conf
или
/etc/X11/xorg.conf.d/00-keyboard.conf
несколькими сообщениями раньше.

если нету их - создай. в консоли команда touch имя_файла.conf
как назвать воще не важно
vasek
Сообщения: 574
Зарегистрирован: 31.08.2022

#

BendalfRU:если нету их - создай. в консоли команда touch имя_файла.con
это не нужно … читать Wiki
- раскомментируйте соответствующую строку в файле /etc/locale.gen
- сгенерируйте выбранные локали командой: # locale-gen
- системная локаль устанавливается с помощью переменной LANG в файле /etc/locale.conf …. для console в файле /etc/vconsole.conf

PS - плюс Алиса
В Arch Linux смена локали (настройки языка, кодировки символов, форматов времени и др.) осуществляется через файлы конфигурации. Настройки определяются двумя основными механизмами:
1. locale.gen — файл со списком доступных локалей, которые система может сгенерировать. По умолчанию закомментирован, но можно раскомментировать строки для генерации конкретных локалей.
2. locale.conf — файл, где указана активная локаль системы. Обычно расположен в /etc/locale.conf и указывает, какую локаль использовать.
Системная локаль устанавливается с помощью переменной LANG в файле /etc/locale.conf
Например, если нужно установить системную локаль на ru_RU.UTF-8, файл должен выглядеть так:
LANG=ru_RU.UTF-8
Важно: изменения в файле /etc/locale.conf вступят в силу после перезагрузки системы.

Ошибки не исчезают с опытом - они просто умнеют

tenkovin
Сообщения: 4
Зарегистрирован: 29.09.2025

#

vasek: Wiki Archlinux
Перед тем, как локаль сможет быть использована в системе, она должна быть сгенерирована:
- раскомментируйте соответствующую строку в файле /etc/locale.gen
… проверяем
grep -v '^$\|^#' /etc/locale.gen
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
- сгенерируйте выбранные локали командой: # locale-gen
- системная локаль устанавливается с помощью переменной LANG в файле /etc/locale.conf
cat /etc/locale.conf
LANG=ru_RU.UTF-8
- для console указываем keymap + прописываем шрифт
cat /etc/vconsole.conf
KEYMAP=ru
FONT=ter-v18b

PS -
ls /etc/X11/xorg.conf.d/00-keyboard.conf
ls: невозможно получить доступ к '/etc/X11/xorg.conf.d/00-keyboard.conf': Нет такого файла или каталога
Спасибо, это все было проделано при установке системы. Для верности повторил, не помогло.

Файл /etc/X11/xorg.conf.d/00-keyboard.conf у меня есть:
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# update this file.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbOptions" "grp:alt_shift_toggle"
EndSection
Тоже уже пытался его менять, нет никакой разницы. Плюс сверху файла сказано что его не надо менять, а использовать localectl. Но это тоже не помогает.
Единственное что помогает, это вызывать setxkbmap. Причем заметил что не важно, будет ли опция grp:lshift_switch или нет. Все равно поведение становится нормальным. При ее вызове вылезает сообщение:
WARNING: Running setxkbmap against an Xwayland server
Костыльный скрипт, к слову, слетает после выхода из режима сна, все равно приходится ручками вызывать команду
vasek
Сообщения: 574
Зарегистрирован: 31.08.2022

#

tenkovin:env | grep LANG
GDM_LANG=en_US.UTF-8
LANG=en_US.UTF-8
??? ...
GDM_LANG - переменная, которая хранит определения языка, который можно выбрать при входе в систему.
(GDM_LANG=en_US.UTF-8 - означать, что используется английский язык).
LANG - переменная, которая определяет категорию локали для родного языка ( LANG=en_US.UTF-8 - ???)

мой выдов
env | grep LANG
LANG=ru_RU.UTF-8

Чтобы убедиться, что кодировка в вашей системе установлена правильно, выполните locale
... должно быть ru_RU.UTF-8 ... мой вывод
locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE=C
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="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"
LC_ALL=

Ошибки не исчезают с опытом - они просто умнеют

tenkovin
Сообщения: 4
Зарегистрирован: 29.09.2025

#

vasek:... должно быть ru_RU.UTF-8
Насколько мне известно, если настроить как у вас вся информация в системе будет отображаться на русском. Я специально выставил системным языком английский, чтобы в консоли, настройках гнома и остальных местах был английский язык. Это не должно никак мешать русскому вводу, и собственно так все и работало до обновления

Проблема видимо кроется в оконном менеджере. Я почитал вики по gdm, ничего кроме рекомендации использовать localectl про раскладки не нашел.

UPD.

https://wiki.archlinux.org/title/Talk:X ... _connected
gsettings set org.gnome.desktop.input-sources xkb-options "['grp:win_space_toggle']"
Вроде как помогло и не сбрасывается. Всем спасибо за ответы
vasek
Сообщения: 574
Зарегистрирован: 31.08.2022

#

tenkovin:Проблема видимо кроется в оконном менеджере.
Да, в gnome при проблемах настройки параметров клавиатуры советуют:
gsettings set org.gnome.desktop.input-sources xkb-options

Алиса
Команда «gsettings set org.gnome.desktop.input-sources xkb-options» используется для настройки параметров клавиатуры в дистрибутивах Linux с рабочим столом GNOME.

Ошибки не исчезают с опытом - они просто умнеют

Ответить