WinApps的GitHub – winapps-org/winapps:winapps 主项目,从 https://github.com/Fmstrat/winapps/ 派生而来
https://github.com/winapps-org/winapps
winapps 主项目 最初由 fmstrat https://github.com/Fmstrat/winapps/ 创建
在Linux(Ubuntu / Fedora)和GNOME / KDE中运行Windows应用程序,例如Microsoft Office / Adobe,就好像它们是本机操作系统的一部分一样,包括Nautilus集成,用于右键单击特定MIME类型的文件以打开它们。
运作方式
WinApps 是一种简单的命令方式,可以将运行在 VM(或任何 RDP 服务器上)的应用程序直接包含在 GNOME 中,就好像它们是本机应用程序一样。WinApps 的工作方式为:
- 在后台 VM 容器中运行 Windows RDP 服务器
- 检查 RDP 服务器中是否有已安装的应用程序,例如 Microsoft Office
- 如果安装了这些程序,它会利用 FreeRDP 为 CLI 和 GNOME 托盘创建快捷方式
- 主目录中的文件可通过 VM 中的装载进行访问
\\tsclient\home
- 您也可以右键单击主目录中的任何文件以使用应用程序打开
当前支持的应用程序
WinApps 支持系统上任何已安装的应用程序。
它通过以下方式实现此目的:
- 扫描系统中官方配置的应用程序(如下)
- 扫描系统以查找 Windows 注册表中带有安装记录的任何其他 EXE 文件
任何官方配置的应用程序都将支持高分辨率图标和 mime 类型,以自动检测每个应用程序可以打开哪些文件。任何其他检测到的可执行文件都将利用从 EXE 中提取的图标。
注意:下面正式配置的应用程序列表由社区推动,因此某些应用程序可能未经 WinApps 团队测试。
安装
步骤 1:设置 Windows 虚拟机
将 VM 作为 WinApps 的子系统运行的最佳解决方案是 KVM。KVM 是一个 CPU 和内存效率高的虚拟化引擎,与大多数主要的 Linux 发行版捆绑在一起。若要为 WinApps 设置 VM,请遵循以下指南:
如果已有要用于 WinApps 的虚拟机或服务器,则需要合并到 VM 的 Windows 注册表中。如果此 VM 位于 KVM 中,并且您想要使用自动 IP 检测,则需要命名该计算机(非 KVM VM 不支持自动 IP 检测)。这两个方向的说明都可以在上面链接的指南中找到。install/RDPApps.reg
RDPWindows
步骤 2:下载存储库和先决条件
要让事情顺利进行,请使用:
sudo apt install -y freerdp2-x11
git clone https://github.com/winapps-org/winapps.git
cd winapps
注意
理想情况下,请获取 freerdp 3.0.0 或更高版本,尤其是在遇到问题时。
您可以在此处找到夜间构建:https://github.com/FreeRDP/FreeRDP/wiki/Prebuilds
步骤 3:创建 WinApps 配置文件
您将需要创建一个包含以下信息的配置文件:~/.config/winapps/winapps.conf
RDP_USER="MyWindowsUser"
RDP_PASS="MyWindowsPassword"
#RDP_DOMAIN="MYDOMAIN"
#RDP_IP="192.168.123.111"
#RDP_SCALE=100
#RDP_FLAGS=""
#MULTIMON="true"
#DEBUG="true"
用户名和密码应为完整的用户帐户和密码,例如在设置 Windows 或域用户时创建的帐户和密码。它不能是用户/PIN 组合,因为这些组合对 RDP 访问无效。
选项:
- 使用预先存在的非 KVM RDP 服务器时,必须使用 指定其位置
RDP_IP
- 如果在启用了 NAT 的 KVM 中运行 VM,请保留注释,WinApps 将自动检测正确的本地 IP
RDP_IP
- 对于域用户,您可以取消注释和更改
RDP_DOMAIN
- 在高分辨率 (UHD) 显示器上,您可以设定为所需的比例 [100|140|160|180]
RDP_SCALE
- 要向 FreeRDP 调用添加标志,例如传入麦克风,请使用配置选项
/audio-mode:1
RDP_FLAGS
- 对于多显示器设置,您可以尝试启用,但是如果您遇到黑屏(FreeRDP 错误),则需要恢复
MULTIMON
- 如果启用,则将在每个应用程序启动时创建一个日志
DEBUG
~/.local/share/winapps/winapps.log
步骤 4:运行 WinApps 安装程序
最后,检查 FreeRDP 是否可以连接:
bin/winapps check
您将看到 FreeRDP 的输出,并且可能必须接受初始证书。之后,应该会弹出一个 Windows 资源管理器窗口。您可以关闭此窗口并按 取消 FreeRDP。Ctrl-C
如果此步骤失败,请尝试重启 VM,否则问题可能与以下原因有关:
- 您需要在首次连接时接受安全证书(使用“检查”)
- 未在 Windows VM 中启用 RDP
- 无法连接到 VM 的 IP
- 中的用户凭据不正确
~/.config/winapps/winapps.conf
- 未合并到 VM 中
install/RDPApps.reg
然后,最后一步是运行安装程序,该安装程序将提示您进行系统或用户安装:
./installer.sh
这将引导您完成以下过程:
添加预定义的应用程序
将具有自定义图标和 MIME 类型的应用程序添加到安装程序很容易。只需复制文件夹中的应用程序配置之一,然后:apps
- 编辑应用程序的变量
- 将 替换为应用程序的 SVG(已获得适当许可)
icon.svg
- 重新运行安装程序
- 提交拉取请求以将其正式添加到 WinApps
运行安装程序时,它将检查是否安装了任何已配置的应用程序,如果安装了,它将在主机操作系统上创建相应的快捷方式。
手动运行应用程序
WinApps 为运行未配置的应用程序提供了手动模式。这是用标志完成的。路径中的可执行文件不需要完整路径定义。manual
./bin/winapps manual "C:\my\directory\executableNotInPath.exe"
./bin/winapps manual executableInPath.exe
检查新的应用程序支持
安装程序可以多次运行,因此只需再次运行以下操作,它将删除任何当前安装并更新最新应用程序。
./installer.sh
可选的安装程序命令行参数
以下可选命令可用于管理应用程序配置,而无需提示:
./installer.sh --user # Configure applications for the current user
./installer.sh --system # Configure applications for the entire system
./installer.sh --user --uninstall # Remove all configured applications for the current user
./installer.sh --system --uninstall # Remove all configured applications for the entire system
大喊大叫