LINUX.ORG.RU

MasTouch USB Touchscreen и Kubuntu 18.04

 , , ,


0

3

Приветствую!

Есть необходимость заставить сабж работать. По умолчанию сабж откликается на нажатия, но курсор бултыхается в левом верхнем углу экрана. Установлен и запущен xinput_calibrator, который создал вот такой выхлоп, который я поместил в /usr/share/X11/xorg.conf.d/99-calibration.conf

Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "MASTouch TouchSystems MASTouch USB 

Touchscreen"
        Option  "MinX"  "-9"
        Option  "MaxX"  "2108"
        Option  "MinY"  "747"
        Option  "MaxY"  "2453"
        Option  "SwapXY"        "0" # unless it was already set to 1
        Option  "InvertX"       "0"  # unless it was already set
        Option  "InvertY"       "0"  # unless it was already set
EndSection

Но на ситуацию это никак не повлияло даже после перезагрузки. Ручной xinput set-props так же погоды не сделал. Опытным путем выяснилось, что kde считает тачскрин джостиком js0

cat /proc/bus/input/devices

I: Bus=0003 Vendor=0df9 Product=0001 Version=0111
N: Name="MASTouch TouchSystems MASTouch USB Touchscreen"
P: Phys=usb-0000:00:14.0-7/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7:1.0/0003:0DF9:0001.0001/input/input3
U: Uniq=
H: Handlers=mouse0 event3 js0 
B: PROP=0
B: EV=1b
B: KEY=70000 0 0 0 0
B: ABS=10000000003
B: MSC=10

И соответственно отображает его в настройках рабочей среды. Калибровка его как джойстика тоже разницы не сделало, хотя отображаться касания в инструменте стали в правильных областях. Отсюда вопрос: что я делаю не так?

Решил проблему с помощью скрипта с сайта https://wiki.archlinux.org/index.php/Talk:Calibrating_Touchscreen

device=$(xinput_calibrator --list)
device=$(sed -n 's/.*Device\s\"\(.*\)\".*/\1/p' <<< $device)

#reset xinput matrix
xinput set-prop "$device" 'Coordinate Transformation Matrix' 1 0 0 0 1 0 0 0 1

out=$(xinput_calibrator)

device_name=$(sed -n 's/.*MatchProduct\"\s\"\([0-9]*\).*/\1/p' <<< $out)

wtot=$(sed -n 's/.*max_x=\([0-9]*\).*/\1/p' <<< $out)
htot=$(sed -n 's/.*max_y=\([0-9]*\).*/\1/p' <<< $out)

minx=$(sed -n 's/.*MinX\"\s\"\([0-9]*\).*/\1/p' <<< $out)
maxx=$(sed -n 's/.*MaxX\"\s\"\([0-9]*\).*/\1/p' <<< $out)
miny=$(sed -n 's/.*MinY\"\s\"\([0-9]*\).*/\1/p' <<< $out)
maxy=$(sed -n 's/.*MaxY\"\s\"\([0-9]*\).*/\1/p' <<< $out)

wtouch=$(bc <<< "$maxx - $minx")
htouch=$(bc <<< "$maxy - $miny")

c0=$(bc -l <<< "$wtot / $wtouch")
c1=$(bc -l <<< "-$minx / $wtouch")
c2=$(bc -l <<< "$htot / $htouch")
c3=$(bc -l <<< "-$miny / $htouch")

tf_matrix="$c0 0 $c1 0 $c2 $c3 0 0 1"

#alter the setting for now
xinput set-prop "$device" 'Coordinate Transformation Matrix' $tf_matrix

echo "To make this permanent, save the following content under '/etc/X11/xorg.conf.d/98-screen-calibration.conf' or '/usr/share/X11/xorg.conf.d/98-screen-calibration.conf'"
echo "Section \"InputClass\""
echo "	Identifier \"calibration\""
echo "	MatchProduct \"$device\""
echo "	Option \"TransformationMatrix\" \"$tf_matrix\""
echo "EndSection"

Спасибо за помощь.

stein_h ()