Вы должны отделить процедуры, требующие доступа root к отдельной программе python, и запустить это с помощью gksudo.
Я задал аналогичный вопрос в Stack Overflow.
Я нашел способ сделать это:
Сначала откройте терминал и распечатайте все устройства ввода, чтобы найти идентификатор, который вам нужен для устройства ввода, которое вы хотите отключить. В терминале введите:
xinput --list
Далее: Обратите внимание, где указано id = X в одном длинном столбце для каждого устройства ввода. Вы хотите найти идентификатор устройства, который соответствует устройству ввода, которое вы хотите отключить (возможно, что-то похожее на «тачпад»). Затем замените X в следующей команде номером id, представляющим устройство ввода, которое вы хотите отключить:
xinput disable X
Примечание. Если вы не знаете, какой идентификатор устройства вы должны использовать для отключения тачпада, тогда вы можете узнать, проверив случайный идентификатор и посмотрев, работает ли ваш коврик для мыши. Удостоверьтесь, что вы НЕ ДЕЛАЙТЕ НИЧЕГО ВАЖНО. Сохраните всю свою работу и будьте готовы перезагрузить компьютер, если вы сделаете что-то вроде отключения клавиатуры. (Возможно, вам не удастся включить его снова, если вы не можете ввести его в терминал.
Затем вам нужно будет запустить эту последнюю строку (спасибо, что поймали эту Arch Stanton!)
xinput enable X
Причина: мне отчаянно нужен был ответ на эту проблему, потому что проблемы, которые я испытывал с помощью своего тачпада, сделали невозможным работу. Внезапно, в какой-то случайный момент, когда я использую свой ноутбук, по всей видимости, нет причин, touchpad переходит в какой-то «специальный режим». Простое перемещение одного пальца на моей тачпаде приведет к тому, что экран будет прокручиваться, вместо того, чтобы на самом деле перемещать курсор мыши на экране, поэтому было невозможно заставить мышь нависнуть над чем-либо в broswer без значительных координирующих усилий для учета экрана прокрутки и неперемещающейся мыши.Я хотел найти способ, БЕЗ ВОССТАНОВЛЕНИЯ LAPTOP, для сброса тачпада. С плюсом сторона сброса тачпада с помощью метода выше действительно устраняет мою проблему.
Обновление: Чтобы выполнить сброс сенсорной панели ev проще, я сделал горячую клавишу для перечисленных выше команд. Когда мой тачпад идет на fritz, я просто делаю комбинацию клавиш ctrl + super + r, и он выполняет сброс для меня. Быстро и просто.
Вот как:
-Создайте файл внутри своего домашнего каталога и назовите его что-то вроде «touchpad-reset.sh».
- Внутри этого файла поместите две предыдущие предыдущие предыдущие команды, кроме, вместо того, чтобы использовать номер идентификатора X для устройства, поскольку он может быть изменен с добавленными периферийными устройствами (возможно?), Вы можете использовать это вместо этого:
Вот вывод с моего компьютера внутри терминала с помощью этого комманда:
xinput --list
Результат:
Virtual core pointer id=2 [master pointer (3)]⎜
↳ Virtual core XTEST pointer id=4 [slave pointer (2)]⎜
↳ Genius 2.4G Wireless Mouse id=10 [slave pointer (2)]⎜
↳ MSFT0001:00 06CB:75BD UNKNOWN id=13 [slave pointer (2)]⎜
↳ ELAN Touchscreen id=12 [slave pointer (2)]⎜
-Но что вы делаете, вы заменяете X (ранее был id) для xinput disable X и xinput разрешаете X с именем, соответствующим этому id внутри одинарных кавычек. Например, из вышесказанного, если вы хотите сделать это для id = 13, моего устройства тачпада, вы должны использовать:
xinput disable 'MSFT0001:00 06CB:75BD UNKNOWN'
xinput enable 'MSFT0001:00 06CB:75BD UNKNOWN'
-Так теперь вы отключаете по имени вместо идентификационного номера , где идентификатор может измениться во времени, а затем вы отключите и включите другое устройство.
Наконец, вам нужно предоставить разрешения на выполнение этого файла; запустите эту команду с вашим рабочим каталогом в терминале в качестве домашнего каталога (где вы создали файл):
chmod +x your_script_name.sh
Итак, как только вы создадите этот файл с соответствующими командами, написанными внутри, убедитесь, что он находится в вашем выполните следующие шаги ниже:
Нажмите клавишу супер (клавиша Windows на ПК) на клавиатуре, чтобы открыть боковую панель единицы. Введите «системные настройки» и нажмите клавишу ввода. Найдите опцию «Клавиатура» в разделе «Оборудование» и нажмите на нее. Выберите вкладку «Ярлыки». В левом окне выберите «Пользовательские ярлыки». Нажмите кнопку + рядом с нижним центром. Должно появиться окно с запросом имени описания и команды для ввода. Сделайте имя что-то вроде «reset touchpad». Используйте эту команду: gnome-terminal -x ./name_of_your_script.sh Нажмите «Применить». Теперь вы должны увидеть свою ярлык, а справа - он должен сказать «отключен» или какой-то другой мусор. Нажмите на этот текст и будьте готовы сделать какую-то комбинацию клавиш, возможно, как ctrl + super + r. Как только вы сделаете эту комбинацию клавиш, все готово.Поздравляю! Получайте удовольствие.
Чтобы перезапустить драйвер тачпада ноутбука:
Откройте терминал, нажав Ctrl + Alt + T и выполнив следующую команду:
sudo modprobe -r psmouse
, затем
sudo modprobe psmouse
Я нашел решение здесь и есть решение для мыши usb
Если вы не знаете, какой модуль использует ваш тачпад, вы можете узнать немного о копании вокруг
grep -iA2 touchpad /proc/bus/input/devices
для меня, это возвращает
N: Name="Elan Touchpad"
P: Phys=
S: Sysfs=/devices/platform/80860F41:03/i2c-11/i2c-ELAN0100:00/input/input10
, а затем посмотрите, что ядровые модули доступны в этой категории:
ls $(find /lib/modules/$(uname -r) -type d -name mouse)
, который для меня возвращает
appletouch.ko bcm5974.ko cyapatp.ko elan_i2c.ko gpio_mouse.ko
psmouse.ko sermouse.ko synaptics_i2c.ko synaptics_usb.ko vsxxxaa.ko
Перекрестная ссылка на два - в моем случае это похоже, что модуль для моего тачпада [ f9]
Редактирование: Недавно я выяснил, как надежно получить имя используемого драйвера с запутанной командой, которую terdon легко упростил для меня
grep -hriPo 'DRIVER=\K.+' /sys 2>/dev/null | while read driver; do [ -e /lib/modules/$(uname -r)/kernel/drivers/input/mouse/"$driver"* ] && echo $driver; done
Чтобы проверить вас получил правильный модуль, протестируйте команду, чтобы выгрузить его из ядра:
sudo modprobe -r elan_i2c
Тачпад мгновенно умрет, если у вас есть правильный модуль, так что вы можете легко найти его с помощью проб и ошибок. Перезагрузите его с помощью
sudo modprobe elan_i2c
Это эффективно перезапустит модуль. Вы можете запустить две команды вместе следующим образом:
sudo modprobe -r elan_i2c && sudo modprobe elan_i2c
Мне иногда приходится делать это при возобновлении с приостановки.
Вот что для меня работало [Zenbook ASUS UX501VW]:
sudo modprobe -r elan_i2c
sudo modprobe elan_i2c
И моя пропавшая сенсорная панель вернулась.
Что может быть проще, и который работал для меня, - это перезагрузка драйвера в ядре. Следующий код сначала находит имя драйвера ядра, который обрабатывает сенсорную панель, затем выгружает ее с помощью rmmod и перезагружает ее с помощью modprobe. Обратите внимание, что для выполнения этих команд вам нужно быть root, поэтому сначала запустите sudo su.
> lsmod | grep touch
hid_multitouch 20480 0
> rmmod hid_multitouch
> modprobe hid_multitouch
Если у вас есть сенсорная панель synaptics:
synclient TouchpadOff=0
Одна команда bash для сброса сенсорной панели (на основе ответа @ user3499524):
id=`xinput --list |grep -i touchpad | cut -f2 | cut -f2 -d=` && xinput disable $id && xinput enable $id && echo "The touchpad has been reset."
иллюзионист.
Насколько я понимаю, вы используете Ubuntu 14.04; Mine немного отличается (следующим образом):
Этот ноутбук: Acer Swift 1 (EUFI); x86-64 бит.
Тип ОС: Ubuntu 16.04 LTS.
Тип сенсорной панели: SYNA7DAB: 00 06CB: сенсорная панель 7DAC (synaptics_i2c.ko).
Решение если: https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey
Создайте сценарий файла bash (как предлагается: создайте символическую ссылку на сценарий bash и наведите на нее горячую клавишу); Содержимое должно быть следующим:
#!/bin/bash
declare -a STATES=(1 0)
DEVICE=$(xinput list --name-only | grep Touchpad)
STATE=$(xinput list-props "$DEVICE" | grep 'Device Enabled' | sed 's/^.*:[ \t]*//')
xinput set-prop "$DEVICE" 'Device Enabled' ${STATES[$STATE]}
Убедитесь, что у него есть разрешения для eXecutable!
sudo chmod +x path/filename.sh
Это решение отлично работает для меня.
Решение предоставлено
По какой-то неизвестной причине: тачпад этого ноутбука автоматически магия становится нефункциональным (пока все еще работает AFAIK). Я попытался удалить оптическую мышь на основе USB; (! d14)
xinput --list dump:
larvae@MST-Laptop:~/Desktop$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=10 [slave pointer (2)]
⎜ ↳ SYNA7DAB:00 06CB:7DAC Touchpad id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Logitech USB Receiver id=9 [slave keyboard (3)]
↳ HD WebCam id=11 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
↳ Acer WMI hotkeys id=14 [slave keyboard (3)]
xinput --list dump:
larvae@MST-Laptop:~/Desktop$ grep -iA2 touchpad /proc/bus/input/devices
N: Name="SYNA7DAB:00 06CB:7DAC Touchpad"
P: Phys=i2c-SYNA7DAB:00
S: Sysfs=/devices/pci0000:00/0000:00:17.0/i2c_designware.4/i2c-9/i2c-SYNA7DAB:00/0018:06CB:7DAC.0003/input/input11
Рекомендация (предоставлена UBUNTU): https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey