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

如何在X11环境下限制MPV窗口仅沿Y轴移动?

限制MPV窗口仅沿Y轴垂直移动的实现方案

针对你的树莓派触摸屏后视镜场景,以下几种方案可以实现仅允许MPV窗口沿Y轴上下移动、锁定X轴位置的需求:

方案1:通过MPV自身配置禁用X轴触摸拖动

MPV支持自定义输入绑定,直接修改配置文件拦截X轴拖动动作:

  1. 编辑MPV的用户配置文件:
    nano ~/.config/mpv/input.conf
    
  2. 添加以下绑定规则:
    # 忽略X轴方向的触摸拖动操作
    touch-drag-x ignore
    # 保留Y轴拖动,控制窗口上下移动
    touch-drag-y move window 0 ${?-10:10}
    
    保存退出后,重启MPV即可生效。这个方案适合单窗口播放多路流的场景,直接从输入层面限制拖动方向。

方案2:通过窗口管理器固定窗口X坐标

树莓派常用的LXDE/Openbox等轻量窗口管理器支持窗口规则配置,固定MPV窗口的X位置:

以Openbox为例:

  1. 编辑Openbox配置文件:
    nano ~/.config/openbox/rc.xml
    
  2. 在<applications>标签内添加对应MPV窗口的规则(如果是两个MPV窗口,可分别设置name或class区分):
    <application name="mpv" class="mpv">
      <position>
        <x>0</x> <!-- 替换为你需要固定的X坐标,比如第一个窗口设0,第二个设1080 -->
        <y>free</y> <!-- 允许Y轴自由调整 -->
      </position>
    </application>
    
  3. 重启Openbox使规则生效:
    openbox --restart
    

配置后,MPV窗口的X坐标会被锁定,只能拖动调整Y轴位置。

方案3:用脚本实时修正窗口X坐标

如果上述方案不适用,可通过脚本定时检查并强制修正MPV窗口的X位置:

  1. 创建脚本文件mpv-lock-x.sh:
    #!/bin/bash
    # 设定需要固定的X坐标,多个窗口可复制逻辑分别处理
    TARGET_X1=0
    TARGET_X2=1080
    
    # 获取MPV窗口ID
    MPV_WINDOWS=$(xdotool search --class mpv)
    
    while true; do
      for WIN in $MPV_WINDOWS; do
        # 获取当前窗口X坐标
        CURRENT_X=$(xdotool getwindowgeometry --shell $WIN | grep ^X= | cut -d'=' -f2)
        # 获取当前窗口Y坐标
        CURRENT_Y=$(xdotool getwindowgeometry --shell $WIN | grep ^Y= | cut -d'=' -f2)
        # 判断并修正X坐标(可根据窗口初始位置匹配对应TARGET_X)
        if [ "$CURRENT_X" -ne "$TARGET_X1" ] && [ "$CURRENT_X" -ne "$TARGET_X2" ]; then
          # 这里可根据窗口初始位置判断应该绑定哪个TARGET_X,示例默认设为TARGET_X1
          xdotool windowmove $WIN $TARGET_X1 $CURRENT_Y
        fi
      done
      sleep 0.1
    done
    
  2. 给脚本添加执行权限:
    chmod +x mpv-lock-x.sh
    
  3. 启动MPV后,后台运行脚本:
    ./mpv-lock-x.sh &
    

脚本会实时监控MPV窗口位置,一旦X坐标偏离设定值就强制拉回,实现X轴锁定。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:45:11