Отключить указатель мыши, но прочитать события мыши

У вас есть параметры для основного ExecStart команда. Я не знаю, но подозреваю, что -Post и -Pre их не используют.

Принятие 10 и 11 как действительных: SuccessExitStatus =

Просмотр 111 как общего прерывателя сделки: RestartPreventExitStatus =

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

Я бы сделал что-то вроде этого:

#!/bin/sh

if [ -f /run/my-script-is-dead ]
then
    # to avoid very fast loop, sleep for a bit
    sleep 10
    exit 1
fi

# Run the script itself
/path/and/usual-command

# check result
RESULT=$?

if [ $RESULT -eq 10 ] || [ RESULT -eq 11 ]
then
    exit 0
fi

if [ $RESULT -eq 111 ]
then
    touch /run/my-script-is-dead
    exit 1
fi

exit $RESULT

Но если поместить файл в папку / run , он автоматически исчезнет при каждой перезагрузке. Если вам нужно что-то более постоянное, вам придется создать файл в другом месте (например, / var / cache / ...)

1
24.08.2017, 09:43
1 ответ

Вы можете использовать xinputдля удаления мыши из Virtual core pointer. Таким образом, курсор мыши (" основной указатель" )больше не будет им управляться, и основной протокол не будет производить никаких событий мыши.

Вы по-прежнему можете получать события мыши либо на входном слое, как вы уже делаете (через/dev/input). Обратите внимание, что это не движение X, а один слой ниже (до того, как evdevили аналогичные X-драйверы обработают его ).

Или вы можете получать события ввода X для отсоединенной мыши, используя расширение XINPUTX. См. xinput --testи xinput --test-xi2пример программы, которая это делает.

2
27.01.2020, 23:33

Теги

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