Невозможно заблокировать функциональные клавиши (F1-F12) с помощью xkb или xmodmap на Linux [закрыто]

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

Я пытаюсь заблокировать функциональные клавиши (F1-F12) на своей системе Linux, используя xkb и xmodmap, но до сих пор не добился успеха. Несмотря на то что я установил клавиши на NoSymbol, функциональные клавиши продолжают работать, и системные действия (такие как F1 для открытия справки, F5 для обновления и т.д.) по-прежнему срабатывают.

Я хотел бы полностью отключить функциональные клавиши, включая их стандартные функции и любые комбинации Fn + функциональных клавиш.

Я уже пробовал изменить соответствующую часть файла /xkb/symbols/pc на:

key <FK01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F1
key <FK02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F2
key <FK03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F3

Несмотря на эту конфигурацию, функциональные клавиши по-прежнему работают как и прежде (например, F1 открывает справку, F5 обновляет страницу и т.д.).

Я также пытался использовать xmodmap

xmodmap -e "keycode 67 = NoSymbol"   # F1
xmodmap -e "keycode 68 = NoSymbol"   # F2
xmodmap -e "keycode 69 = NoSymbol"   # F3

Ответ или решение

Для полного отключения функциональных клавиш (F1-F12) на Linux с помощью xkb или xmodmap, важно учитывать, что просто установка NoSymbol может не сработать на всех системах, поскольку некоторые приложения могут обрабатывать нажатия этих клавиш отдельно от X-сервера. Однако, есть несколько шагов, которые можно предпринять для достижения вашей цели.

Использование xmodmap

  1. Определите код клавиш: Сначала нужно узнать код (keycode) для каждой функциональной клавиши. Это можно сделать с помощью команды xev. Откройте терминал и выполните:

    xev

    Затем нажмите интересующую вас функциональную клавишу. В выводе ищите строку, содержащую keycode. Запишите эти коды.

  2. Отключите клавиши: Используйте xmodmap для отключения функциональных клавиш. Замените X на код вашей клавиши, например 67 для F1:

    xmodmap -e "keycode 67 = NoSymbol"   # F1
    xmodmap -e "keycode 68 = NoSymbol"   # F2
    xmodmap -e "keycode 69 = NoSymbol"   # F3
    ...

    Для всех F1-F12, команды будут выглядеть следующим образом:

    xmodmap -e "keycode 67 = NoSymbol"   # F1
    xmodmap -e "keycode 68 = NoSymbol"   # F2
    xmodmap -e "keycode 69 = NoSymbol"   # F3
    xmodmap -e "keycode 70 = NoSymbol"   # F4
    xmodmap -e "keycode 71 = NoSymbol"   # F5
    xmodmap -e "keycode 72 = NoSymbol"   # F6
    xmodmap -e "keycode 73 = NoSymbol"   # F7
    xmodmap -e "keycode 74 = NoSymbol"   # F8
    xmodmap -e "keycode 75 = NoSymbol"   # F9
    xmodmap -e "keycode 76 = NoSymbol"   # F10
    xmodmap -e "keycode 95 = NoSymbol"   # F11
    xmodmap -e "keycode 96 = NoSymbol"   # F12
  3. Автоматизация запуска: Для автоматизации действий после перезагрузки системы, создайте файл .Xmodmap в вашем домашнем каталоге и добавьте в него все команды xmodmap:

    touch ~/.Xmodmap

    Затем откройте его в текстовом редакторе и вставьте команды. Убедитесь, что файл .Xmodmap загружается автоматически при входе в систему, добавив следующую строку к вашему файлу конфигурации (например, .xinitrc или .xprofile):

    xmodmap ~/.Xmodmap

Использование xkb

Если xmodmap не дает желаемого результата, можно попробовать изменить конфигурацию xkb.

  1. Редактирование файлов xkb: Откройте файл /usr/share/X11/xkb/symbols/pc с помощью текстового редактора с правами суперпользователя:

    sudo nano /usr/share/X11/xkb/symbols/pc
  2. Настройка клавиш: Найдите строки, которые определяют функциональные клавиши (обычно они начинаются с key <FK01>, key <FK02> и т.д.). Измените их, чтобы они выглядели следующим образом:

    key <FK01> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F1
    key <FK02> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F2
    key <FK03> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F3
    key <FK04> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F4
    key <FK05> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F5
    key <FK06> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F6
    key <FK07> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F7
    key <FK08> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F8
    key <FK09> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F9
    key <FK10> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F10
    key <FK11> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F11
    key <FK12> { [ NoSymbol, NoSymbol, NoSymbol, NoSymbol ] };   // F12
  3. Перезапуск X-сессии: После изменения файла конфигурации необходимо перезапустить X-сессию, чтобы изменения вступили в силу. Это можно сделать, выйдя из системы и войдя снова или перезагрузив компьютер.

Примечания

  • Некоторые ноутбуки могут иметь аппаратные переключатели для функциональных клавиш, которые игнорируют программные изменения. В таких случаях проверьте настройки BIOS.
  • Имейте в виду, что изменения, сделанные с помощью xmodmap, могут быть перезаписаны при изменении конфигураций, связанных с графическими средами (например, GNOME, KDE).

Следуя этим шагам, вы должны успешно отключить функциональные клавиши на вашей системе Linux.

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

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