Сохранять настройки xinput после отключения USB-мыши (все еще подключенной)

Я хочу, чтобы настройки xinput для моей usb-мыши сохранялись после ее выключения и повторного включения. Как я могу отслеживать это событие?

Это не работает, так как я никогда не отключаю USB-приемник: Как сохранить настройки xinput после отключения, повторного подключения устройств, а также после выключения, перезагрузки и т. Д.?

Насколько я понял, udev можно использовать для приложений обнаружения HW, но, похоже, он не способен обнаруживать изменения состояния устройства, такого как приемник Logitech Unifying.

Я думаю, ключом к решению этой проблемы является успешное отслеживание событий в Receiver и написание сценария для выполнения команды xinput. Кто-нибудь знает, как я могу обнаружить это событие? Solaar не в состоянии обнаружить это, но это не значит, что это просто для неопытного пользователя Linux.

Спасибо!

2
задан 13 April 2017 в 15:24

1 ответ

Я решил эту проблему на основе предложения, которое прибыло из другого сообщения в обмене стопки Unix.

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

оригинал (и более простой) решение отправляется здесь:

https://unix.stackexchange.com/questions/332573/how-to-make-xinput-commands-permanent/340594#340594

Здесь является скриптом, который я запускаю в ~/.xinitrc:

# Map mouse button 8 (top right) to button 2 (top left) and vice versa, run when changes to the mouse occur
while true; do
        NEW_MOUSEID=$(xinput | grep "Expert Mouse" | grep -o -E '[0-9]+' | head -n 1)
        if [ "$MOUSEID" != "$NEW_MOUSEID" ]; then
                MOUSEID=$NEW_MOUSEID
                if [ "$MOUSEID" != "" ]; then
                        xinput --set-button-map $MOUSEID 1 8 3 4 5 6 7 2 9 10 11 12
                fi
        fi
        sleep 2
done &

Базовая структура:

  • Часы для изменений в идентификаторе USB от xinput каждые 2 секунды
  • , Если идентификатор мыши является пробелом, это не соединено, не выполняют xinput (Вы получите ошибку, если Вы сделаете)
  • парсинг эти xinput, команда просто возвращает идентификатор USB-устройства для мыши "Опытная Мышь", исключая: "14"

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

0
ответ дан 14 April 2017 в 01:24
  • 1
    Это работало на меня, когда я использовал wine-staging, но не wine-stable. Спасибо! – TetraDev 8 December 2018 в 22:26

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

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