Ubuntu 多屏幕之触控屏幕设定
2023/11/11 |By G小编
Ubuntu 桌面版自推出后便大受好评,接口简洁好用而且系统负担低,吸引许多使用者将Windows笔电与桌机重灌为Ubuntu桌面版,让老旧的PC也能重生。虽然Ubuntu早已支持触控输入,在单屏幕的环境下触控屏幕可以即插即用、甚至支持多指触控手势;但双屏幕或多屏幕用户会发现,Ubuntu Desktop在双屏幕时显示正常,外接的触控屏幕却无法正常操作。这是因为该USB埠所传输的触控讯号没有正确映像到外接屏幕所致。
由于最新LTS版的Ubuntu Desktop(22.04.3 LTS)尚不存在触控输入的设定选项,请依照下列步骤,手动进行外接触控屏幕的映像设定。
使用Xinput 的 map_to_output设定
在Ubuntu Desktop多屏幕环境,利用Xorg的xinput package来进行触控屏幕映像设定是最简易的.设定步骤如下:
1. 确认Wayland是关闭的
Xorg与Wayland并不相容,请先到桌面配置文件中,确认wayland是关闭的。在Terminal输入下列指令:
$ sudo nano /etc/gdm3/custom.conf
找到WaylandEnable段落,确认内容设定为WaylandEnable=false
2. 确认显示器名称
在Terminal输入下列指令,可显示系统的所有显示器信息
$ xrandr
找到以HDMI连接的外接触控屏幕,在此处系统办识的名称为HDMI-1 (注:一般笔电内建屏幕的连接方式是eDP)
3. 确认外接触控屏幕的装置代号
在Terminal输入下列指令,可以列出系统的所有x输入设备信息,Gechic的全系列触控屏幕,请寻找名称包含「ILITEK」的装置。在此范例中,Gechic触控屏幕被系统辨识为代码11。
$ xinput list
4. 使用map-to-output指定触控映射至显示器
xinput提供指定映像至显示器的指令map-to-output,在Terminal输入下列指令,即可将系统辨识的USB装置11映像至显示器HDMI-1。
$ xinput map-to-output 11 “HDMI-1”
按Enter执行后,触控屏幕立即可正常触控。
然而此触控映射在重开机或外接屏幕的USB线重新插拔后便会失效,必须再一次输入map-to-output指令设定USB装置的映像位置。为了使用的便利性,建议参照下方,将map-to-output指令设定为桌面开机后的自动执行程序。
设定map_to_output自动执行档
xinput 的map-to-output指令必须在桌面环境启动后方能生效,因此建议写为桌面自动执行档,详细步骤如下:
1. 确认外接触控屏幕的属性名称
先前查到触控屏幕的系统办识的id为11,然而此id可能因为重开机或更换USB埠而异动,因此在设定自动执行档时,我们建议使用装置名称来取代装置id。
在Terminal输入下列指令,显示外接触控屏幕的所有属性数据,即可查到装置的名称为 'ILITEK ILITEK-TP ' (所有单引号之间的数据,包含空格)。
$ xinput list-props 11
2. 新增一个map-to-output 的脚本文件
在Terminal输入下列指令,可以在根目录的.config下新增一个档名为touchscreen.sh的文件
$ sudo nano ~/.config/touchscreen.sh
在内文输入下列指令,完成后按ctrl+x -->确认储存后离开。
#! /bin/bash
xinput map-to-output “ILITEK ILITEK-TP “ HDMI-1
在Terminal输入下列指令,开放touchscreen.sh的执行权限
$ sudo chmod+x ~/.config/touchscreen.sh
3. 新增一个桌面的自动执行档
在Terminal输入下列指令, 在根目录的.config/autostart下新增一个档名为touch.desktop 的档案(若不存在autostart文件夹,请自行新增)
$ sudo nano ~/.config/autostart/touch.desktop
在档案内输入下列内容,储存后离开。[注意: 执行档案的位置应为你的实际档案位置]
[Desktop Entry]
Type=Application
Name=touch
Exec=/home/gechic/.config/touchscreen.sh
4. 重新启动
重新启动后,测试外接触控屏幕,已能在正常位置显示触控反应。
Wayland下的多屏幕触控设定
Wayland是新一代的Linux显示管理器,在单屏幕下对于图形接口与触控输入都有良好的支持,然而目前Wayland尚在开发初期,并不存在multihead多屏幕下的触控输入设定方式,类似 xinput map-to-output的指令并不存在wayland中,而xinput指令在wayland开启的情况下是无效的。
若是希望在wayland下设定多屏幕触控的映像位置,则必须放弃gnome桌面、改用sway来配置应用窗口,才能使用map_to_output指令来设定第二触控屏幕的映像位置。
1. 查询显示器名称
安装好sway后,在登入页面的右下角选择sway后登入。打开Terminal并输入下列指令,安装swaymsg
$ sudo apt install swaymsg
安装完成后,输入下列指令,查询得到外接屏幕的输出装置名称为 Unknown Gechic T131A 000000202130
$ swaymsg -t get_outputs
2. 查询触控屏幕的输入名称
输入下列指令,查得触控屏幕的辨识名称Identifier为 8746:21568:ILITEK ILITEK-TP
$ swaymsg -t get_inputs
3. 设定触控装置映像至显示器
输入下列指令,以便编辑sway的配置文件
$ sudo nano ~/.config/sway/config
在output 段落中,输入下列指定,令触控的USB装置映像至HDMI外接屏幕。[第3列是指定外接屏幕解晰度与延伸位置,可省略]
set $display2 “Unknown Gechic T131A 000000202130”
set $display2-touch “8746:21568:ILITEK ILITEK-TP”
output HDMI-A-1 resolution 1920x1080 position 1366,0
input $display2-touch map_to_output $display2
4. 重新启动
输入reboot后重新启动,即可在外接触控屏幕上正确触控。
