Отключить тачпад на экране входа
РЕДАКТИРОВАТЬ (редакция 4)
Согласно этому посту на ubuntuforums.org, выскочившей кулинарной книге и ответу CameronNemo, я попытался изменить первую строку с помощью
start on login-session-start
и я переместил файл conf в /etc/init/
, Скрипт сейчас запускается, но он не работает. Отчеты из файла журнала Cannot connect to X server
, Я пытался добавить в скрипт
export DISPLAY=":0"
export XAUTHORITY="/home/marco/.Xauthority"
но это пока не работает Ошибка Invalid MIT-MAGIC-COOKIE-1 key
,
Обратите внимание, что у меня нет проблем с запуском sudo xinput list
после входа
ОРИГИНАЛЬНЫЙ ОТВЕТ
Я использую Lubuntu 14.04 и хочу отключить тачпад при загрузке, если мышь подключена. Для этого я создал это ~/.config/upstart/touchpad.conf
выскочка работы:
start on desktop-start
script
mouse_state_old=-1
touchpad_id="$(xinput list | grep -i touchpad | grep -oP "\bid\s*=\s*\K\d+")"
while true ; do
mouse_state="$(xinput list | grep -ci mouse)"
if [ "$mouse_state" -ne "$mouse_state_old" ] ; then
if [ "$mouse_state" -gt 0 ] ; then
killall syndaemon
xinput disable "$touchpad_id"
else
xinput enable "$touchpad_id"
syndaemon -m 100 -i 1 -k -d
fi
fi
mouse_state_old="$mouse_state"
sleep 3
done
end script
Эта работа работает, но только после того, как я войду в ОС. Я хочу, чтобы тачпад был отключен до входа в систему на экране входа.
ИНФОРМАЦИЯ БОЛЬШЕ НЕ ТРЕБУЕТСЯ И ПРОСТО НЕПРАВИЛЬНО: согласно кулинарной книге, кажется, что lightdm не выдает правильное событие. Если я запускаю вручную
/sbin/initctl -q emit login-session-start DISPLAY_MANAGER=lightdm
Вызван скрипт upstart. Итак, я создал /etc/lightdm/lightdm.conf.d/90-upstart_login.conf
Conf файл с
[SeatDefaults]
greeter-setup-script=/home/marco/.local/usr/bin/all/upstart_login.sh
и /home/marco/.local/usr/bin/all/upstart_login.sh
сценарий с
#!/bin/sh
/sbin/initctl -q emit login-session-start DISPLAY_MANAGER=lightdm
Работает, если вызывается вручную из bash, но не при загрузке.
У меня lightdm версия 1.10.1-0ubuntu1, поэтому она должна генерировать событие.
2 ответа
Вы смешиваете системные и сеансовые задания и события. lightdm
выдает событие просто отлично, но в системный экземпляр Upstart. Скопируйте свой ~/.config/upstart/touchpad.conf
в /etc/init/
и изменить start on
событие в login-session-start
,
Вместо того, чтобы использовать Upstart, вы можете попробовать поместить ваш фрагмент скрипта в /etc/X11/session.d/
,
Убедитесь, что он называется 99local и не имеет #!bin/sh
заголовок.
Это также не должно быть исполняемым.
Это обеспечит запуск вашего сценария после установки xsession и его запуск всегда, поскольку сценарии в этом каталоге всегда выполняются при запуске X-сервера.