Я хотел отключить тачпад перед входом в систему в Ubuntu 16.10.
Я пытался выполнить
#!/bin/bash
ID=$(/usr/bin/xinput list --id-only "SynPS/2 Synaptics TouchPad")
if [[ $ID ]]; then
/usr/bin/xinput --disable $ID
echo "Touchpad disabled"
else
echo "Touchpad not found"
fi
при загрузке с systemctl, rc.d, что нет. Ничего не работало, так как требовался X или что-то в этом роде.
решение1
Добавьте следующий код в
/usr/share/X11/xorg.conf.d/*-synaptics.conf
# Disable generic Synaptics device, as we're using
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SynPS/2 Synaptics TouchPad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
Перезагрузите и проверьте, работает ли все.
решение2
У меня установлен Linux Mint 18 с ядром 4.4.0-45. Я сделал следующее, чтобы было проще переключать состояние тачпада.
sudo apt-get install xinput
xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse id=11 [slave pointer (2)]
⎜ ↳ **FTE1001:00 0B05:0101** ***id=14*** [slave pointer (2)]
Найдите идентификатор тачпада, в моем случае это 14. Я написал небольшой скрипт для включения и выключения тачпада.
Сенсорная панель выключена:
cd /usr/local/bin
sudo nano touchpad-off
#!/bin/bash # touchpad off xinput --set-prop 14 "Device Enabled" 0 echo touchpad off
Сенсорная панель включена:
sudo nano touchpad-on
#!/bin/bash # touchpad on xinput --set-prop 14 "Device Enabled" 1 echo touchpad on
Сделайте скрипты исполняемыми с помощью:
chmod +x touchpad-off chmod +x touchpad-on
Теперь вы можете легко переключать состояние сенсорной панели с помощью
touchpad-off
иtouchpad-on
в вашем терминале.
ОТКЛЮЧИТЬ ПРИ ЗАГРУЗКЕ:
Перейдите в Startup Applications и Add a new startup app, найдите скрипт touchpad-off
и добавьте его в список. Вам нужно убедиться, что скрипт расположен в usr/local/bin
указанном выше месте, а также убедиться, что он исполняемый.
Еще одна вещь, которую нужно дважды проверить, это убедиться, что файл запускается с помощью Autorun Prompt. Щелкните правой кнопкой мыши по файлу и перейдите на вкладку «Открыть с помощью», затем выберите Autorun Prompt.
решение3
Поскольку я сталкиваюсь с этим каждый раз, когда покупаю новый Thinkpad, вот несколько более обобщенный метод, основанный на двух других ответах:
- найдите имя сенсорной панели:
xinput --list
. Вы должны получить что-то вроде этого:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 Elan TrackPoint id=15 [slave pointer (2)]
⎜ ↳ SYNA8022:00 06CB:CE67 Touchpad id=12 [slave pointer (2)]
⎜ ↳ SYNA8022:00 06CB:CE67 Mouse id=11 [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)]
↳ Integrated Camera: Integrated C id=9 [slave keyboard (3)]
↳ Intel HID events id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=16 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera: Integrated I id=10 [slave keyboard (3)]
В моем случае имя, которое нужно использовать, будетSYNA8022:00 06CB:CE67 Touchpad
Проверьте, действительно ли это правильное устройство (и избавьте себя от перезагрузки):
xinput --set-prop ID "Device Enabled" 0
, где ID — это ID из списка, который вы получили с помощью команды выше. Если это отключает сенсорную панель, то вы нашли правильный ID и имяСоздайте файл,
/etc/X11/xorg.conf.d/
назовите его, например,20_synaptics.conf
(номер определяет порядок относительно других файлов, как обычно):
# Disable touchpad
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SYNA8022:00 06CB:CE67 Touchpad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
Строка MatchProduct должна быть той, которую вы нашли в списке xinput.
- Чтобы проверить, работает ли это, переключитесь на текстовую консоль, нажав Ctrl+Alt+F3 (или попробуйте другие цифры, если консоль 3 уже занята). Войдите в систему, затем запустите сеанс X:
sudo xinit -- :2
. Это запустит второй сервер X без перезагрузки вашего компьютера. Вы, вероятно, увидите только одно окно терминала (без рамки, потому что у вас не будет запущенного оконного менеджера), но этого достаточно, чтобы проверить, отключена ли сенсорная панель. Вы можете выйти, набрав Ctrl+D в окне терминала.