You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多X-Screens环境下触摸屏输入分配问题求助

解决X-Screens多屏触摸输入分配问题

我之前也碰到过一模一样的问题!当用独立X-Screens(不是Xinerama扩展桌面)时,xinput默认只会和当前活动的Screen交互,所以要搞定这个得给xinput指定目标Screen的Display参数才行。

步骤1:确认每个Screen对应的Display和设备

  • 先列出所有Screen的触摸设备,分别执行:

    xinput --list --display :0.0
    xinput --list --display :0.1
    

    这样你就能看到Screen 0(:0.0)下的设备列表,找到你的触摸控制器(id 10)是不是在里面——之前看不到就是因为没指定对应Screen的Display。

  • 再确认DP-1属于哪个Screen,用xrandr --listmonitors,输出里会显示每个显示器对应的Screen编号(比如0: +*DP-1 1920/531x1080/299+0+0里的0就是Screen编号,对应Display:0.0)。

步骤2:将触摸设备映射到目标显示器

找到DP-1对应的Display(比如:0.0)后,执行以下命令:

xinput --display :0.0 map-to-output 10 DP-1

这条命令会直接把id为10的触摸控制器绑定到Screen 0的DP-1显示器上,马上就能生效。

步骤3:让设置永久生效

如果重启后失效,可以把这个命令加到你的桌面启动脚本里:

  • 比如GNOME可以添加到「启动应用程序」里,KDE可以加到「自动启动」项;
  • 或者编辑~/.xinitrc(如果用startx启动),在启动桌面环境前加上这条命令。

额外排查:如果设备没出现在目标Screen的列表里

如果执行xinput --list --display :0.0还是看不到触摸设备,可能需要修改Xorg配置文件,把触摸设备强制关联到目标Screen:

  1. 编辑/etc/X11/xorg.conf或者新建/etc/X11/xorg.conf.d/90-touchscreen.conf;
  2. 在对应的Screen段里添加InputDevice配置,示例如下:
    Section "Screen"
        Identifier "Screen0"
        Device "Card0"
        Monitor "DP-1"
        InputDevice "Touchscreen" "CorePointer"
    EndSection
    
    Section "InputDevice"
        Identifier "Touchscreen"
        Driver "libinput" # 或者你的触摸设备对应的驱动,比如evdev
        Option "Device" "/dev/input/eventX" # 替换成你的触摸设备的event路径,用`ls /dev/input/`查找
    EndSection
    
  3. 重启Xorg或者系统后,设备应该就会出现在Screen 0的设备列表里了。

内容的提问来源于stack exchange,提问作者user794763

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:07:09