Я уже сделал это для Debian 9. Для получения дополнительной информации просто откройте ссылку на мой блог .
Для сенсорного экрана мы можем использовать драйвер libinput или evdev . Libinput заменяет драйвер evdev. Приведенная ниже конфигурация создана для evdev .
Получить информацию о xserver -xorg -input .В результате не должно быть файла конфигурации evdev .
dpkg -l | grep xserver-xorg-input
Теперь установите драйвер evdev.
apt-get install xserver-xorg-input-evdev
Проверить, установлен ли драйвер evdev
dpkg -l | grep xserver-xorg-input
Проверьте, находятся ли файлы конфигурации в каталоге /usr/share/X11/xorg.conf.d .
cd /usr/share/X11/xorg.conf.d
ls
Результат:
10-amdgpu.conf 10-evdev.conf 10-quirks.conf 40-libinput.conf 70-wacom.conf
Мы можем удалить драйвер libinput:
apt-get remove --auto-remove xserver-xorg-input-libinput
Установить xinput -калибратор
sudo apt-get install xinput-calibrator
Проверьте, нужно ли поменять местами оси . если вам нужно поменять местами, просто запустите:
xinit set-int-prop "eGalax Inc." "Evdev Axes Swap" 8 1
Запустите калибратор, чтобы получить правильные координаты x, y .
xinput_calibrator --output-type xinput
pgrep
соответствует имени процесса, указанному в ps
без -f
, а pgrep -f
соответствует списку аргументов, указанному в ps -f
или вашем нестандартном -ps aux
.
firefox
изменяет имена своих потоков, чтобы определить, что каждый из них делает.
Попробуйте (принять значение по умолчанию $IFS
):
ps -L -o comm= -p $(pgrep -wf firefox)
В котором перечислены имена всех потоков из процессов со списком аргументов, который содержит firefox
, и вы увидите много таких вещей, как:
MainThread
gmain
gdbus
Gecko_IOThread
Timer
Netlink Monitor
Socket Thread
Permission
JS Watchdog
JS Helper
[...]
Таким образом, для firefox
вы можете сопоставить список аргументов (список аргументов из последней команды, которую они или их родители выполнили, если они есть )сpgrep -f firefox
(добавить -w
, если вы хотите перечислить все threads ), а не имя процесса/потока. Или pgrep -f '^[^ ]*firefox'
для соответствия только первому слову этого списка аргументов(pgrep
объединяет аргументы с пробелами перед сопоставлением, как вps -f
).
В любом случае, любой процесс может установить или изменить свое имя процесса или список аргументов на что угодно¹, поэтому поиск процессов таким образом никогда не будет надежным.
Если вы хотите сопоставить процесс, в котором в данный момент запущен исполняемый файл /usr/lib/firefox/firefox
, в Linux и сzsh
:
print -rC1 /proc/<1->/exe(Ne['[[ $REPLY -ef /usr/lib/firefox/firefox ]]']:h:t)
Или для резьбы:
print -rC1 /proc/<1->/task/*/exe(Ne['[[ $REPLY -ef /usr/lib/firefox/firefox ]]']:h:t)
(обратите внимание, что если у вас нет привилегий суперпользователя, вы не сможете получить эту информацию для процессов, запущенных не так, как вы ).
Или, возможно, более портативно сlsof
:
lsof -Fd /usr/lib/firefox/firefox | sed '/^p/h;/^ftxt/!d;g;s/^p//'
Или для резьбы:
lsof -K -FKd /usr/lib/firefox/firefox | sed '/^K/h;/^ftxt/!d;g;s/^K//'
¹ однако обратите внимание, что длина имени процесса часто ограничена (15 байтами в Linux ), и в зависимости от ОС и версии ОС не весь список аргументов легко доступен для проверки системой.