
正文
linux反转命令 linux 取反
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
树莓派(Linux 系统)触摸屏翻转显示以及触摸翻转
树莓派(Linux 系统)触摸屏翻转显示以及触摸翻转
问题:未使用的Pi官方屏幕,所以使用HDMI屏幕显示的时候,显示旋转的同时,触摸没有旋转
目的:旋转屏幕显示的同时,使得触摸也跟随旋转
操作总流程:
旋转90度操作
翻转显示:
1.sudo nano /boot/config.txt
2.在文件末尾加入
display_rotate=0
display_rotate=1 //90°
display_rotate=2 //180°
display_rotate=3 //270°
ctrl + o 保存文档 重启即可。
注:以下操作皆为SSH操作,所以每条指令前都加了DISPLAY=:0,如果本机操作删掉即可。
1.安装xinput
sudo apt-get install xinput
2.列出所有输入设备信息 远程操作时,使用xinput指令需要加入DISPLAY=:0
DISPLAY=:0 xinput --list
3.列出目标设备属性
DISPLAY=:0 xinput --list-props 7
4.旋转触摸的坐标轴
1)所以先交换x、y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1
2)然后反转y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1
显示旋转修改之后需要重启。而触摸旋转不需要重启。
详细操作方法:
1.安装xinput
sudo apt-get install xinput
描述:
xinput - utility to configure and test X input devices
xinput-用于配置和测试X输入设备的实用程序
xinput is a utility to list available input devices,
xinput是一个实用程序,可以列出可用的输入设备、
query information about a device and change input device settings.
关于设备的查询信息和更改输入设备设置
2.列出所有输入设备信息
xinput --list
如果远程操作记得在命令前加DISPLAY=:0
得到以下信息:
pi@NTGAGE:~ $ DISPLAY=:0 xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech USB Optical Mouse id=6 [slave pointer (2)]
⎜ ↳ WaveShare WaveShare Touchscreen id=7 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Logitech USB Keyboard id=8 [slave keyboard (3)]
↳ Logitech USB Keyboard id=9 [slave keyboard (3)]
3.列出目标设备属性
由于所使用的触摸屏幕是微雪7寸屏幕,由以上信息可以得到微雪的触摸屏对应的ID为7
所以,接下来看这款输入设备的属性,
pi@NTGAGE:~ $ DISPLAY=:0 xinput --list-props 7
Device 'WaveShare WaveShare Touchscreen':
Device Enabled (115): 1
Coordinate Transformation Matrix (116): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (240): 0
Device Accel Constant Deceleration (241): 1.000000
Device Accel Adaptive Deceleration (242): 1.000000
Device Accel Velocity Scaling (243): 10.000000
Device Product ID (244): 3823, 5
Device Node (245): "/dev/input/event3"
Evdev Axis Inversion (246): 0, 0
Evdev Axis Calibration (247): no items
Evdev Axes Swap (248): 0
Axis Labels (249): "Abs MT Position X" (267), "Abs MT Position Y" (268), "Abs MT Pressure" (269), "None" (0), "None" (0), "None" (0)
Button Labels (250): "Button Unknown" (233), "Button Unknown" (233), "Button Unknown" (233), "Button Wheel Up" (121), "Button Wheel Down" (122)
Evdev Scrolling Distance (251): 0, 0, 0
Evdev Middle Button Emulation (252): 0
Evdev Middle Button Timeout (253): 50
Evdev Third Button Emulation (254): 0
Evdev Third Button Emulation Timeout (255): 1000
Evdev Third Button Emulation Button (256): 3
Evdev Third Button Emulation Threshold (257): 20
Evdev Wheel Emulation (258): 0
Evdev Wheel Emulation Axes (259): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (260): 10
Evdev Wheel Emulation Timeout (261): 200
Evdev Wheel Emulation Button (262): 4
Evdev Drag Lock Buttons (263): 0
这块屏幕正常显示和触摸的信息如上。
如果执行到这一步,发现并没有以上的Evdev等属性项,请跳转第2种方法。
现在需要达到的目的是在屏幕显示反转的同时,使得触摸也随显示翻转。
屏幕显示为翻转90度。/boot/config.txt设置为display_rotate=1
上述信息中Evdev Axis Inversion 项是每条轴的旋转设置项,后面第一个参数是x,第二个参数是y.
Evdev Axes Swap项对应的是两条轴的交换。
0为不翻转,1为翻转
例如。x轴原本是朝向右的,当把Evdev Axis Inversion的第一个参数
设置为1,即x轴朝向左。
4.旋转触摸的坐标轴
现在目的是要触摸旋转90度,从坐标轴理解:
即目的x轴正向为初始y轴的反向。目的y轴的正方向为初始x轴的正向。
1)所以先交换x、y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axes Swap' 1
2)然后反转y轴
DISPLAY=:0 xinput --set-prop '7' 'Evdev Axis Inversion' 0 1
这样即可完成触摸旋转90度。若要旋转其他角度,推理一下即可。
显示旋转修改之后需要重启。而触摸旋转不需要重启。
第二种方法
如果查询到的信息如下
DISPLAY=:0 xinput --list-props 6
Device 'WaveShare WaveShare Touchscreen':
Device Enabled (114): 1
Coordinate Transformation Matrix (115): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix (246): 0.000000, 1.000000, 0.000000, -1.000000, 0.000000, 1.000000, 0.000000, 0.000000, 1.000000
libinput Calibration Matrix Default (247): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Send Events Modes Available (248): 1, 0
libinput Send Events Mode Enabled (249): 0, 0
libinput Send Events Mode Enabled Default (250): 0, 0
Device Node (251): "/dev/input/event0"
Device Product ID (252): 3823, 5
可以看到该驱动方式采用的是libinput,
查看/usr/share/X11/xorg.conf.d/目录下是否有40-libinput.conf这个文件。
无 则需要安装
sudo apt-get install xserver-xorg-input-libinput
下一步安装完成后ls一下,就可以看到在/usr/share/X11/xorg.conf.d/目录下存在该文件,
下一步复制该文件到/etc/X11/xorg.conf.d/目录下。
一开始xorg.conf.d这个目录在/etc/X11可能没有,需要自己创建。
sudo mkdir xorg.conf.d
下一步复制到xorg.conf.d 目录下即可。
sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
下一步进入/etc/X11/xorg.conf.d/目录下修改40-libinput.conf 文件
cd /etc/X11/xorg.conf.d/
sudo nano 40-libinput.conf
找到touchscreen section
Section "InputClass"
Identifier "libinput touchscreen catchall"
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
添加一行 Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1
结果为
Section "InputClass"
Identifier "libinput touchscreen catchall"
Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
EndSection
然后重启生效
这样的修改也是同样修改为翻转90度,如果需要修改为其他角度,请参考libinput的算法
相关问答
Q1: linux常用命令(rev、查看系统版本)
1.查看系统版本是centos7还是centos8
执行命令
修改内核到指定版本-参考文章:
2、rev命令
rev命令是让文本横向反转的命令。比如:123456 反转 为 654321
可以通过执行命令:echo '123456' |rev 或者 cat test.txt | rev
Q2: Linux里面ll -r命令作用是什么?
题主你好,
首先ll这个命令是ls -l的缩写, 也就是 ll 等价于 ls -l.
太长不看版: ll -r的作用是反转结果并输出,ll输出是1,2,3,4,5,则加上-r后输出5,4,3,2,1.
-----
而ls -l,即ll,的作用是"列出详细信息", 下图对比一下,光输和ls和输入ls -l, 来理解什么叫做"列出详细信息":
接下来再说-r这个参数的作用:
请点击输入图片描述bn
也就是说-r参数的作用是,当ls的输出被排序的话,则将排过序的结果反转并输出,说白了就是之前输出的是1,2,3,4,5,加上-r参数后输出的就是5,4,3,2,1.
但-r参数这里有一个需要注意的点,只有ls的结果被排序后,-r参数才起作用, 而题主给的ls -l命令中,-l选项是输出详细信息, 并没有排序的参数呀?,实际上帮助文档中也有相关的描述:
也就是说当ls命令后没有指定cftuvSUX以及--sort中选项时,会自动根据文件名称的字母顺序进行排序,所以因为ls -l的参数为-l,而-l这个选项不在cftuvSUX以及--sort中,因此,
ls -l在列出文件详细信息的时候也会动按照文件名称排序了,所以 -r参数才会起作用(因为上面说了-r参数是对排序后的内容进行反转,而ls -l已经对内容做了排序操作了).
-----
测试:
可以看到ls -l输出的结果是a,b,c 而加上-r参数后的结果是c,b,a
-----
希望可以帮到题主, 欢迎追问.
关于linux反转命令和linux 取反的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





