Вопрос или проблема
Я выполнил свежую установку Ubuntu 18.04 LTS на своем настольном компьютере, на котором я использую Ubuntu с версии 11.04. Когда я настраивал все заново и устанавливал все сторонние программы, которыми я обычно пользуюсь, я заметил в /var/log/syslog, что каждый раз, когда я нажимаю клавишу ‘Backspace’ на клавиатуре, появляются следующие ошибки одна за другой:
Aug 4 18:44:49 mycomputer org.gnome.Shell.desktop[3044]: Window manager
warning: Overwriting existing binding of keysym ff09 with keysym ff09
(keycode 17).Aug 4 18:44:49 mycomputer org.gnome.Shell.desktop[3044]: Window manager
warning: Overwriting existing binding of keysym 73 with keysym 73
(keycode 27).
Также я заметил короткое замирание всякий раз, когда я нажимаю клавишу Backspace (небольшая задержка, затем Backspace начинает выполнять свою функцию). Есть идеи, что это может быть и как я могу это исправить?
Я использую клавиатуру Corsair K90, у которой никогда не было этой проблемы в прошлом, и я еще не настраивал любые пользовательские горячие клавиши, так что это не связано с тем, что я сам изменил в отношении назначений клавиш.
Одно, что я могу упомянуть: хотя я не обновлял существующую установку Ubuntu, мой домашний каталог, размещенный на отдельных дисках, уже был заполнен моими личными файлами и конфигурациями моих приложений, поэтому я задаюсь вопросом, может ли что-то из этого, что было перенесено, быть причиной проблемы.
Буду признателен за любую помощь и, пожалуйста, дайте знать, если вам нужна дополнительная информация.
Я временно решил эту проблему, удалив (с использованием purge
) пакет gnome-shell-extension-ubuntu-dock
и перезагрузившись.
Еще одно решение для этого (предполагая стандартную установку Ubuntu Desktop) – открыть терминал GNOME и перейти в preferences
.
ПРИМЕЧАНИЕ: Следующая информация предполагает, что вы еще не создали профиль терминала. Однако, если у вас уже есть, процесс очень похож, и вы, вероятно, уже знаете, как обойти это меню.
Как только вы окажетесь в Меню preferences
, вам сначала нужно создать профиль. Чтобы начать этот процесс, найдите опцию Profiles
в нижнем левом углу окна.
Рядом с опцией Profiles
должен быть маленький плюсик. Нажмите на плюс.
Это начнет процесс создания профиля терминала. Вы должны получить запрос с просьбой ввести имя для нового профиля.
После того как вы дадите ему имя, он должен появиться как отдельная опция сразу под вкладкой profiles
, о которой говорилось ранее. Это ваш ключ к множеству новых опций конфигурации, которые были недоступны вам ранее.
Этот новый набор меню, которые появляются в верхней части внутреннего контекстного окна (в верхней части посредине, слева от окна), теперь должен отображать следующие опции:
Текст Цвета Прокрутка Команда Совместимость
пока что выберите последний вариант.
Когда вы нажимаете на Совместимость
, вы увидите четыре раскрывающихся меню и кнопку.
Нажатие на кнопку в любое время в будущем сбросит настройки для выбранного профиля.
.
Ответ или решение
Ошибка "Window manager warning: Overwriting existing binding of keysym XXX with keysym XXX (keycode XX)" в среде Ubuntu возникает при конфликте назначений клавиш. Это сообщение указывает на то, что система пытается назначить определённую клавишу на уже занятое место в таблице связей клавиш и клавишных символов (keysyms). Конкретно в вашем случае, это вызывает задержку при нажатии клавиши Backspace.
Теория
Системы Unix/Linux используют X Window System для работы с графическим интерфейсом. В этой системе используются mapping таблицы для связывания аппаратных кодов клавиш (keycodes) с символами клавиш (keysyms). Конфликты могут возникать, если аппаратные коды пытаются связываться с различными символами или один и тот же символ пытается занять уже занятое место.
Пример
Давайте разберём конкретный случай из лога:
Overwriting existing binding of keysym ff09 with keysym ff09 (keycode 17)
: Здесь keysymff09
(возможно, символ Tab) и keycode17
конфликтуют.Overwriting existing binding of keysym 73 with keysym 73 (keycode 27)
: Похожая ситуация, вероятно, связанная с символомi
.
Эти конфликты могут происходить по разным причинам:
- Перенос конфигураций: Поскольку ваш домашний каталог был сохранён, старые конфигурационные файлы могли содержать конфликты или несовместимости с новой версией Ubuntu или GNOME.
- Сторонние расширения: Установленные вами сторонние расширения, такие как
gnome-shell-extension-ubuntu-dock
, могут вызывать несовместимость клавишных комбинаций. - Аппаратные особенности клавиатуры: Некоторые клавиатуры, особенно геймерские, как Corsair K90, могут иметь встроенные функции, которые конфликтуют с системными настройками.
Применение
Чтобы устранить данную проблему, можно выполнить следующие шаги:
-
Проверка и очистка конфигурационных файлов:
- Переместите временно конфигурационные файлы, связанные с GNOME и клавиатурными настройками из домашнего каталога (например,
.config
,.gnome
,.local
). Обязательно оставьте бэкап этих файлов. - Перезапустите систему и проверьте, повторяется ли проблема.
- Переместите временно конфигурационные файлы, связанные с GNOME и клавиатурными настройками из домашнего каталога (например,
-
Диагностика клавиатуры:
- Проверьте текущие назначения клавиш в системе с помощью утилиты
xev
. Она позволит вам увидеть действия клавиатуры при нажатии клавиш и проверить возможные дублирующие назначения.
- Проверьте текущие назначения клавиш в системе с помощью утилиты
-
Ручное назначение keycodes и keysyms:
- Используйте
xmodmap
для диагностики и изменения назначений. Сначала, чтобы экспортировать текущие настройки:xmodmap -pke > ~/.Xmodmap
. - Затем откройте и исправьте такие назначения, которые, по вашему мнению, вызывают конфликт.
- Примените изменения:
xmodmap ~/.Xmodmap
.
- Используйте
-
Проверка установленных расширений:
- Убедитесь, что установленные расширения изначально совместимы с вашей версией GNOME и Ubuntu. Возможно, стоит отказаться от некоторых из них или найти альтернативы.
- В случае указанных проблем с
gnome-shell-extension-ubuntu-dock
, его удаление временно решило вашу проблему. Это может указывать на несовместимость или баг в расширении.
-
Создание нового профиля терминала:
- Как упомянуто, создание нового профиля в GNOME Terminal может помочь восстановить базовые настройки и исключить прежние конфликты из-за старых настроек терминала. Это может быть полезно, если конфликты возникают только в контексте терминальных команд.
Каждый из этих шагов может потребовать некоторого времени и проверки, но они помогут идентифицировать основную причину проблемы. Иногда методы поиска неисправностей методом исключения позволяют быстрее находить неисправности, нежели системный анализ всех возможных причин.