news 2026/9/17 19:28:34

在 Linux 上像原生一样跑 Windows 应用:WinApps 5 分钟上手

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在 Linux 上像原生一样跑 Windows 应用:WinApps 5 分钟上手

在 Linux 上像原生一样跑 Windows 应用:WinApps 5 分钟上手

【免费下载链接】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

同事甩来一份 .psd,让你顺手改个图层配色。你盯着 Linux 桌面发了十秒呆——GIMP 打不开它,双系统切换又太麻烦。WinApps 把 Photoshop、Microsoft Office 这类 Windows 软件直接装进你的 Linux 应用菜单,双击即以独立窗口启动,无需装虚拟机客户端,文件管理器里也能直接用它打开文件。本文带你从零走到第一次成功启动,适配 Ubuntu/Fedora 桌面的日常用户。

凭什么选 WinApps

  • 原生窗口体验:每个 Windows 应用都是 Linux 桌面上一个独立窗口,不是"远程桌面套远程桌面"。
  • 文件管理器集成:Nautilus 里右键"打开方式",直接选 Excel、Photoshop 打开文件。
  • 没有应用白名单:Windows 里装了就能跑,winapps manual一条命令拉起任意 .exe。
  • 自带虚拟机方案:Docker 路线一键自动装好 Windows,libvirt 可接你现有的虚拟机。

最短路径:5 分钟跑起 WinApps

下面走 Docker 路线(Podman 命令等价替换即可);libvirt 方式见 docs/libvirt.md。

  1. 拉取仓库,装依赖(Fedora 把 apt 换成 dnf)
git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd
  1. 先改 compose.yaml 里的USERNAME/PASSWORD为你想要的 Windows 账号,再启动容器
docker compose up

浏览器打开 http://127.0.0.1:8006,通过 VNC 完成 Windows 安装。必须选专业版/企业版,家庭版不支持 RDP。

  1. 写配置文件~/.config/winapps/winapps.conf,至少包含这 4 行(全量选项见 README.md)
RDP_USER="MyWindowsUser" RDP_PASS="MyWindowsPassword" RDP_IP="127.0.0.1" WAFLAVOR="docker"

然后执行chmod 600 ~/.config/winapps/winapps.conf锁住权限。

  1. Windows 保持开机状态,运行安装器
bash setup.sh

成功锚点:终端向导提示安装完成,且你在应用菜单里能搜到"Excel",说明 WinApps 跑通了。

按场景来

让 Office 直接打开桌面上的 xlsx

  1. Linux 主目录默认挂载进 Windows 的\\tsclient\home,无需任何额外操作
  2. 桌面 xlsx 右键 →"打开方式" → Microsoft Excel
  3. 在 Excel 里编辑保存,Linux 侧文件立即更新

效果:两个系统文件双向读写,省去手动拷贝。浏览器里的ms-word://等 Office 链接也会被 WinApps 接管,见 apps/ms-office-protocol-handler.desktop。

把 Photoshop 拖进 GNOME / KDE 启动器

  1. 首次向导已把 Photoshop 等社区测试应用写进启动器,GNOME 活动概览直接搜索启动
  2. 在 Windows 里新装了软件后,重扫一遍
winapps-setup --user --add-apps
  1. 向导里勾选新应用,确认

效果:新应用几十秒后出现在启动器里,带图标和文件关联。

任意 .exe 一条命令拉起

向导之外的程序(PATH 里的程序可直接写文件名):

winapps manual "C:\Program Files\MyApp\app.exe" winapps manual notepad.exe

效果:应用窗口在 Linux 桌面弹出,体验与本地程序无异。

进阶调优

多显示器与高分辨率

何时需要动这里:双屏用户想让 Windows 应用跨屏,或 4K 屏幕上文字偏小。编辑~/.config/winapps/winapps.conf

RDP_SCALE="140" RDP_FLAGS="/cert:tofu /sound /microphone +home-drive /multimon"

/multimon出现黑屏,删掉该标志回退即可。

闲置时自动挂起虚拟机

何时需要动这里:内存有限、不是整天泡在 Windows 应用里。

AUTOPAUSE="on" AUTOPAUSE_TIME="300"

效果:闲置 5 分钟自动挂起释放内存,下次启动秒级恢复,不用重新等系统开机。

自定义应用入口

何时需要动这里:某个应用天天用,想要专属图标和右键文件关联。

  1. 复制 apps/ 下任一目录(如apps/excel/)并改名
  2. 编辑其中的info文件
NAME="MyApp" WIN_EXECUTABLE="C:\Program Files\MyApp\app.exe" MIME_TYPES="application/x-myapp;"
  1. 换成自己的 SVG 图标,再跑winapps-setup --user --add-apps

卡住了

  • 启动报证书警告 / 连不上→ 残留旧 RDP 证书 →rm ~/.config/freerdp/server/127.0.0.1_3389.pem后重试
  • 应用启动超时→ Windows 虚拟机没开 →docker compose --file ~/.config/winapps/compose.yaml start
  • 菜单里找不到新装的 Windows 应用→ 忘了重扫 →winapps-setup --user --add-apps
  • 声音 / 麦克风没反应→ 缺参数 →RDP_FLAGS里补上/sound /microphone

再不行就看日志~/.local/share/winapps/winapps.logwinapps-setup --help可列出全部开关。

下次 .psd 落到桌面时,右键 → Photoshop 就够了,那十秒发呆可以省下来。想继续深挖,docs/ 里有 Docker 与 libvirt 两条完整路线;想要系统托盘里随时启停虚拟机的挂件,可以参考 packages/winapps-launcher/ 的打包。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!