WinApps完整指南:5步在Linux上把Word、Photoshop等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上打开Word或Photoshop,却只能忍受网页版或兼容补丁?WinApps解决的就是这个问题:它在后台运行一个Windows虚拟机,把Microsoft 365、Adobe Creative Cloud等Windows应用变成Linux桌面上的原生应用。跟着本文做,你可以在30分钟内完成三件事:搭好Windows虚拟机、接通FreeRDP(一种远程桌面协议)连接、把Word和Excel装进Linux的应用菜单。
它是什么
WinApps是一个开源工具:在Linux(GNOME/KDE/XFCE)上运行Windows应用,包括Microsoft 365和Adobe全家桶,并让它们像系统自带程序一样被调用、被文件管理器关联。项目维护着官方仓库(clone地址见下文"安装"一节),社区已测试覆盖Office、Adobe、Visual Studio等常用软件,完整清单以官方仓库为准。
WinApps工作原理:虚拟机 + FreeRDP 渲染
整个过程可以拆成4步,讲给别人听也够用:
- 在Linux上通过Docker、Podman或libvirt跑一个Windows虚拟机,底层都是KVM虚拟化,性能有保障;
- WinApps扫描这个Windows系统的注册表,列出所有已安装的应用程序;
- 你勾选需要的应用,它在Linux应用菜单里为每个应用创建快捷方式;
- 点击快捷方式时,FreeRDP以"RemoteApp"方式只拉起Windows里那一个程序的窗口并渲染到Linux桌面——你看到的是应用本身,而不是整个Windows桌面。
核心能力:让Windows应用融入Linux桌面
- 应用菜单快捷方式:装完Word后,它直接出现在Linux应用菜单里,像本地程序一样一键启动,不用先打开一个远程桌面。
- Nautilus文件关联:在文件管理器里右键文件可以"用Word打开""用Photoshop打开",按文件扩展名自动匹配对应的Windows应用。
- /home目录共享:Windows里通过
\\tsclient\home直接访问你的Linux家目录,文档不需要在两个系统间来回拷贝。 - Office协议链接自动打开:在Linux浏览器里点
ms-word://这类链接,会自动转交给Windows子系统里对应的Office程序处理。 - 任务栏托盘组件WinApps-Launcher:官方可选小部件,从托盘直接启动Windows应用,还能启动、暂停、重启你的Windows虚拟机。
从安装到跑起来:5步完成Linux运行Windows应用的环境搭建
第1步:准备Windows虚拟机(推荐Docker)
先安装Docker Engine(方法参考Docker官方文档),然后clone仓库并启动虚拟机:
git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps打开compose.yaml,把USERNAME、PASSWORD改成你自己的Windows账户名和密码,可按需调整RAM_SIZE(默认4G)和CPU_CORES(默认4核),然后启动安装流程:
docker compose --file ./compose.yaml up完成后看到什么:浏览器打开http://127.0.0.1:8006,会出现一个VNC画面,跟着画面完成Windows的初始设置。装完的Windows会自动监听3389端口的RDP服务。
第2步:安装FreeRDP等依赖
以Debian/Ubuntu为例:
sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsdFedora/RHEL用sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat,Arch Linux用sudo pacman -Syu --needed -y curl dialog freerdp git iproute2 libnotify openbsd-netcat。注意FreeRDP需要3.x版本,越新越好。
第3步:创建WinApps配置文件
新建~/.config/winapps/winapps.conf,最小可用配置如下:
RDP_USER="MyWindowsUser" RDP_PASS="MyWindowsPassword" RDP_IP="127.0.0.1" WAFLAVOR="docker" RDP_SCALE="100"账号密码要和第1步compose.yaml里设置的一致。然后限制文件权限,避免密码被其他账户读取:
chmod 600 ~/.config/winapps/winapps.conf第4步:验证RDP连接是否正常
保持Windows虚拟机开机,手动建立一次RDP会话:
xfreerdp3 /u:"MyWindowsUser" /p:"MyWindowsPassword" /v:127.0.0.1:3389 /cert:tofu完成后看到什么:FreeRDP窗口里出现Windows桌面,说明连接和证书都正常,断开即可。如果报证书错误,删掉~/.config/freerdp/server/下对应127.0.0.1_3389.pem的旧证书再重连一次(具体见"新手常见坑")。
第5步:运行安装向导,选择应用
cd winapps bash setup.sh安装向导会列出在Windows里检测到的应用(社区测试过的应用自带高清图标和MIME类型),勾选你要用的(Word、Excel、PowerPoint……),装完后退出。✅ 完成标志:打开Linux应用菜单,能看到刚勾选的Windows应用图标,双击即可启动。
以后在Windows里新装了软件,想加进Linux菜单,重新扫描即可:
winapps-setup --user --add-apps实用技巧与进阶配置
- 闲置自动暂停虚拟机:适合内存紧张的场景。在
winapps.conf里设置AUTOPAUSE="on"和AUTOPAUSE_TIME="300",Windows在你5分钟不操作后自动暂停,下次启动应用时自动恢复,省内存省电。 - 高分辨率屏幕缩放:UHD或高DPI显示器下应用偏小时,把
RDP_SCALE改成140或180(支持100/140/180三档),应用窗口会以对应缩放渲染。 - 中文等非英语输入:在
RDP_FLAGS里追加/kbd:unicode,输入会以Unicode序列发送,中英文切换不卡顿、不乱码。 - 任务栏组件:安装可选的WinApps-Launcher后,托盘里随时启动Windows应用、暂停/恢复虚拟机,比翻终端省事。
另外,如果你需要GPU直通等更深入的虚拟机定制,可以改用libvirt后端,完整步骤见 docs/libvirt.md。
新手常见坑:证书报错、依赖缺失、应用没出现
RDP连接报 CERTIFICATE NAME MISMATCH / 主机密钥已改变原因:旧的RDP TLS证书残留。解决:删除
~/.config/freerdp/server/下127.0.0.1_3389.pem这类对应旧地址的证书文件,重新执行第4步的连接命令并接受新证书。Debian 12上找不到 freerdp3-x11 包原因:该包在backports源里,默认未启用。解决:按Debian backports说明启用源后重试安装,或自行编译FreeRDP 3.x(以官方仓库说明为准)。
Windows里新装的应用没出现在Linux菜单原因:快捷方式只在扫描时生成,不会自动刷新。解决:运行
winapps-setup --user --add-apps重新检测并勾选。Office网页版里看不到"使用桌面应用打开"原因:Office网页对Linux浏览器的User-Agent隐藏了该入口。解决:给浏览器装一个User-Agent切换扩展,临时把UA切成Windows后再访问。
WinApps把完整的Windows变成Linux后台的"动力源":你只见应用,不见系统。更多细节可查阅 README.md 与 docs/docker.md。现在就去clone仓库,从第1步的compose.yaml改起——应用菜单里出现Word的那一刻,就算成功了。
【免费下载链接】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),仅供参考