WinApps 三步跑起来,Linux 桌面运行 Windows 应用的图标不再模糊
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
Linux 桌面上跑 Windows 程序,图标常常只剩一张模糊的通用图。开源项目 WinApps 让 Linux 直接运行 Windows 应用(含 Microsoft 365),还能自动从 EXE 里提取真实图标显示出来。先看看一枚图标是怎么走到你桌面的。
🧭 图标之旅:一枚图标如何从 EXE 走到桌面
你运行安装时,WinApps 先在 Windows 机器里做盘点:从注册表查询已装程序,顺带检查 Chocolatey、Scoop 装过的东西,UWP(微软商店式)应用也不放过。找到 exe 路径后,正戏开场。
提取这件事由 [install/ExtractPrograms.ps1] 负责:它调用 .NET 方法 System.Drawing.Icon.ExtractAssociatedIcon 从 EXE 中取出关联图标,再把图标画到一张位图上,按 PNG 存下来——选 PNG 是为了保住颜色,避免画质掉档。
接下来有个小动作:PNG 的图像数据被转成 base64 字符串,也就是把图片变成一串可以传输的文本。脚本把应用名、路径、图标串依次写入三个并列数组交给 Linux 端。原本"锁"在 Windows 里的图,就这么到了桌面。
🔧 三步跑通 EXE 图标提取
你只需要三步:
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/wina/winapps - 写好配置:在 ~/.config/winapps/ 下创建 winapps.conf,填上 Windows 机器的 IP、登录账号,并选定用 Docker 还是 libvirt 做后端
- 运行 [setup.sh]:它会逐项检查依赖,通过 RDP 客户端 FreeRDP 连上 Windows,扫描完成后把图标串连同应用名、启动路径一起写进本地应用菜单
跑完打开应用菜单,Microsoft 365、Adobe 那批软件的图标已经是清晰的了。
提取失败怎么办:三个兜底
不是每个 EXE 都配合。如果从 exe 里取不到图标,脚本不会报错中断,而是回落到一张通用的32x32 PNG占位图,让你一眼看出"这个图标没提出来"。
第二道兜底是预置目录 [apps/]:Word、Photoshop 这类社区测试过的应用,这里存着高分辨率 SVG 图标和预填好的文件关联。Linux 桌面上 Office 图标格外清晰,靠的就是它,而不是运行时提取。
第三道是缓存:提取结果会落到本地文件,下次不必把同一个 EXE 再打开一遍。README 也明确欢迎社区投稿——想把自己的应用加进预置清单,照着 apps/ 的目录结构补上即可。
这条流水线还能单独用
图标提取的本质是一条流水线:找到 exe → 取出图标 → 转 PNG → base64 编码,每一环都不依赖 WinApps 主流程。你手头有一批 EXE 时,可以照这套思路把它们批量转成跨平台友好的 PNG 和文本串;给自己做 Linux 应用启动器时,也能用它自动补全图标。注意 PowerShell 脚本要在 Windows 里执行,Linux 端负责接收。[install/ExtractPrograms.ps1] 篇幅不长,逻辑是线性的,值得当参考留着。
想让 Windows 软件在 Linux 桌面上立起来,先把仓库克隆下来跑一次 setup.sh,看看它能扫出什么图标。想批量转换图标的话,从那个 PowerShell 脚本看起。
【免费下载链接】winappsRun Windows apps such as Microsoft Office/Adobe in Linux (Ubuntu/Fedora) and GNOME/KDE as if they were a part of the native OS, including Nautilus integration. Hard fork of https://github.com/Fmstrat/winapps/项目地址: https://gitcode.com/GitHub_Trending/wina/winapps
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考