Я понимаю ваше разочарование, но эта проблема может быть решена очень просто с помощью xinput
инструмента.
Сначала подключите USB-мышь, а затем выполните следующую команду:
xinput list
чтобы увидеть id
вашу мышь. Вывод вышеуказанной команды может быть похож на:
Xinput | Кот
Id ID указателя виртуального ядра = 2 [главный указатель (3)]
Pointer ↳ Указатель XTEST виртуального ядра id = 4 [ведомый указатель (2)]
PS ↳ SynPS / 2 Synaptics TouchPad id = 14 [ведомый указатель (2)]
Mouse ↳ USB Mouse id = 11 [ведомый указатель (2)]
Id ID виртуальной клавиатуры = 3 [мастер клавиатура (2)]
...
В приведенном выше примере USB-мышь имеет id=11
. Мы будем использовать это id
в следующей команде, которая поменяет кнопки, предназначенные для левой руки, только для USB-мыши (а не для тачпада):
xinput set-button-map 11 3 2 1
В общем:
xinput set-button-map id 3 2 1
Чтобы отменить изменение, используйте:
xinput set-button-map id 1 2 3
Чтобы внести изменения навсегда, добавьте следующую команду в Startup Applications (поиск в Dash для Startup Applications ):
sh -c "xinput set-button-map id 3 2 1"
Обновить:
Поскольку идентификатор может измениться после перезагрузки, а имя USB-мыши - нет, вы также можете использовать имя мыши и применить его. Чтобы пропустить детали рег. выбрав имя, окончательное решение выглядит так:
для идентификатора в `/ usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; do xinput set-button-map $ id 3 2 1; сделанный;
упакуйте его в вышеупомянутые приложения автозагрузки, которые вы получите наконец:
sh -c "для идентификатора в` / usr / bin / xinput list | / bin / grep ' USB Mouse ' | / bin / grep -o [0-9] [0-9] `; сделать xinput set-button-map $ id 3 2 1; готово; "
sh -c "for id in '/usr/bin/xinput list | /bin/grep 'Razer' | /bin/grep -o [0-9][0-9]'; do xinput set-button-map $id 3 2 1; done;"
и это работает (возможно, нужно заботиться о правильных дефисах). Спасибо за подсказку.Есть даже более простой способ, чем в ответе Раду Рэдяну .
xinput
принимает имя устройства ввода в качестве альтернативы его числовому идентификатору. Поскольку ваша USB-мышь, вероятно, обрабатывается в общем, ее имя, скорее всего, являетсяUSB Mouse
. Поэтому вам, вероятно, даже не нужно бежатьxinput list
.Таким образом, ваш
xinput set-button-map
, с этим именем вместо числового идентификатора, становится:Это займет место и должно достичь того же самого, сделав его левой рукой, точно так же, как при использовании числового идентификатора . (И замена на все равно будет работать, чтобы переключиться на правую мышь.)
xinput set-button-map id 3 2 1
3 2 1
3 2 1
1 2 3
Преимущество этого заключается в том, что при условии, что он работает изначально, он будет продолжать работать после перезагрузки, без необходимости получения идентификационного номера устройства с помощью длинных сложных команд.
источник
xinput list
отображаются 2 записи с одинаковым именем («2.4G Wireless Keyboard & Mouse»), за исключением одной «[slave pointer (2)]», а другая «« подчиненная клавиатура (3). )]». Так что в вашем решении у меня есть эта ошибка «Есть несколько устройств с именем« 2.4G Wireless Keyboard & Mouse ».». На данный момент я использую добавление решения Radugrep 'slave pointer'
. Интересно, позволяет ли xinput как-то указывать, что мы ссылаемся на указатель, не делая всего этого?Я обнаружил, что команда запуска в другом ответе работает, только если идентификатор представляет собой двузначное число. Вот мои модификации, которые должны работать как для одно-, так и для двухзначных чисел:
В загрузочных приложениях
источник
Вот более подробное решение, которое решает две проблемы:
xinput list
отображаются 2 записи с одинаковым именем («2.4G Wireless Keyboard & Mouse»), за исключением одной «[slave pointer (2)]», а другая «« подчиненная клавиатура (3). )]». Так, с решением @reedstrm у меня была эта ошибка: «Существует несколько устройств с именем« 2.4G Wireless Keyboard & Mouse ».», В то время как с решением @Radu Rădeanu, он перебралfor
2 идентификатора, один для мыши и один для клавиатуры, имея Сообщение об ошибке «Устройство не имеет кнопок» со вторым.источник