Переключить Alt и клавишу Windows, кроме случаев, когда используется внешняя клавиатура

На моем ноутбуке клавиши Alt и Windows находятся в противоположных положениях, в которых я бы предпочел их. Их замена довольно проста. Однако моя внешняя (USB) клавиатура имеет клавиши Alt и Windows в том порядке, который я предпочитаю, а это означает, что когда я переключаюсь на внешнюю клавиатуру, у меня есть неудобная клавиатура.

Есть ли какой-то способ Linux-y voodoo, который я могу вызвать, чтобы определить, поступает ли вход с внешней клавиатуры или нет, и поменяйте ли он два ключа соответственно? Если это подтолкнет его, я соглашусь найти способ обнаружить, когда подключена внешняя клавиатура. Или есть ли другие разумные решения, которые я не рассматривал?

  • Как узнать, используется ли Wayland или X11
  • Разница между компоновкой на стороне сервера и клиентской стороной в Xorg?
  • Зашифрованный домашний каталог и SSH (только для проверки подлинности) прерывает пересылку X11
  • .Xresources имена шрифтов
  • Запуск (X) Xfce4 в Debian chroot
  • xmodmap shift + keycode для создания keyym
  • Как узнать имя окна полноэкранного интернет-контента (например, Flash)?
  • Простой менеджер окон X
  • 2 Solutions collect form web for “Переключить Alt и клавишу Windows, кроме случаев, когда используется внешняя клавиатура”

    У вас могут быть совершенно разные настройки макета для каждой клавиатуры, которую вы подключаете; Может оказаться полезным ненадежное руководство по конфигурации xkb . В вашем случае вы можете пройти с помощью «Сделать это простым способом».

    Однако имейте в виду, что руководство было написано в то время, когда X-сервер имел файл конфигурации, который был удостоен чести. С тех пор конфигурация клавиатуры переместилась по крайней мере в HAL и снова отступила, так что небо знает, где вам нужно добавить дополнительные Options "XkbOptions" "..." когда это новая луна.

    Если все остальное терпит неудачу, и ваш X достаточно недавний, да, получите номер устройства из xinput list и вызовите setxkbmap -device ... ... , вызовите его в свой файл запуска X и, возможно, также посмотрите на udev чтобы он был уведомлен, когда это клавиатура подключена.

    Вы можете использовать xinput list для проверки внешней клавиатуры.

    Linux и Unix - лучшая ОС в мире.