You are not logged in.
it's a udev rule...
create a file in /etc/udev/rules.d/99-smtg.rules or merge w/ 99-meow.rules
add
SUBSYSTEM=="input", ATTRS{idVendor}=="0430", ATTRS{idProduct}=="0501", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1.1256 -0.0600 -1.0886 0 1.0564"and
sudo udevadm control --reload-rules
sudo udevadm triggerEdit:
Missed #23's edit. Will edit this post, after looking after that.
Last edited by 5hridhyan (2026-05-23 16:40:28)
Offline
After adding that udev rule, the touchscreen doesn't do anything :c And after removing it, the touchscreen doesn't do anything either. Weird.
Last edited by UliteXD (2026-05-23 16:44:15)
Offline
Sh!t my math is soo bad? Try reloading or rebooting...
Offline
Yeah, I did. 3 times actually, I first put the rule in the same file as the first rule, reloaded, didn't work, rebooted, didn't work. I then moved the rule to its own separate file, reloaded, didn't work, rebooted, didn't work. Then I removed the second rule entirely, reloaded, didn't work, rebooted, didn't work.
Edit:
Oh, wait, it does kinda work, see here: https://gofile.io/d/FdxMCH In that recording I was touching a random spot and moving my finger up and down, the cursor didn't move, but it registered a click (as you can see by the firefox scrollbar turning blue)
Last edited by UliteXD (2026-05-23 16:56:11)
Offline
does the meow.rules still have
SUBSYSTEM=="input", ENV{ID_VENDOR_ID}=="0430", ENV{ID_MODEL_ID}=="0501", ENV{ID_INPUT_TOUCHSCREEN}="1", ENV{ID_INPUT_POINTER}="0"or it's been overwritten? what does libinput list-devices show? does it still show capabilities as pointer touch?
Edit:
Enough!
run this block
for dev in /sys/bus/usb/devices/*; do
if [ -e "$dev/idVendor" ] && [ "$(cat "$dev/idVendor")" = "0430" ]; then
echo "$(basename "$dev")" | sudo tee /sys/bus/usb/drivers/usb/unbind
sleep 2
echo "$(basename "$dev")" | sudo tee /sys/bus/usb/drivers/usb/bind
fi
donesudo rm /etc/libinput/local-overrides.quirksit should at least be able to restore you previous state
if it does, we will later figure out about the matrix....
Last edited by 5hridhyan (2026-05-23 18:01:40)
Offline
Hi, sorry for the late response. I have ran the block of code you sent, and it outputted
2-1.6
2-1.6 May I ask what that code did? (my knowledge of bash is not enough to know what that code does) and what to do next?
Offline
That output means the USB device with vendor ID 0430 (your touchscreen controller) was successfully unbound from the USB subsystem and then rebound again. In simple terms, it forced Linux to disconnect and reconnect the touchscreen driver without rebooting
it just searched USB devices for vendor 0430, temporarily detached (unbind) the device from the kernel USB driver, waited 2 seconds, attached (bind) it back again
Now? I guess run libinput list-devices and also udevadm info /dev/input/eventX (replace eventX with the touchscreen event node from libinput list-devices)
and at this point im thinking of reconsidering to achieve this on wayland... thoughts?
Last edited by 5hridhyan (2026-05-23 20:06:09)
Offline
udevadm info returns
P: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6:1.0/0003:0430:0501.0002/input/input13/event4
M: event4
R: 4
J: c13:68
U: input
D: c 13:68
N: input/event4
L: 0
S: input/by-path/pci-0000:00:1d.0-usbv2-0:1.6:1.0-event-mouse
E: ID_VENDOR_ENC=Fujitsu\x20Component
E: ID_VENDOR_ID=0430
E: ID_REVISION=5001
E: ID_TYPE=hid
E: ID_USB_MODEL=USB_Touch_Panel
E: ID_USB_MODEL_ENC=USB\x20Touch\x20Panel
E: ID_USB_MODEL_ID=0501
E: ID_USB_SERIAL=Fujitsu_Component_USB_Touch_Panel
E: ID_USB_VENDOR=Fujitsu_Component
E: ID_USB_VENDOR_ENC=Fujitsu\x20Component
E: ID_USB_VENDOR_ID=0430
E: ID_USB_REVISION=5001
E: ID_USB_TYPE=hid
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH_WITH_USB_REVISION=pci-0000:00:1d.0-usbv2-0:1.6:1.0
E: ID_PATH=pci-0000:00:1d.0-usb-0:1.6:1.0
E: ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_6_1_0
E: ID_INTEGRATION=internal
E: LIBINPUT_DEVICE_GROUP=3/430/501:usb-0000:00:1d.0-1
E: ID_INPUT_TOUCHSCREEN=1
E: ID_INPUT_POINTER=0
E: DEVLINKS=/dev/input/by-path/pci-0000:00:1d.0-usbv2-0:1.6:1.0-event-mouse /dev/input/by-id/usb-Fujitsu_Component_USB_Touc0-event-mouse /dev/input/by-id/usb-Fujitsu_Component_USB_Touch_Panel-event-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0_Panel-event-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:1.6:1.0-event-mouseOffline
If you are giving up on this, could you tell me how do I manually make a calibration matrix for this screen, and where to put it so it actually takes effect?
Offline
Its pain, and I suck at calculation, best is switch to X11, run `xinput_calibrator` which it will sample touch points and output an affine calibration matrix (not non-linear correction).
then apply it using the Coordinate Transformation Matrix / TransformationMatrix in an Xorg file...
Offline
In that case, I'm going to fix some Xorg driver issues I have and continue troubleshooting in xorg
Offline
This one?
X11 gave me issues rendering text on chromium based applications
Might be better to debug that in a separate thread so it doesn’t mix with the touchscreen setup....
Last edited by 5hridhyan (2026-05-23 20:49:45)
Offline
Ok, done, it turns out I didn't compile the mesa driver correctly. Let's continue troubleshooting. I am now on Xorg
Offline
Great!, is the touchscreen at least working? you can move cursor?
if yes, follow this wiki:
https://wiki.archlinux.org/title/Calibr … our_screen
Last edited by 5hridhyan (2026-05-24 06:06:16)
Offline
Nope, cursor not moving, but when I tap it clicks. It now corresponds to what libinput saw a while ago (only mouse down and mouse up not mouse movement) Tho I think xorg used xinput or something like that so what libinput sees doesn't matter, right?
Offline
I see, First revert everything like no .rules no .quirks, guess we will start from starting to see how to make it at least work before we calculate caliberation...
run `xinput list`
Where is it listed? Is it sitting under Virtual core pointer or somewhere else?
what is its ID? Note the id=X number.
once you have that ID, run this to see what properties are active on it
xinput list-props <insert_your_device_id_here>Last edited by 5hridhyan (2026-05-24 11:26:15)
Offline
Hi, sorry for the late response. I have deleted those .rules and .quirks files we've created and then ran
sudo udevadm control --reload-rules && sudo udevadm trigger and the touchscreen is now working as it was before (with the calibration issues still).
The output of xinput list is
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Fujitsu Component USB Touch Panel id=6 [slave pointer (2)]
⎜ ↳ ImPS/2 Generic Wheel Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ Panasonic Laptop Support id=12 [slave keyboard (3)]As you can see, the device sits under Virtual core pointer, with its ID being 6.
The output of the command xinput list-props 6 is
Device 'Fujitsu Component USB Touch Panel':
Device Enabled (173): 1
Coordinate Transformation Matrix (175): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (304): 0
libinput Natural Scrolling Enabled Default (305): 0
libinput Middle Emulation Enabled (306): 0
libinput Middle Emulation Enabled Default (307): 0
libinput Rotation Angle (308): 0.000000
libinput Rotation Angle Default (309): 0.000000
libinput Calibration Matrix (310): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (311): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Left Handed Enabled (312): 0
libinput Left Handed Enabled Default (313): 0
libinput Send Events Modes Available (314): 1, 0
libinput Send Events Mode Enabled (315): 0, 0
libinput Send Events Mode Enabled Default (316): 0, 0
Device Node (317): "/dev/input/event4"
Device Product ID (318): 1072, 1281
libinput Drag Lock Buttons (319): <no items>
libinput Horizontal Scroll Enabled (320): 1
libinput High Resolution Wheel Scroll Enabled (321): 1And by the way, I am really thankful for your patience and help so far.
Offline
Glad, I couldn't find the tool from extra, maybe deprecated? anyways I found the AUR verison which hasn't been updated recently, but it should get the work done
https://aur.archlinux.org/packages/xinput_calibrator
install it and run
xinput_calibratoror `xinput_calibrator --device 6` based on your output
and follow onscreen instructions, after that, it will give you a block/ ask you to copy a snippet and paste it, and after pasting it, restart your X server to apply it...
Offline
Yeah, the thing is that I already tried that multiple times (that was what I was talking about when I said "And before someone says that this issue is duplicated, I did try the solutions to similar posts and they didn't work.") Everyone said to try that and it will just get sorted out, but I think X just ignores that config or something because every time I change that file (even putting some random values) nothing seems to change.
Offline
by running
xinput set-prop 6 "Coordinate Transformation Matrix" 0.5 0 0 0 0.5 0 0 0 1do you see any difference? Does your touch area shrink/warp?
you can verify it by running `xinput list-props 6 | grep "Coordinate Transformation Matrix"` if it changed...
after that, you can reset it to normal by changing the matrix to "1 0 0 0 1 0 0 0 1"
Last edited by 5hridhyan (2026-05-26 08:12:17)
Offline
Running xinput list-props 6 | grep "Coordinate Transformation Matrix" before the other command gives
Coordinate Transformation Matrix (175): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 After running the command, the output of xinput list-props 6 | grep "Coordinate Transformation Matrix" is
Coordinate Transformation Matrix (175): 0.500000, 0.000000, 0.000000, 0.000000, 0.500000, 0.000000, 0.000000, 0.000000, 1.000000The screen touch is now shrieked as we expected. What now?
Offline
Great, although idk why it isnt applying through .conf, also as mentioned earlier, revert it back, run
xinput set-prop 6 "Coordinate Transformation Matrix" 1 0 0 0 1 0 0 0 1based on your earlier outputs, run `xinput_calibrator --device 6` again, follow on-screen instructions. And then when it completes, and outputs; ignore the file instructions and just look for the numbers inside it, and then with those, you can create a script which will run your "caliberated" matrices, every time, like create a script and in settings scroll down, you will see auto start, and from there select login script and then browse and select your created script.
Last edited by 5hridhyan (2026-05-26 15:49:51)
Offline
Sorry but I don't have the sufficient bash knowledge to create such a script
Offline
Can you share the output/results of xinput_calibrator of your screen?
Last edited by 5hridhyan (2026-05-26 15:10:36)
Offline
Yes, of course, the output of xinput_calibrator is:
Calibrating standard Xorg driver "Fujitsu Component USB Touch Panel"
current calibration values: min_x=0, max_x=65535 and min_y=0, max_y=65535
If these values are estimated wrong, either supply it manually with the --precalib option, or run the 'get_precalib.sh' script to automatically get it (through HAL).
--> Making the calibration permanent <--
copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
Identifier "calibration"
MatchProduct "Fujitsu Component USB Touch Panel"
Option "MinX" "3637"
Option "MaxX" "63369"
Option "MinY" "3677"
Option "MaxY" "61985"
EndSectionOffline