Отключить тачпад на экране входа

РЕДАКТИРОВАТЬ (редакция 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-сервера.

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