Как отключить тачпад ноутбука при подключении USB-мыши (и медленнее последней)? [дубликат]

На этот вопрос уже есть ответ здесь:

У меня нет есть функциональная клавиша / fn для этого :(.

Есть идеи? Может быть, есть настройки или команды?


Другие темы НЕ помогли:

  • gpointing-device- настройки (параметр автоматического отключения снимается);
  • kde-config-touchpad (не может быть установлен отдельно);
  • не знаю, как использовать udevd .
8
задан 7 October 2014 в 20:13

3 ответа

РЕШЕНИЕ - не автоматический

сценарий ниже, когда выполняется, будет отключать сенсорную панель, если какая-либо мышь будет подключена , и покажите уведомление.

touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);


if xinput | grep -i "mouse" | grep -i "pointer"

    then xinput set-prop $touchpad_id "Device Enabled" 0 |
         notify-send "Disabling the touchpad..." ""

    else xinput set-prop $touchpad_id "Device Enabled" 1 |
         notify-send "The touchpad is now enabled." ""

fi

Добавленный там также обратная ситуация, хотя в моем случае сенсорная панель включена на разъединении мыши так или иначе. Я сохранил сценарий в файле, и выполняю его от Unity Launcher Terminal раздел после того, как каждая мышь включает.

<час>

СОВЕРШЕНСТВОВАЛСЯ

  1. [еще 1130] мыши?

    Разъясняются, который mouse должен деактивировать сенсорную панель путем расширения значения в "mouse" фрагмент, имя на основе xinput список устройств.

  2. Испуганная мышь работает от края до края?

    я должен был выполнить дополнительную команду для мыши - уменьшение cursor acceleration, так как это безумно установлено на 10 на каждом соединении. На самом деле через некоторое время я сделал сценарий автоматического обнаружения (это получает идентификатор мыши и опору it для скорости; не знайте о производительности cut)...

    touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);
    mouse_id=$(xinput | grep -i "mouse" | grep -i 'pointer' | cut -f2 | cut -d '=' -f2);
    mouse_prop=$(xinput list-props $mouse_id | grep -i "velocity" | cut -f2 | cut -d '(' -f2 | cut -d ')' -f1 );
    
    
    if xinput | grep -i "mouse" | grep -i "pointer"
    
        then xinput set-prop $touchpad_id "Device Enabled" 0 |
             xinput set-prop $mouse_id $mouse_prop 3 |
             notify-send "Disabling the touchpad..." ""
    
        else xinput set-prop $touchpad_id "Device Enabled" 1 |
             notify-send "The touchpad is now enabled." ""
    
    fi
    

Изученный много сегодня для создания выше: <час> D.

КТО-ТО Pro?

  1. было бы полезно, чтобы знать, как сделать его автоматическим.

  2. Также любопытный, почему конфигурация мыши не сохраняется (2)..

5
ответ дан 16 November 2019 в 16:51

Решение - автоматический

Благодаря Esamo и его работе.

Для добавления АВТОМАТИЧЕСКИХ триггеров для подключения мыши на запуске:

Создают файл: /etc/udev/rules.d/10-local.rules

Заполняются этим содержанием: (замените $USER своим именем пользователя)

ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh false"

ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh true"

Пример:

ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh false"

ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh true"

Следующее место Ваш сценарий везде, где Вы хотите. Я поместил его в ~ / сценарии

, touchpad_switcher.sh

#!/bin/sh
enabled=$1
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);

if $enabled
then
  xinput set-prop $touchpad_id "Device Enabled" 1 | notify-send "The touchpad is now enabled." ""
else
  xinput set-prop $touchpad_id "Device Enabled" 0 | notify-send "Disabling the touchpad..." ""
fi

Не забывает добавлять, выполняют полномочия:

chmod +x touchpad_switcher.sh

теперь просто перезагрузка! (просто перезапускающий udev, кажется, не работает...)

<час>

Некоторый другой полезный материал:

Некоторая информация приблизительно правила udev

Пример от вопроса ArchLinux

Simlar

9
ответ дан 16 November 2019 в 16:51

То, что отправил @David Drozd, не работало на меня на , Ubuntu 16.04 .

Кажется, что прием с xinput не работает в udev. Только synclient TouchpadOff=[0|1] работали. Также ACTION="remove" не работал только.

я наконец получил его, когда добавлено ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'"

полное решение : создайте файл /etc/udev/rules.d/10-local.rules со следующей строкой ($USER замены с Вашим именем пользователя)

ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1' "
1
ответ дан 16 November 2019 в 16:51

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

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