Изменения в xinput случайным образом возвращаются к умолчанию

отредактируйте файл / etc / default / grub. измените следующую строку на:

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

Вы даже можете удалить «тихий», если хотите более многословную загрузку. затем выполните:

sudo update-grub
4
задан 19 February 2018 в 08:07

3 ответа

Это кажется ошибкой (тот факт, что устройство сенсорного экрана случайным образом отключается и снова соединяется как новое устройство, которое имеет побочный эффект сброса всех настроек по умолчанию).

Как обходной путь, вы можете создать свое собственное правило udev (имя файла на основе этих предложений Daniel Drake), в котором будет запущен скрипт, который повторно применяет изменения xinput всякий раз, когда сенсорный экран снова соединяется:

sudo nano /etc/udev/rules.d/10-custom-elan.rules

и добавляет эту строку, которая содержит информацию «idVendor» и «idProduct» (из вашего syslog). Необходимо использовать udev в «elan.sh».

ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="2073", RUN+="/home/username/elan.sh"

(что примерно соответствует «», когда найдено устройство, которое соответствует указанным атрибутам, запустите назначенный скрипт ").

Затем создайте фактический скрипт для запуска " idVendor ":

nano /home/username/elan.sh 

со следующими строками:

И, конечно же, сделать его исполняемым:

chmod +x /home/username/elan.sh

Без строк экспорта скрипт работает при вызове вами (активном пользователе) напрямую, но он не работает при вызове udev (пользователь root). Подробности можно найти в этих предложениях Daniel Drake [! ​​d3] и этот ответ, но вот краткий обзор:

Чтобы запустить графическую программу на рабочем столе пользователя, вам нужно две вещи: адрес (на котором отображается рабочий стол пользователя) и авторизация. Когда пользователь входит в систему, диспетчер регистрации разрешает подключение к X-серверу, создавая куки-файл, добавляя его на сервер и передавая его в пользователь, записав его в $ HOME / .Xauthority. Тогда пользователь root должен иметь возможность подключиться, зная экран, используемый пользователем, и доступ к файлу cookie Xauthority. Это export lines.

Примечание: тот факт, что номер дисплея жестко запрограммирован, может вызвать проблему при некоторых обстоятельствах, но в этом сценарии использования (один пользователь персональный ноутбук), вероятно, это будет нормально.

1
ответ дан 22 May 2018 в 13:04
  • 1
    @Ratler Спасибо за редактирование и дополнительную информацию. – stumblebee 29 March 2018 в 07:21
  • 2
    Это было почти так, поэтому я добавил несколько моментов (в основном, «экспорт» в сценарии), чтобы сделать это полным решением, которое (наконец!) Работало для меня. Спасибо за вашу помощь! – Ratler 29 March 2018 в 07:24

Это кажется ошибкой (тот факт, что устройство сенсорного экрана случайным образом отключается и снова соединяется как новое устройство, которое имеет побочный эффект сброса всех настроек по умолчанию).

Как обходной путь, вы можете создать свое собственное правило udev (имя файла на основе этих предложений Daniel Drake), в котором будет запущен скрипт, который повторно применяет изменения xinput всякий раз, когда сенсорный экран снова соединяется:

sudo nano /etc/udev/rules.d/10-custom-elan.rules

и добавляет эту строку, которая содержит информацию «idVendor» и «idProduct» (из вашего syslog). Необходимо использовать udev в «elan.sh».

ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="2073", RUN+="/home/username/elan.sh"

(что примерно соответствует «», когда найдено устройство, которое соответствует указанным атрибутам, запустите назначенный скрипт ").

Затем создайте фактический скрипт для запуска " idVendor ":

nano /home/username/elan.sh

со следующими строками:

#!/usr/bin/env bash #These lines allow the script to be called by udev rules export DISPLAY=":0" export XAUTHORITY="/home/username/.Xauthority" #Command to remap buttons xinput set-button-map "ELAN Touchscreen Pen" 1 3 2 4 5

И, конечно же, сделать его исполняемым:

chmod +x /home/username/elan.sh

Без строк экспорта скрипт работает при вызове вами (активном пользователе) напрямую, но он не работает при вызове udev (пользователь root). Подробности можно найти в этих предложениях Daniel Drake [! ​​d3] и этот ответ, но вот краткий обзор:

Чтобы запустить графическую программу на рабочем столе пользователя, вам нужно две вещи: адрес (на котором отображается рабочий стол пользователя) и авторизация. Когда пользователь входит в систему, диспетчер регистрации разрешает подключение к X-серверу, создавая куки-файл, добавляя его на сервер и передавая его в пользователь, записав его в $ HOME / .Xauthority. Тогда пользователь root должен иметь возможность подключиться, зная экран, используемый пользователем, и доступ к файлу cookie Xauthority. Это export lines.

Примечание: тот факт, что номер дисплея жестко запрограммирован, может вызвать проблему при некоторых обстоятельствах, но в этом сценарии использования (один пользователь персональный ноутбук), вероятно, это будет нормально.

1
ответ дан 17 July 2018 в 20:43

Это кажется ошибкой (тот факт, что устройство сенсорного экрана случайным образом отключается и снова соединяется как новое устройство, которое имеет побочный эффект сброса всех настроек по умолчанию).

Как обходной путь, вы можете создать свое собственное правило udev (имя файла на основе этих предложений Daniel Drake), в котором будет запущен скрипт, который повторно применяет изменения xinput всякий раз, когда сенсорный экран снова соединяется:

sudo nano /etc/udev/rules.d/10-custom-elan.rules

и добавляет эту строку, которая содержит информацию «idVendor» и «idProduct» (из вашего syslog). Необходимо использовать udev в «elan.sh».

ATTRS{idVendor}=="04f3", ATTRS{idProduct}=="2073", RUN+="/home/username/elan.sh"

(что примерно соответствует «», когда найдено устройство, которое соответствует указанным атрибутам, запустите назначенный скрипт ").

Затем создайте фактический скрипт для запуска " idVendor ":

nano /home/username/elan.sh

со следующими строками:

#!/usr/bin/env bash #These lines allow the script to be called by udev rules export DISPLAY=":0" export XAUTHORITY="/home/username/.Xauthority" #Command to remap buttons xinput set-button-map "ELAN Touchscreen Pen" 1 3 2 4 5

И, конечно же, сделать его исполняемым:

chmod +x /home/username/elan.sh

Без строк экспорта скрипт работает при вызове вами (активном пользователе) напрямую, но он не работает при вызове udev (пользователь root). Подробности можно найти в этих предложениях Daniel Drake [! ​​d3] и этот ответ, но вот краткий обзор:

Чтобы запустить графическую программу на рабочем столе пользователя, вам нужно две вещи: адрес (на котором отображается рабочий стол пользователя) и авторизация. Когда пользователь входит в систему, диспетчер регистрации разрешает подключение к X-серверу, создавая куки-файл, добавляя его на сервер и передавая его в пользователь, записав его в $ HOME / .Xauthority. Тогда пользователь root должен иметь возможность подключиться, зная экран, используемый пользователем, и доступ к файлу cookie Xauthority. Это export lines.

Примечание: тот факт, что номер дисплея жестко запрограммирован, может вызвать проблему при некоторых обстоятельствах, но в этом сценарии использования (один пользователь персональный ноутбук), вероятно, это будет нормально.

1
ответ дан 23 July 2018 в 21:21

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

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