Я использую xkbcomp
для замены клавиш Alt kbd> и Win kbd> на моей клавиатуре Apple.
Это работает:
xkbcomp -w0 -I"$DIR" "$DIR/keymap/mykbd" $DISPLAY
... но это меняет раскладку для всех клавиатур, и этого не произойдет, потому что я часто переключаюсь между положением стоя и сидя (и меняю клавиатуру).
Я взял на себя труд указать устройство. xkbcomp
Справочный текст гласит: -i <deviceid> Specifies device ID (not name) to compile for
xkbcomp -w0 -I"$DIR" -i 16 "$DIR/keymap/mykbd" $DISPLAY
... но это, похоже, не дает никакого эффекта!
Я взял id 16
из xinput list | grep Magic\ Keyboard
. Я также попробовал /dev/input/event18
в качестве идентификатора, взятого из xinput list-props 16 | grep 'Device Node'
, но это не дает лучшего эффекта.
Обновление:
Удивительно, но когда я предоставляю идентификатор Virtual core keyboard
вместо Magic Keyboard
, я получаю , получаю эффект: новое отображение получает Применительно к моей Magic Keyboard, и , если я продолжу печатать на встроенной клавиатуре ноутбука, раскладка клавиатуры , а затем вернется к исходной конфигурации.
Вы можете использовать метод, описанный здесь .
В качестве альтернативы, создайте отдельный файл .xkb для каждого устройства (можно использовать метод, описанный здесь здесь для каждого) и разместите ярлыки для каждого на рабочем столе. Постоянство не будет столь важным, поскольку ожидается, что раскладка клавиш (устройство) будет выбрана вручную.