我有两个不同尺寸的双显示器设置。我的主显示器是 23 英寸宽屏 Acer T230H 触摸屏,第二个显示器是普通的 20 英寸。当我使用触摸屏时,光标会根据我触摸显示器的位置显示在辅助显示屏上。我如何校准它以仅控制我的主显示器?
答案1
正如 Beni Cherniavsky-Paskin 在评论中所建议的那样,我使用以下命令将输入设备映射到输出屏幕:
xinput map-to-output <device> <output>
为了弄清楚哪个是哪个,我首先运行xinput
以列出输入设备。从该列表中,我观察到我的触摸屏是“QUANTA 光学触摸屏”,并列为设备 ID 12。然后我运行xrandr
以确定触摸屏,在我的情况下是 VGA1。
只需输入以下命令即可:
xinput map-to-output 12 VGA1
答案2
正如 Beni Cherniavsky-Paskin 和 Paul Lammertsma 在上述评论中所建议的那样,xinput map-to-output <device> <output>
这对我很有用!
你首先需要运行xinput
来获取输入设备的 ID,
上述命令为我返回类似这样的内容。
user@user-hpEnvy:~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:401b id=10 [slave pointer (2)]
⎜ ↳ Logitech Unifying Device. Wireless PID:4016 id=11 [slave pointer (2)]
⎜ ↳ ELAN20E7:00 04F3:20E7 id=13 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=15 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ Power Button id=9 [slave keyboard (3)]
↳ HP Truevision HD id=12 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ HP Wireless hotkeys id=16 [slave keyboard (3)]
↳ HP WMI hotkeys
接下来我运行xrandr
获取屏幕列表,命令的输出如下
user@user-hpEnvy:~$ xrandr
Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767
eDP1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
1920x1080 60.0*+ 59.9 40.0
1680x1050 60.0 59.9
1600x1024 60.2
1400x1050 60.0
1280x1024 60.0
1440x900 59.9
1280x960 60.0
1360x768 59.8 60.0
1152x864 60.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
HDMI1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 600mm x 340mm
1920x1080 60.0*+ 50.0 59.9
1680x1050 59.9
1600x900 60.0
1280x1024 60.0
1440x900 59.9
1280x720 60.0 50.0 59.9
1024x768 60.0
800x600 60.3
720x576 50.0
720x480 60.0 59.9
640x480 60.0 59.9
720x400 70.1
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
在我的情况下,触摸设备ELAN20E7:00 04F3:20E7 id=13
和触摸屏是eDP1
为了解决问题,我需要映射该监视器的设备,为此我运行了此命令xinput map-to-output 13 eDP1
问题解决了,又能正常工作了:)
我正在使用 elementary OS freya,因此它应该适用于所有基于 Ubuntu 14.04 LTS 的发行版
答案3
很难找到解决方案,但实际上非常简单,只需按照此处“phnomic”的答案即可:触摸屏和额外的外部显示器. 与我的富士通 T730 及各种外接显示器完美配合!
答案4
至少对于 Wacom 触摸屏来说,还有一个问题,即它们在挂起和恢复循环后会停止工作。因此,必须先将它们重新连接起来,然后校准以用于双显示器。以下是同时满足这两个要求的解决方案:
使用我的其他答案创建(然后测试)自定义
systemd
服务,以便在系统从挂起状态恢复时重新连接触摸屏这里。/usr/local/bin/local-touchscreen-tweaks
创建一个包含以下内容的脚本:#!/usr/bin/env bash # We need to sleep about 2 seconds after the start of the wacom-inputattach # service, or the touchscreen device will not yet be there to work with. sleep 2 # xsetwacom needs to connect to an X server. export XAUTHORITY=/home/matthias/.Xauthority export DISPLAY=:0 # Tell the touch devices to interpret input relative to the physical # touchscreen display only, here LVDS-1. Needed in multi-monitor setups. # Use device names as seen in `xinput --list`. xsetwacom set "Wacom Serial Penabled 2FG Touchscreen Pen stylus" MapToOutput LVDS-1 xsetwacom set "Wacom Serial Penabled 2FG Touchscreen Pen eraser" MapToOutput LVDS-1 xsetwacom set "Wacom Serial Penabled 2FG Touchscreen Finger touch" MapToOutput LVDS-1
设置桌面环境以在 X 启动时执行该脚本,例如通过自动启动机制。通过服务执行此操作会更好
systemd
,但我还没有尝试过。创建以下自定义服务,用于在系统从恢复中返回时执行脚本。它
restart-wacom-inputattach
在上述步骤 1 中创建的服务之后运行,使用演示的机制这里.为此,创建一个/etc/systemd/system/local-touchscreen-tweaks.service
包含以下内容的文件:[Unit] Description=calibrate the touchscreen for dual-monitor usage After=restart-wacom-inputattach.service [Service] User=root Type=oneshot ExecStart=/usr/local/bin/local-touchscreen-tweaks TimeoutSec=0 StandardOutput=syslog [Install] WantedBy=suspend.target
通过以下方式启用您的新定制服务:
sudo systemctl enable /etc/systemd/system/local-touchscreen-tweaks.service