
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能直接把Office、Adobe这类程序变成Linux桌面里的独立窗口不需要双系统也不需要自己维护远程桌面客户端。它的本质是一套开源工具用Docker/Podman或libvirt包一个Windows虚拟机再通过FreeRDP把每个应用渲染成原生桌面应用。它到底怎么跑起来的原理速览整条链路分三段第一步KVM虚拟机在Docker/Podman容器内或libvirt里跑起一个真实的Windows第二步安装器通过RDP连进Windows枚举已装应用社区已测试的应用加注册表里的.exe条目把它们写成Linux标准桌面快捷方式第三步每次点某个应用FreeRDP只渲染该应用的单个窗口而不是整屏远程桌面。也就是说Windows全程在后台跑用户看到的只是应用列表里多了一批本地图标。三步跑起来最小可运行路径开始前确认CPU虚拟化VT-x/AMD-V已启用lsmod | grep kvm有输出内存至少8GB、磁盘留60GB已装好Docker或Podman注意Windows 10/11家庭版不支持RDP需要准备专业版、企业版或Server版镜像。第1步获取项目并启动Windows虚拟机。克隆仓库后用compose把虚拟机拉起来首次启动会自动完成Windows安装流程。git clone https://gitcode.com/GitHub_Trending/wina/winapps cd winapps docker compose up # 首次启动自动装Windows随后浏览器打开 http://127.0.0.1:8006 经VNC完成系统初始化默认账户是MyWindowsUser/MyWindowsPassword。默认资源为4核4GB内存、64GB磁盘办公场景够用如需调整在本地克隆的 compose.yaml 里改RAM_SIZE、CPU_CORES后再启动即可。第2步安装Linux侧依赖并写配置文件。依赖不多主要是FreeRDP 3及辅助工具。# Debian/Ubuntu sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd # Fedora 换成: sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat然后创建~/.config/winapps/winapps.conf核心内容如下mkdir -p ~/.config/winapps # winapps.conf 关键项 RDP_USERMyWindowsUser # Windows账户与compose.yaml保持一致 RDP_PASSMyWindowsPassword # Windows密码 RDP_IP127.0.0.1 # Docker/Podman均走回环地址 RDP_PORT3389 RDP_SCALE100 # 高分屏可改为140或180 WAFLAVORdocker # 或 podman / libvirt文件里存了密码收紧权限chmod 600 ~/.config/winapps/winapps.conf第3步手动测通RDP再跑安装器。先用命令行连一次确认链路正常。# 若连出Windows桌面即为成功然后断开Podman rootless用户需加 podman unshare --rootless-netns 前缀 xfreerdp3 /u:MyWindowsUser /p:MyWindowsPassword /v:127.0.0.1:3389 /cert:tofu保持Windows开着运行安装器并勾选要集成的应用bash setup.sh另一条路是libvirt后端适合需要自定义硬件的人用virt-manager创建一台名为RDPWindows的虚拟机或改用别的名字并同步配置里的VM_NAME按 libvirt文档 完成最终配置即可其余步骤完全一致。Docker/Podman路线全自动适合大多数人。日常怎么用场景驱动用Word直接打开桌面上的.docx。安装后在Nautilus里右键文件会出现用Microsoft Word打开这类选项文件关联按MIME类型自动生成社区已测试的应用自带高清图标和完整关联。浏览器里的 ms-word:// 链接也会直接唤起Windows版Word。把Linux文件拖给Windows应用。️ Linux主目录会以\\tsclient\home的形式挂进Windows双向可读写Windows应用里打开\\tsclient\home就能直接取文件Linux侧反过来右键打开方式同样生效。终端里调起没被扫描到的程序。安装器漏掉的.exe可以用manual模式手动跑winapps manual C:\Program Files\MyApp\myapp.exe # 不在Windows PATH里时写全路径 winapps manual notepad.exe # 在PATH里则直接写程序名管理整个虚拟机。可选的WinApps-Launcher提供托盘菜单能开机、关机、暂停、休眠Windows虚拟机并一键启动已装应用不用每次都进终端敲命令。三个桌面环境的差异只在菜单位置KDE在启动器里有Windows Applications分类GNOME在活动概览直接搜应用名XFCE挂在系统菜单下行为完全一致。性能与扩展进阶显示与性能调优高分辨率屏幕把RDP_SCALE调到140或180最大化窗口有轻微错位时设HIDEFoffDEBUGtrue会在每次启动时生成~/.local/share/winapps/winapps.log排查问题看它若系统里FreeRDP命令不是xfreerdp/xfreerdp3用FREERDP_COMMAND指定实际命令。接入自己的应用在Windows里装了新软件后重跑winapps-setup --user --add-apps再走一遍向导即可识别。想让某个应用获得高清图标和文件关联可以参照 apps 目录里现有条目的格式写一份配置NAME、WIN_EXECUTABLE、MIME_TYPES、ICON等字段然后卸载重装。全部参数见winapps-setup --help。多显示器与输入RDP_FLAGS追加/multimon可跨多屏输出已知FreeRDP bug可能黑屏出现就回退非英语输入法追加/kbd:unicode输入会以Unicode序列发送切语言不会乱。踩坑记录FAQ症状RDP连接报CERTIFICATE NAME MISMATCH或 REMOTE HOST IDENTIFICATION HAS CHANGED原因旧VM残留的过期RDP证书还在处理删除~/.config/freerdp/server/下对应的ip_3389.pem只删本VM的重连症状winapps-setup直接退出提示虚拟机未运行原因Windows虚拟机处于关机或暂停状态处理先docker compose startlibvirt用户在virt-manager里开机再跑安装器症状Windows里\\tsclient\home拿不到文件原因iptables内核模块未加载处理lsmod | grep ip_tables检查为空则把ip_tables、iptable_nat写入/etc/modules-load.d/iptables.conf后重启症状启用多显示器后黑屏原因FreeRDP多屏渲染的已知bug处理移除RDP_FLAGS里的/multimon退回单屏症状Windows初始设置里找不到远程桌面选项原因家庭版不支持RDP处理换专业版、企业版或Server版重装WinApps把一个Windows虚拟机装进了Linux应用启动器跨系统用Office和Adobe变成了点一下的事。解决了你的实际问题欢迎给仓库点个Star。【免费下载链接】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),仅供参考