Скомпилируйте xf86-input-libinput и получите мою версию для использования [закрыто]

Это потому, что readarray не удаляет разделитель (новая строка по умолчанию), если он вызывается с параметром -t .

Используя более простой метод declare -p var для печати значений массива, посмотрите на это:

$ readarray array < <(echo -e "Jenny\nJane\nJessica")
$ declare -p array
declare -a array=([0]=$'Jenny\n' [1]=$'Jane\n' [2]=$'Jessica\n')

Вы можете увидеть завершающие символы новой строки для каждого элемента.

Хотя это:

$ readarray -t array < <(echo -e "Jenny\nJane\nJessica")
$ declare -p array
declare -a array=([0]="Jenny" [1]="Jane" [2]="Jessica")

не имеет завершающих символов новой строки.

Использование раскрытия переменных без кавычек - плохая идея, только не делайте этого.

1
21.12.2015, 00:37
1 ответ

Вам нужно убедиться, что новая библиотека действительно заменяет библиотеку вашей системы. В системе Debian amd64 это будет что-то вроде /usr/lib/x86_64-linux-gnu/libinput.so.10 .6.2; вы должны скопировать свою новую библиотеку туда:

./configure && make && sudo cp -P src/.libs/libinput.so* /usr/lib/x86_64-linux-gnu/

Более эффективным подходом будет использование модификации пакета libinput вашего дистрибутива; например, в Debian:

apt-get source libinput
cd libinput-1.1.3

Измените evdev-mt-touchpad-gestures. c соответствующим образом, затем

dch -n "Reduce two-finger scroll timeout."
dch -r ignored
dpkg-buildpackage -us -uc
sudo dpkg -i ../libinput10*deb

(У вас должны быть установлены devscripts и dpkg-dev.)

Вы можете сделать что-то подобное в дистрибутивах на базе RPM.

1
27.01.2020, 23:49

Теги

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