惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
N
Netflix TechBlog - Medium
V
Visual Studio Blog
博客园 - Franky
小众软件
小众软件
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 三生石上(FineUI控件)
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
量子位
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
V
V2EX
The Cloudflare Blog
月光博客
月光博客
Last Week in AI
Last Week in AI
雷峰网
雷峰网
WordPress大学
WordPress大学
博客园 - 【当耐特】
博客园 - 聂微东
IT之家
IT之家
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

OhYee 博客

小鹏辅助驾驶测评|OhYee 博客 小鹏非支持手机开启自动解锁|OhYee 博客 使用函数计算实现 301 重定向|OhYee 博客 针对 HTML 内容使用 Ant Design 图片弹框|OhYee 博客 博客进程泄露及僵尸进程解决|OhYee 博客 蓝易云服务器体验|OhYee 博客 SSH 调起本地 VSCode|OhYee 博客 【2022 秋招内推】阿里云后端研发工程师|OhYee 博客 使用函数计算获取 IP 地址信息|OhYee 博客 正确获取客户端 IP/HTTP Header 也可能重复|OhYee 博客 评测 Oculus Quest2 及 BigScreen|OhYee 博客 NextJS 热重载保留状态|OhYee 博客 如何优雅地贴 gist 代码|OhYee 博客 Linux 精细化文件权限|OhYee 博客 VSCode 容器开发环境|OhYee 博客 Clash 的不兼容更新排查|OhYee 博客 Zeek 导出 PCAP|OhYee 博客 记一次 ssh 配置问题|OhYee 博客 Git Commit 规范化工具|OhYee 博客 谈谈《星之卡比-探索发现》|OhYee 博客 VSCode 快捷键绑定 Shell 命令|OhYee 博客 ASN.1 语法及 X.509 证书格式解析解析|OhYee 博客 腾讯企业邮箱忽略 MX 记录发信|OhYee 博客 Chrome/Edge 标签组插件|OhYee 博客 【应届内推】阿里云后端研发工程师|OhYee 博客 损坏的 Typecho 备份处理为 JSON|OhYee 博客 VS Code VIM 插件高效使用|OhYee 博客 SSH 正反向代理|OhYee 博客 Let's Encrypt 根证书过期引发的问题|OhYee 博客 OpenWRT 忽略内核依赖|OhYee 博客
将 WSL 图形输出到 Windows|OhYee 博客
2020-04-20 · via OhYee 博客

WSL 本身只是 shell,不自带图形界面,而 Windows 从名字上就是已图形界面为主,因此要显示图形,自然要使用“最好的 Linux 发行版”——Windows

这是一篇最后编辑于 6 年前 的文章,其内容可能与目前实际情况差异较大,请注意甄别

将 WSL 图形输出到 Windows

本身要实现思路很简单,xorg 就行,网上教程大把大把1,更多是要说明为什么要这么做

具体步骤

  1. Windows 安装 vcxsrv
  2. Windows 运行 vcxsrv(建议选择 Multi Windows,并且打勾 Disable access control)
  3. WSL 安装 xorg
  4. ~/.bashrc里设置DISPLAY
  5. 用到的时候会自动在 Windows 里弹出窗口

这里可以写一个自启动脚本自动运行 vcxsrv -multiwindow -clipboard -wgl -ac

为什么要这么做?

一提到这个问题,很自然的就会想到,明明有虚拟机以及别的办法来解决图形界面的问题,为什么还要这么做?

首先虚拟机确实是一个很好的选择,完整的 Linux 体验。
我曾经尝试过 Manjaro 结合 hyper-v 增强模式2,总得来说虽然高分屏很难受,但是体验上还是可以接受的(换个屏幕,或者调下字体大小,调下缩放比)(当然,但就高分屏体验上,比 Windows 要差,更不用提 Mac 了)
但是真的有必要使用完整的 Linux 么?

实际上,使用 Linux 进行开发,主要是贪图包管理和各种优秀的命令
在 Windows 上有 chocolatey 和 scoop,chocolatey 必须管理员权限,而且个人认为安装位置的很混乱,scoop 每次都要 update(不过倒也不算缺点)
而 Linux 上,实际上不经配置,能直接安装的包并不多,比如很多人都会教你如何在 Ubuntu 上安装 Python3.8 、Node.js …… 实际上体验也并不是这么好
相对而言,这时使用 Arch Linux 就有相对更好的体验,起码有 AUR 的存在,基本上名字输对,大部分用得到的东西都能快速安装

而各种优秀的命令,大部分都是由移植的,再不济也可能可以自己写,而且 PowerShell 有可能本身就能实现

所以来说,但就是运行完整 Linux 本身是没必要的,甚至来说即使在 WSL 中,也没必要使用完整的桌面环境,只有某些情况下不得不使用图形界面时,可能要考虑怎么办

在这种情况下,使用上面的思路只将一个程序的窗口投到 Windows 还是有必要的
而且测试了下,包括 pygame 的按键检测都是能正常使用的,基本上应该能覆盖大部分简单情况
(实际上如果更复杂的情况,可能 WSL 都不能用,应该单独物理机装对应的系统了)

参考文章


  1. 知乎 — WSL 使用指南——04 安装桌面环境 ↩︎

  2. 知乎 — 在Windows 10的Hyper-v上安装Manjaro虚拟机 ↩︎