在 WSL 中运行 GUI(如 IDEA)
时间: 2020-08-21来源:V2EX
前景提要
MacOS 平台上的应用程序还是比较齐全的,像有些 Linux 软件不提供 Windows 包、有些 Windows 软件不提供 Linux 包,但基本都会提供 MacOS 的包。
不过有时候需要用 PC 来处理一些工作上的事情,需要用的软件不能全都很好地在 Windows 或 Linux 上运行,用 VirtualBox 、VMWare 等虚拟机仍然难以达到像 MacOS 在统一平台上使用所带来的便捷性。
了解到很多人认为 VS Code 的 WSL 扩展功能非常实用,以至于一些人去给 JetBrains 提建议 让 IDEA 也有类似的 WSL 扩展能力,但显然这个功能短期内不会出现。
我想起 Linux 中的 X 是可以走网络的,所以就像看看能否在 Windows 中跑 X Server 、在 WSL 中跑 X 应用程序,然后实现从 Windows 上直接显示 WSL 中 GUI 程序的界面。
一开始我用了 Xming 来作为 X Server,但后来这个软件要求必须赞助才能下载,所以我换了 Cygwin 里的 xlaunch,这玩意用起来、看起来和 Xming 完全一样(我怀疑哪个才是原版),甚至依靠 Cygwin 背书感觉更靠谱。
基本思路是: 在 Windows 中运行 X Server 。 在 WSL 中安装一个终端模拟器(我用的是 Terminator )。 在 WSL 中使用 Windows 的 X Server 地址来启动终端模拟器,于是就看到 Widnows 中显示出了这个终端模拟器的界面。 在 WSL 中安装一个支持 X 的、带有 GUI 的软件(比如基于 Java 的 IDEA )。 从步骤 3 显示出的终端模拟器里像在 Linux 发行版里一样启动这个 GUI 软件。最终在 Windows 上看到这个 GUI 。
经验证完全可行,显示正常,无卡顿,而且打开的 GUI 界面能很好响应 Windows 中拖拽到左右边填充左右半边和拖拽到上边最大化的手势。
我调好了 xlaunch 的配置、写了启动脚本、配置了快捷方式,能够实现在 Windows 里双击快捷方式直接打开 WSL 里的终端模拟器,以及在终端模拟器里运行任何 GUI 程序都直接在 Windows 里显示。把相关配置和使用方法发到了 GitHub 上,欢迎提 Issue 和 PR 。

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行