Заставить X игнорировать определенную мышь?

Хорошо, это было долгое время, но я все еще отвечу на свой вопрос с наилучшим вариантом, который я нашел на данный момент. Подводить итог: создайте a udev правило, связанное с некоторыми сценариями (который создаст/удалит каталоги и съемные устройства ООН/монтировать), и присоединенный к udev тип события устройства =partition.

1 - Создание добавляет / удаляют сценарии

Сохраните следующий сценарий storage-automount.sh кому: /lib/udev/ и сделайте это исполняемым файлом (sudo chmod a+x /lib/udev/storage-automount.sh):

#!/bin/sh

# set the mountpoint name according to partition or device name
mount_point=$ID_FS_LABEL
if [ -z $mount_point ]; then
    mount_point=${DEVNAME##*/}
fi

# if a plugdev group exist, retrieve it's gid set & it as owner of mountpoint
plugdev_gid="$(grep plugdev /etc/group|cut -f3 -d:)"
if [ -z $plugdev_gid ]; then
    gid=''
else
    chown root:plugdev $mount_point
    gid=",gid=$plugdev_gid"
fi

# create the mountpoint directory in /media/ (if not empty)
if [ -n $mount_point ]; then
    mkdir -p /media/$mount_point
    # other options (breaks POSIX): noatime,nodiratime,nosuid,nodev
    mount -t $ID_FS_TYPE \
      -o rw,flush,user,uid=0$gid,umask=002,dmask=002,fmask=002 \
      $DEVNAME /media/$mount_point
fi

Сохраните следующий сценарий storage-autounmount.sh кому: /lib/udev/ и сделайте это исполняемым файлом (sudo chmod a+x /lib/udev/storage-autounmount.sh):

#!/bin/sh

# set the mountpoint name according to partition or device name
mount_point=$ID_FS_LABEL
if [ -z $mount_point ]; then
    mount_point=${DEVNAME##*/}
fi

# remove the mountpoint directory from /media/ (if not empty)
if [ -n $mount_point ]; then
    umount -l /media/$mount_point
    rm -R /media/$mount_point
fi

2 - Создание udev управляйте для присоединения тех сценариев к событиям

И наконец, добавьте a udev правило в /etc/udev/rules.d/, например, 85-storage-automount.rules:

ENV{DEVTYPE}=="partition", RUN+="/lib/udev/storage-automount.sh", ENV{REMOVE_CMD}="/lib/udev/storage-autounmount.sh"

и заставьте его иметь те же полномочия как другие правила в том dir/папке

Теперь, когда Вы включаете устройство хранения, каталог будет создан в /media/ согласно имени раздела (я не помню, но я думаю, что оно работает с разделом NTFS также), и Ваш раздел будет смонтирован в него. Это - R/W для пользователей, если у Вас есть a plugdev группа в Вашей системе. Кроме того, устройства смонтированы в синхронном режиме для ограничения рисков потери данных в случае горячего отключения.

Когда устройство удалено, оно размонтировано, и каталог удален из /media

Кроме того, инструмент для контроля udev события udevadm monitor, с опциями как --env или --property:

$ udevadm monitor --env

Это тестируется и хорошо работающий и на debian и на дуге, но, вероятно, работайте над всеми дистрибутивами, которые полагаются udev.

4
31.07.2014, 19:33
1 ответ

Попробуйте что-нибудь подобное в xorg.conf:

Section "InputClass"
  Identifier "My second mouse"
  MatchProduct "MouseModelName"
  MatchIsPointer "on"
  Option "Ignore" "on"
EndSection

MouseModelName можно получить через xinput.

.
2
27.01.2020, 21:00

Теги

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