Надежно повторно отображающиеся ключи на устройство ввода данных

У меня есть Mac, и модифицирующие клавиши на клавиатуре в порядке слева направо: Ctrl, Высокий звук, Супер (иначе. Cmd, , ключ Windows). Я хотел бы порядок быть Ctrl, Супер, Высоким звуком вместо этого, и таким образом, я продолжил повторно отображать их.

Существует протирание, жестко, потому что я регулярно присоединяю внешнюю клавиатуру, которая в правильном порядке уже имеет ключи. Если я подкачиваю ключи здесь, они заканчивают неправильно.

Таким образом, я хочу повторно отобразить/подкачать ключи для клавиатур яблока конкретно. Вместо этого я с удовольствием признал бы, что повторно отображение ключей для определенной клавиатуры всунуло мой ноутбук только (в противоположность всем клавиатурам яблока автоматически).


После исследования этого я закончил с решением, которое является только наполовину работой.

Я запускаю следующий скрипт на входе в систему (~/.kde/Autostart/custom-remap.sh), который пытается повторно отобразить ключи для моей внутренней клавиатуры только:

#!/bin/bash -e

DIRNAME=$(dirname $0)

# Use xinput to target a specific keyboard only:
APPLE_KEYBOARD_ID=$(
    xinput list |
    grep 'Apple Internal Keyboard' |
    sed -n 's/.*id=\([0-9]\+\).*/\1/p'
)

# Apply mappings from xkb/symbols/custom
# Maps ctrl, win and alt-keys to be in PC standard positions
setxkbmap -device $APPLE_KEYBOARD_ID -print |
    sed 's/\(xkb_symbols.*\)"/\1+custom(apple-keyboard-swaps)"/' |
    xkbcomp -I$DIRNAME/xkb -i $APPLE_KEYBOARD_ID -synch - $DISPLAY

Это полагается на следующий файл, xkb/symbols/custom:

xkb_symbols "apple-keyboard-swaps" {
    key <LWIN> { [ Alt_L ] };
    key <LALT> { [ Super_L ] };

    key <RWIN> { [ Alt_R ] };
    key <RALT> { [ Control_R ] };
};

Это решение иногда работает отлично, иногда не имеет никакого эффекта, и недавно казалось, что гибридный результат пустил корни в моей системе: Ни один из Высокого звука или Супер ключей не работал бы правильно, они, кажется, действуют немного как оба.

"Иногда" действительно плохо определяется. Я могу войти в любое состояние после перезагрузки. Присоединение/отсоединение моей внешней клавиатуры могло бы инициировать изменение состояния. Другие времена, по-видимому наугад, состояние переключится, в то время как я использую компьютер. Запущение скрипта многократно, кажется, не влияет на состояние (если это не берет в первый раз, когда это не берет энному времени ни одного).


Как я могу достигнуть соответствующего переотображения и иметь его работающий надежно?

(Я в настоящее время выполняю Kubuntu 14.04, но он действовал так же под Kubuntu 13.10),

1
задан 19 October 2018 в 19:14

1 ответ

Я также хотел сделать подкачку cmd и клавиши Alt только на моем MacBook Pro, но не, когда мне включили нормальную внешнюю клавиатуру.

От направлений здесь , следующее "просто работает" над 14,04 (и вероятно 13.10):

  1. Добавляют options hid_apple swap_opt_cmd=1 к /etc/modprobe.d/hid_apple.conf, создавая файл, если он не существует
  2. , Восстанавливают initramfs с sudo update-initramfs -u -k all
  3. Перезагрузка
2
ответ дан 7 December 2019 в 14:12

Другие вопросы по тегам:

Похожие вопросы: