Предупреждение диспетчера окон: Перезапись существующей привязки keysym XXX с keysym XXX (код клавиши XX)

Вопрос или проблема

Я выполнил свежую установку 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): Здесь keysym ff09 (возможно, символ Tab) и keycode 17 конфликтуют.
  • Overwriting existing binding of keysym 73 with keysym 73 (keycode 27): Похожая ситуация, вероятно, связанная с символом i.

Эти конфликты могут происходить по разным причинам:

  1. Перенос конфигураций: Поскольку ваш домашний каталог был сохранён, старые конфигурационные файлы могли содержать конфликты или несовместимости с новой версией Ubuntu или GNOME.
  2. Сторонние расширения: Установленные вами сторонние расширения, такие как gnome-shell-extension-ubuntu-dock, могут вызывать несовместимость клавишных комбинаций.
  3. Аппаратные особенности клавиатуры: Некоторые клавиатуры, особенно геймерские, как Corsair K90, могут иметь встроенные функции, которые конфликтуют с системными настройками.

Применение

Чтобы устранить данную проблему, можно выполнить следующие шаги:

  1. Проверка и очистка конфигурационных файлов:

    • Переместите временно конфигурационные файлы, связанные с GNOME и клавиатурными настройками из домашнего каталога (например, .config, .gnome, .local). Обязательно оставьте бэкап этих файлов.
    • Перезапустите систему и проверьте, повторяется ли проблема.
  2. Диагностика клавиатуры:

    • Проверьте текущие назначения клавиш в системе с помощью утилиты xev. Она позволит вам увидеть действия клавиатуры при нажатии клавиш и проверить возможные дублирующие назначения.
  3. Ручное назначение keycodes и keysyms:

    • Используйте xmodmap для диагностики и изменения назначений. Сначала, чтобы экспортировать текущие настройки: xmodmap -pke > ~/.Xmodmap.
    • Затем откройте и исправьте такие назначения, которые, по вашему мнению, вызывают конфликт.
    • Примените изменения: xmodmap ~/.Xmodmap.
  4. Проверка установленных расширений:

    • Убедитесь, что установленные расширения изначально совместимы с вашей версией GNOME и Ubuntu. Возможно, стоит отказаться от некоторых из них или найти альтернативы.
    • В случае указанных проблем с gnome-shell-extension-ubuntu-dock, его удаление временно решило вашу проблему. Это может указывать на несовместимость или баг в расширении.
  5. Создание нового профиля терминала:

    • Как упомянуто, создание нового профиля в GNOME Terminal может помочь восстановить базовые настройки и исключить прежние конфликты из-за старых настроек терминала. Это может быть полезно, если конфликты возникают только в контексте терминальных команд.

Каждый из этих шагов может потребовать некоторого времени и проверки, но они помогут идентифицировать основную причину проблемы. Иногда методы поиска неисправностей методом исключения позволяют быстрее находить неисправности, нежели системный анализ всех возможных причин.

Оцените материал
Добавить комментарий

Капча загружается...