在 GNU/Linux 上使用 KDE Plasma
、GNOME
或 XFCE
运行 Windows 应用程序(包括 Microsoft 365 和 Adobe Creative Cloud),无缝集成,就像它们是操作系统原生的一样。
WinApps 的工作原理如下:
Docker
、Podman
或 libvirt
虚拟机中运行 Windows。FreeRDP
作为后端,无缝渲染 Windows 应用程序和 GNU/Linux 应用程序。\\tsclient\home
挂载访问 GNU/Linux /home
目录。Nautilus
集成,允许您右键单击文件,并根据文件 MIME 类型使用特定的 Windows 应用程序打开它们。WinApps 支持所有个 Windows 应用程序。
通用应用程序支持通过以下方式实现:
.exe
文件。官方支持的应用程序拥有高分辨率图标和预填充的 MIME 类型。这使得文件管理器能够根据文件扩展名确定哪些 Windows 应用程序应该打开文件。检测到的其他应用程序的图标则从 .exe
文件中提取。
我们鼓励您通过提交 Pull 请求来丰富支持的应用程序列表!请帮助我们壮大 WinApps 社区。
请注意,所提供的官方支持应用程序列表是由社区驱动的。因此,某些应用程序可能未经 WinApps 团队测试和验证。
|
Adobe Acrobat Pro (X) Icon in the Public Domain. |
|
Adobe After Effects (CC) Icon in the Public Domain. |
|
Adobe Audition (CC) Icon in the Public Domain. |
|
Adobe Bridge (CS6, CC) Icon in the Public Domain. |
|
Adobe Creative Cloud (CC) Icon under MIT license. |
|
Adobe Illustrator (CC) Icon in the Public Domain. |
|
Adobe InDesign (CC) Icon in the Public Domain. |
|
Adobe Lightroom (CC) Icon in the Public Domain. |
|
Adobe Photoshop (CS6, CC, 2022) Icon in the Public Domain. |
|
Command Prompt (cmd.exe) Icon under MIT license. |
|
File Explorer (Windows Explorer) Icon in the Public Domain. |
|
Internet Explorer (11) Icon in the Public Domain. |
|
Microsoft Access (2016, 2019, o365) Icon in the Public Domain. |
|
Microsoft Excel (2016, 2019, o365) Icon in the Public Domain. |
|
Microsoft Word (2016, 2019, o365) Icon in the Public Domain. |
|
Microsoft OneNote (2016, 2019, o365) Icon in the Public Domain. |
|
Microsoft Outlook (2016, 2019, o365) Icon in the Public Domain. |
|
Microsoft PowerPoint (2016, 2019, o365) Icon in the Public Domain. |
|
Microsoft Publisher (2016, 2019, o365) Icon in the Public Domain. |
|
Microsoft Visio (Standard/Pro. 2021, Plan 2) Icon in the Public Domain. |
|
Microsoft Project (Standard/Pro. 2021, Plan 3/5) Icon in the Public Domain. |
|
Microsoft Visual Studio (Comm./Pro./Ent. 2022) Icon in the Public Domain. |
|
mIRC Icon in the Public Domain. |
|
PowerShell Icon under MIT license. |
|
Windows (Full RDP Session) Icon in the Public Domain. |
推荐使用 Docker 和 Podman 后端来运行 Windows 虚拟机,因为它们有助于实现 Windows 的自动化安装过程。WinApps 也兼容 libvirt。虽然此方法需要大量的手动配置,但它也提供了更丰富的虚拟机自定义选项。这三种方法都利用了 KVM 虚拟机管理程序,确保了卓越的虚拟机性能。最终,后端的选择取决于您的具体用例。
以下指南可供参考:
如果您已经拥有希望与 WinApps 一起使用的 Windows 虚拟机或服务器,您仍然需要遵循 libvirt 文档中描述的最终步骤](docs/libvirt.md#final-configuration-steps)。
安装所需的依赖项。
sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd
在 Debian 12(“bookworm”)上,您需要启用
backports
存储库才能使用freerdp3-x11
软件包。
有关说明,请参阅 https://backports.debian.org/Instructions。
sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat
sudo pacman -Syu --needed -y curl dialog freerdp git iproute2 libnotify openbsd-netcat
sudo zypper install -y curl dialog freerdp git iproute2 libnotify-tools netcat-openbsd
sudo emerge --ask=n net-misc/curl dev-util/dialog net-misc/freerdp:3 dev-vcs/git sys-apps/iproute2 x11-libs/libnotify net-analyzer/openbsd-netcat
WinApps 需要
FreeRDP
版本 3 或更高版本。如果您的发行版无法通过软件包管理器获取,您可以安装 Flatpak:
bash
flatpak install flathub com.freerdp.FreeRDP sudo flatpak override --filesystem=home com.freerdp.FreeRDP # 使用 `+home-drive`
##################################
# WINAPPS CONFIGURATION FILE #
##################################
# INSTRUCTIONS
# - Leading and trailing whitespace are ignored.
# - Empty lines are ignored.
# - Lines starting with '#' are ignored.
# - All characters following a '#' are ignored.
# [WINDOWS USERNAME]
RDP_USER="MyWindowsUser"
# [WINDOWS PASSWORD]
# NOTES:
# - If using FreeRDP v3.9.0 or greater, you *have* to set a password
RDP_PASS="MyWindowsPassword"
# [WINDOWS DOMAIN]
# DEFAULT VALUE: '' (BLANK)
RDP_DOMAIN=""
# [WINDOWS IPV4 ADDRESS]
# NOTES:
# - If using 'libvirt', 'RDP_IP' will be determined by WinApps at runtime if left unspecified.
# DEFAULT VALUE:
# - 'docker': '127.0.0.1'
# - 'podman': '127.0.0.1'
# - 'libvirt': '' (BLANK)
RDP_IP="127.0.0.1"
# [VM NAME]
# NOTES:
# - Only applicable when using 'libvirt'
# - The libvirt VM name must match so that WinApps can determine VM IP, start the VM, etc.
# DEFAULT VALUE: 'RDPWindows'
VM_NAME="RDPWindows"
# [WINAPPS BACKEND]
# DEFAULT VALUE: 'docker'
# VALID VALUES:
# - 'docker'
# - 'podman'
# - 'libvirt'
# - 'manual'
WAFLAVOR="docker"
# [DISPLAY SCALING FACTOR]
# NOTES:
# - If an unsupported value is specified, a warning will be displayed.
# - If an unsupported value is specified, WinApps will use the closest supported value.
# DEFAULT VALUE: '100'
# VALID VALUES:
# - '100'
# - '140'
# - '180'
RDP_SCALE="100"
# [MOUNTING REMOVABLE PATHS FOR FILES]
# NOTES:
# - By default, `udisks` (which you most likely have installed) uses /run/media for mounting removable devices.
# This improves compatibility with most desktop environments (DEs).
# ATTENTION: The Filesystem Hierarchy Standard (FHS) recommends /media instead. Verify your system's configuration.
# - To manually mount devices, you may optionally use /mnt.
# REFERENCE: https://wiki.archlinux.org/title/Udisks#Mount_to_/media
REMOVABLE_MEDIA="/run/media"
# [ADDITIONAL FREERDP FLAGS & ARGUMENTS]
# NOTES:
# - You can try adding /network:lan to these flags in order to increase performance, however, some users have faced issues with this.
# DEFAULT VALUE: '/cert:tofu /sound /microphone +home-drive'
# VALID VALUES: See https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive"
# [DEBUG WINAPPS]
# NOTES:
# - Creates and appends to ~/.local/share/winapps/winapps.log when running WinApps.
# DEFAULT VALUE: 'true'
# VALID VALUES:
# - 'true'
# - 'false'
DEBUG="true"
# [AUTOMATICALLY PAUSE WINDOWS]
# NOTES:
# - This is currently INCOMPATIBLE with 'manual'.
# DEFAULT VALUE: 'off'
# VALID VALUES:
# - 'on'
# - 'off'
AUTOPAUSE="off"
# [AUTOMATICALLY PAUSE WINDOWS TIMEOUT]
# NOTES:
# - This setting determines the duration of inactivity to tolerate before Windows is automatically paused.
# - This setting is ignored if 'AUTOPAUSE' is set to 'off'.
# - The value must be specified in seconds (to the nearest 10 seconds e.g., '30', '40', '50', etc.).
# - For RemoteApp RDP sessions, there is a mandatory 20-second delay, so the minimum value that can be specified here is '20'.
# - Source: https://techcommunity.microsoft.com/t5/security-compliance-and-identity/terminal-services-remoteapp-8482-session-termination-logic/ba-p/246566
# DEFAULT VALUE: '300'
# VALID VALUES: >=20
AUTOPAUSE_TIME="300"
# [FREERDP COMMAND]
# NOTES:
# - WinApps will attempt to automatically detect the correct command to use for your system.
# DEFAULT VALUE: '' (BLANK)
# VALID VALUES: The command required to run FreeRDPv3 on your system (e.g., 'xfreerdp', 'xfreerdp3', etc.).
FREERDP_COMMAND=""
# [TIMEOUTS]
# NOTES:
# - These settings control various timeout durations within the WinApps setup.
# - Increasing the timeouts is only necessary if the corresponding errors occur.
# - Ensure you have followed all the Troubleshooting Tips in the error message first.
# PORT CHECK
# - The maximum time (in seconds) to wait when checking if the RDP port on Windows is open.
# - Corresponding error: "NETWORK CONFIGURATION ERROR" (exit status 13).
# DEFAULT VALUE: '5'
PORT_TIMEOUT="5"
# RDP CONNECTION TEST
# - The maximum time (in seconds) to wait when testing the initial RDP connection to Windows.
# - Corresponding error: "REMOTE DESKTOP PROTOCOL FAILURE" (exit status 14).
# DEFAULT VALUE: '30'
RDP_TIMEOUT="30"
# APPLICATION SCAN
# - The maximum time (in seconds) to wait for the script that scans for installed applications on Windows to complete.
# - Corresponding error: "APPLICATION QUERY FAILURE" (exit status 15).
# DEFAULT VALUE: '60'
APP_SCAN_TIMEOUT="60"
# WINDOWS BOOT
# - The maximum time (in seconds) to wait for the Windows VM to boot if it is not running, before attempting to launch an application.
# DEFAULT VALUE: '120'
BOOT_TIMEOUT="120"
为保护您的 Windows 密码,请确保
~/.config/winapps/winapps.conf
仅可由您的用户帐户访问。
bash
chown $(whoami):$(whoami) ~/.config/winapps/winapps.conf chmod 600 ~/.config/winapps/winapps.conf
RDP_USER
和RDP_PASS
必须与完整的 Windows 用户帐户和密码相对应,例如在 Windows 安装期间创建的帐户和密码或为域用户创建的帐户和密码。用户/PIN 组合不适用于 RDP 访问。
如果您希望使用其他 WinApps 后端(除
Docker
外),请取消注释并将WAFLAVOR="docker"
更改为WAFLAVOR="podman"
或WAFLAVOR="libvirt"
。
/u:
、/p:
和 /v:
的值替换为 ~/.config/winapps/winapps.conf
中指定的正确值。xfreerdp3 /u:"您的 Windows 用户名" /p:"您的 Windows 密码" /v:192.168.122.2 /cert:tofu
# 或者,如果您使用 Flatpak 安装 FreeRDP,请运行:
flatpak run --command=xfreerdp com.freerdp.FreeRDP /u:"您的 Windows 用户名" /p:"您的 Windows 密码" /v:192.168.122.2 /cert:tofu
FreeRDP
命令可能因您的系统而异(例如 xfreerdp
、xfreerdp3
等)。如果 Windows 桌面出现在“FreeRDP”窗口中,则表示配置成功,并且正确的 RDP TLS 证书已在 Linux 主机上注册。断开 RDP 会话并跳过以下调试步骤。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: CERTIFICATE NAME MISMATCH! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The hostname used for this connection (192.168.122.2:3389)
does not match the name given in the certificate:
Common Name (CN):
RDPWindows
A valid certificate for the wrong name should NOT be trusted!
The host key for 192.168.122.2:3389 has changed
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the host key sent by the remote host is 8e:b4:d2:8e:4e:14:e7:4e:82:9b:07:5b:e1:68:40:18:bc:db:5f:bc:29:0d:91:83:f9:17:f9:13:e6:51:dc:36
Please contact your system administrator.
Add correct host key in /home/rohanbarar/.config/freerdp/server/192.168.122.2_3389.pem to get rid of this message.
如果您遇到上述错误,请删除所有与 Windows 关联的旧的或过期的 RDP TLS 证书,因为它们可能会阻止“FreeRDP”建立连接。
这些证书位于“~/.config/freerdp/server/”中,并遵循“
如果您将 FreeRDP 用于 WinApps 以外的用途,请确保仅删除与相关 Windows 虚拟机相关的证书。如果未找到相关证书,则无需执行任何操作。
删除后,重新尝试建立 RDP 会话。
在 Windows 保持开启状态的情况下,运行 WinApps 安装程序。
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
WinApps 安装完成后,运行“winapps-setup --help”即可查看其他参数列表。
将您自己的应用程序(包含自定义图标和 MIME 类型)添加到安装程序非常简单。只需复制 WinApps 仓库中“apps”文件夹中的其中一个应用程序配置,然后:
WinApps 提供了手动模式,用于运行 WinApps 安装程序未配置的应用程序。此功能通过“manual”标志完成。Windows PATH 中的可执行文件不需要完整路径定义。
winapps manual "C:\my\directory\executableNotInPath.exe"
winapps manual executableInPath.exe
安装程序可以多次运行。要更新您的 WinApps 安装:
WinApps 启动器 提供了一个简单的系统托盘菜单,可轻松启动已安装的 Windows 应用程序、打开完整的桌面 RDP 会话以及控制 Windows 虚拟机或容器。您可以启动、停止、暂停、重启或休眠 Windows,以及从便捷的列表中访问已安装的应用程序。这款轻量级的可选工具有助于简化您的整体 WinApps 体验。