【问题标题】:How to make a single window vnc session with x11vnc?如何使用 x11vnc 进行单窗口 vnc 会话?
【发布时间】:2016-03-01 09:44:48
【问题描述】:

我想创建一个 VNC 会话来公开我在虚拟显示器上启动的单个应用程序。我想用 x11vnc 来做,因为之后我可以通过 noVNC 公开它。

问题是 x11vnc 允许我创建一个虚拟显示器:

x11vnc -create

...或公开已启动应用程序的单个窗口

x11vnc -id 0x200002

但我没有找到在新虚拟显示器中启动新应用程序的任何选项(例如 vncserver 的 xstartup)。

【问题讨论】:

    标签: vnc


    【解决方案1】:

    到目前为止,我找到的唯一解决方案是手动完成所有过程

    # create a virtual display on the compute node
    Xvnc :33 &
    
    # launch the application on this virtual display
    export DISPLAY=:33
    glxgears &
    
    # find out its window id
    xwininfo -root -children
    
    # -> xwininfo: Window id: 0xdc (the root window) (has no name)
    #
    #  Root window id: 0xdc (the root window) (has no name)
    #  Parent window id: 0x0 (none)
    #     1 child:
    #     0x200002 "glxgears": ()  300x300+0+0  +0+0
    
    # start the vnc server with this specifix xid
    x11vnc -id 0x200002 &
    

    它可以工作,但它有点复杂,我仍然需要编写一个小命令来自动获取 xid。

    【讨论】:

      【解决方案2】:

      我没有足够的“声誉”来写评论,所以我必须写我自己的答案,尽管这只是对迈克尔答案的修改,TBH 我还没有测试。我想出了一个快速的方法来获取窗口 ID,因为我无法手动输入它。试试这个找出窗口 ID:

      window_id=$(xwininfo -root -tree | grep glxgears | tail -n1 | sed "s/^[ \t]*//" | cut -d ' ' -f1)
      

      所以你得到树,过滤你正在寻找的程序,得到最后一个选项,删除尾随空格,然后只得到第一列,并保存它。然后就可以运行了……

      x11vnc -id $window_id &
      

      ...与迈克尔的回答效果相同。希望。就像我说的,这是一个 hack。

      【讨论】:

        【解决方案3】:

        很适合在办公室共享窗口!

        echo "Select Window...";x11vnc -id $(xwininfo|grep -oP '(?<=id: ).*(?= ")') -viewonly -forever
        

        或者更短的:

        x11vnc -id pick -viewonly -forever
        

        【讨论】:

        • 很好的解决方案,但它是交互式的。我在批处理模式下使用 VNC 服务器从服务器节点运行交互式/图形应用程序(没有实际显示)。
        • 是的,我的示例是交互式的:D
        • 以下命令重现了相同的功能:x11vnc -id pick -viewonly -forever
        【解决方案4】:

        x11vnc 支持基于 id 共享窗口。在这里你可以把模拟器当成窗口分享出去。

        以下是步骤:

        • 从终端运行xwininfo。点击你想要的窗口 分享。 xwininfo 将打印出窗口 id。
        • 从上述步骤运行`x11vnc -id win_id take win_id。

        示例命令:

         x11vnc -id 0x2800005
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-07-22
          • 1970-01-01
          • 2021-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多