将ubuntu终端打开的GUI图形界面窗口显示在windows上

淡淡相思都写在脸上
沉沉离别背在肩上
泪水流过脸庞
所有的话
现在还是没有讲
–《梦里水乡》江珊

先放效果:ubuntu端开了一个roscore,然后开的rviz,这玩意可以说是要求UI很高的了吧,极其流畅,如同真机。
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第1张图片

今天调试了好几个小时终于把这个给整出来了。走了很多弯路,没想到最后的步骤真的是异常简单啊!有的博客真的是误人子弟,当然,我这个也难免有疏漏之处,非常抱歉半夜写的已经是脑子不太好使了,如果有问题的欢迎在评论区留言交流!

参考的博文主要是这两个,但是我感觉第一个写的不太对,读者可以把我这个和他的对照着看。
https://blog.csdn.net/qq_40750972/article/details/123963536
https://blog.csdn.net/Stone_hello/article/details/120041495

声明:本文系本人完全原创,如果转载、复制、二创(包括但不限于:制作视频、重新作图在其他平台发出等),可以不通知本人,但是请务必注明出处,谢谢!

0、需要确认的:

请确认你已经能够通过vscode远程免密登录ubuntu。有人提到后面的内容需要免密才可以。我是先配置的免密,所以没有验证,但是建议配置一下,不难。推荐链接:
https://blog.csdn.net/qq_40750972/article/details/123450772
我的博客里也有,上一篇文章就是,可以进我主页看一下。
链接:https://blog.csdn.net/m0_51194302/article/details/128768371

1、安装windows端的XLaunch

我对XLaunch的理解就是这个东西就像一个桌面始终监听一个端口,没有程序访问的时候挂在后台,有程序访问的时候作为远程桌面窗口跳出来,非常好用。之前看有人把gnome直接挂在这里面的。

下载安装之后,打开
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第2张图片
display number非常重要, 不要乱填,不懂的就直接-1,值得注意的是,-1和0是等价的,这个我们后面再说。

然后很多文章说,一路next到底,这是错误的,误人子弟!亲测rviz如果这一页不调成这样是会报错的。就是你得勾上Disable access control!第二个好像是使用win里的openGL,他说什么让你确认导入了环境变量,我寻思我也没这个,所以我是不建议勾上的,但是很多教程里面默认让你勾上,我是不建议的。这里需要尤其注意。建议像我一样勾。
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第3张图片
2023/1/28 0:24更新:今天用一个QT写的界面试了一下,发现,第二个勾和不勾区别不是很大,都是能正常调用OpenGL库绘制图形的,但是发现的一个小问题就是勾上之后调用OpenGL会有报错,但是不影响程序正常运行。
运行
第一次是没勾第二个选项,第二次运行勾上了第二个选项,就有这俩libGL error,但是程序完全是正常渲染、运行的,没有发现任何不同的地方。所以各位可以自行决定一下。我的建议还是不要勾。

然后后面就next就可以,成功之后会挂在后台,鼠标放上去大概是这个样子:
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第4张图片
前面的是我电脑的名字,总之格式就是你电脑名字:0.0,确认你后面是不是:0.0,这个后面要用。如果你第一页那个display number没动,那么这里肯定也是:0.0

最后:更改Xlaunch的host文件:
找到你XLaunch的安装根目录,忘了你就找到快捷方式打开文件位置。
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第5张图片
你会发现有个X0.hosts文件,这个0就是你前面的display number,如果你不是-1或者0你就是别的。建议vscode打开,因为保存这个要有管理员权限。记事本好像不能提升权限。
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第6张图片
在下面加入你虚拟机的ip地址,保存。会提示你申请管理员权限,给就可以了。

那么XLaunch的配置就结束了。

2、windows端ssh config文件更改

进入下图目录:C:\Users\21018\.ssh
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第7张图片
打开这个config文件:
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第8张图片
找到你要链接的主机,就是这个Host ******,添加下面5行:

  ForwardX11 yes
  ForwardX11Trusted yes
  ForwardAgent yes 
  ServerAliveInterval 60
  ServerAliveCountMax 60

前三个是权限,后两个是有个博主提到的连接稳定性,我也不太懂,反正加上吧,没什么坏处。

3、ubuntu端配置终端环境变量

sudo gedit ~/.bashrc

在文件末尾添加

export DISPLAY="192.168.239.1:0.0"

这里我需要讲一下,前面这个ip地址就是你的本机地址,ipconfig是这么看的:
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第9张图片显然我这里是192.168.239.1,那么那个DISPLAY环境变量里的ip就是这个。后面的:0.0是不是让你想到什么了?没错,可不就是这个么?这个就是把ip换成了你电脑的名字!所以这里就通啦!
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第10张图片
需要注意的是,这个配置方法只是对终端内开启的UI界面有效,你ubuntu桌面里面操作都是正常的。当然,vscode里的远程终端自然也能享受远程效果。
例如,我可以远程开启gedit来编辑文本文档:
将ubuntu终端打开的GUI图形界面窗口显示在windows上_第11张图片
总感觉漏掉了什么没写但是实在想不起来了,如果遇到问题请留言提醒,如果你的报错信息详细,我尽量解答、更新,不希望其他人再在这上面浪费时间踩坑了。

看那青山荡漾在水上
看那晚霞吻着夕阳
我用一生的爱去寻找那一个家
今夜你在何方
–《梦里水乡》江珊

你可能感兴趣的:(ubuntu,linux,运维,vscode)