diff --git a/.github/workflows/update.yaml b/.github/workflows/update-submodule.nix
similarity index 58%
rename from .github/workflows/update.yaml
rename to .github/workflows/update-submodule.nix
index f939450d..461126d2 100644
--- a/.github/workflows/update.yaml
+++ b/.github/workflows/update-submodule.nix
@@ -13,7 +13,13 @@ jobs:
- name: Update module
run: |
- git submodule update --init --recursive --checkout -f
+ pushd WinApps-Launcher
+ branch=$(git rev-parse --abbrev-ref origin/HEAD | sed "s|origin/||")
+ git config remote.origin.fetch "+refs/heads/$branch:refs/remotes/origin/$branch"
+ git fetch --depth=1 origin "refs/heads/$branch"
+ popd
+
+ git submodule update --init --remote WinApps-Launcher
- name: Commit and push
uses: EndBug/add-and-commit@v9
diff --git a/README.md b/README.md
index f9e9ffbd..f63387ff 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@

-
+
Run Windows applications (including [Microsoft 365](https://www.microsoft365.com/) and [Adobe Creative Cloud](https://www.adobe.com/creativecloud.html)) on GNU/Linux with `KDE Plasma`, `GNOME` or `XFCE`, integrated seamlessly as if they were native to the OS.
@@ -288,7 +288,7 @@ If you already have a Windows VM or server you wish to use with WinApps, you wil
Install the required dependencies.
- Debian/Ubuntu:
```bash
- sudo apt install -y dialog freerdp3-x11 iproute2 libnotify-bin netcat-openbsd
+ sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd
```
> [!NOTE]
@@ -297,19 +297,19 @@ Install the required dependencies.
- Fedora/RHEL:
```bash
- sudo dnf install -y dialog freerdp iproute libnotify nmap-ncat
+ sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat
```
- Arch Linux:
```bash
- sudo pacman -Syu --needed -y dialog freerdp iproute2 libnotify gnu-netcat
+ sudo pacman -Syu --needed -y curl dialog freerdp git iproute2 libnotify gnu-netcat
```
- OpenSUSE:
```bash
- sudo zypper install -y dialog freerdp iproute2 libnotify netcat-openbsd
+ sudo zypper install -y curl dialog freerdp git iproute2 libnotify netcat-openbsd
```
- Gentoo Linux:
```bash
- sudo emerge --ask=n dev-util/dialog net-misc/freerdp:3 sys-apps/iproute2 x11-libs/libnotify net-analyzer/openbsd-netcat
+ 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
```
> [!NOTE]
@@ -428,18 +428,12 @@ AUTOPAUSE_TIME="300"
FREERDP_COMMAND=""
```
-> [!NOTE]
+> [!IMPORTANT]
> `RDP_USER` and `RDP_PASS` must correspond to a complete Windows user account and password, such as those created during Windows setup or for a domain user. User/PIN combinations are not valid for RDP access.
-> [!NOTE]
+> [!IMPORTANT]
> If you wish to use an alternative WinApps backend (other than `Docker`), uncomment and change `WAFLAVOR="docker"` to `WAFLAVOR="podman"` or `WAFLAVOR="libvirt"`.
-> [!NOTE]
-> If you encounter issues with tls certificate getting rejected, delete the existing `.pem` file with
-> `rm ~/.config/freerdp/server/127.0.0.1_3389.pem` and run
-> `xfreerdp3 /u:MyWindowsUser /p:MyWindowsPassword /v:127.0.0.1 /cert:tofu`
-> to set up Trust On First Authentication. Then retry the `setup.sh` script.
-
#### Configuration Options Explained
- If using a pre-existing Windows RDP server on your LAN, you must use `RDP_IP` to specify the location of the Windows server. You may also wish to configure a static IP address for this server.
- If running a Windows VM using `libvirt` with NAT enabled, leave `RDP_IP` commented out and WinApps will auto-detect the local IP address for the VM.
@@ -450,13 +444,65 @@ FREERDP_COMMAND=""
- If you enable `DEBUG`, a log will be created on each application start in `~/.local/share/winapps/winapps.log`.
- If using a system on which the FreeRDP command is not `xfreerdp` or `xfreerdp3`, the correct command can be specified using `FREERDP_COMMAND`.
-### Step 4: Run the WinApps Installer
-Run the WinApps installer.
+### Step 4: Test FreeRDP
+1. Test establishing an RDP session by running the following command, replacing the `/u:`, `/p:`, and `/v:` values with the correct values specified in `~/.config/winapps/winapps.conf`.
+
+ ```bash
+ xfreerdp3 /u:"Your Windows Username" /p:"Your Windows Password" /v:192.168.122.2 /cert:tofu
+
+ # Or, if you installed FreeRDP using Flatpak
+ flatpak run --command=xfreerdp com.freerdp.FreeRDP /u:"Your Windows Username" /p:"Your Windows Password" /v:192.168.122.2 /cert:tofu
+ ```
+
+ - Please note that the correct `FreeRDP` command may vary depending on your system (e.g. `xfreerdp`, `xfreerdp3`, etc.).
+ - Ensure you use the correct IP address for your Windows instance in the above command.
+ - If prompted within the terminal window, choose to accept the certificate permanently.
+
+ If the Windows desktop appears in a `FreeRDP` window, the configuration was successful and the correct RDP TLS certificate was enrolled on the Linux host. Disconnect from the RDP session and skip the following debugging step.
+
+2. [DEBUGGING STEP] If an outdated or expired certificate is detected, the `FreeRDP` command will display output resembling the following. In this case, the old certificate will need to be removed and a new RDP TLS certificate installed.
+
+ ```
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ 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.
+ ```
+
+ If you experience the above error, delete any old or outdated RDP TLS certificates associated with Windows, as they can prevent `FreeRDP` from establishing a connection.
+
+ These certificates are located within `~/.config/freerdp/server/` and follow the naming format `_.pem` (e.g., `192.168.122.2_3389.pem`, `127.0.0.1_3389.pem`, etc.).
+
+ If you use FreeRDP for purposes other than WinApps, ensure you only remove certificates related to the relevant Windows VM. If no relevant certificates are found, no action is needed.
+
+ Following deletion, re-attempt establishing an RDP session.
+
+### Step 5: Run the WinApps Installer
+With Windows still powered on, run the WinApps installer.
+
```bash
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
```
-A list of supported additional arguments can be accessed by running `./setup.sh --help`.
+Once WinApps is installed, a list of additional arguments can be accessed by running `winapps-setup --help`.
diff --git a/WinApps-Launcher b/WinApps-Launcher
index eaa660d3..ae1a9e9e 160000
--- a/WinApps-Launcher
+++ b/WinApps-Launcher
@@ -1 +1 @@
-Subproject commit eaa660d39bf3f49b136c98c87c35e3e12f118f8f
+Subproject commit ae1a9e9ea7c958255905cfd056196b3bdc4aad45
diff --git a/docs/libvirt_images/Virtualisation_Stack.svg b/docs/libvirt_images/Virtualisation_Stack.svg
index 9ebb2726..1cf451b1 100644
--- a/docs/libvirt_images/Virtualisation_Stack.svg
+++ b/docs/libvirt_images/Virtualisation_Stack.svg
@@ -6,7 +6,7 @@
height="394.31107"
id="svg171"
sodipodi:docname="Virtualisation_Stack.svg"
- inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
+ inkscape:version="1.4 (e7c3feb1, 2024-10-09)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
@@ -27,14 +27,14 @@
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="1.4142136"
- inkscape:cx="157.68481"
- inkscape:cy="190.56528"
- inkscape:window-width="1920"
- inkscape:window-height="1003"
+ inkscape:cx="158.03836"
+ inkscape:cy="190.56527"
+ inkscape:window-width="1680"
+ inkscape:window-height="1050"
inkscape:window-x="0"
inkscape:window-y="0"
- inkscape:window-maximized="1"
- inkscape:current-layer="Hardware" />
+ inkscape:window-maximized="0"
+ inkscape:current-layer="svg171" />
Open-source-virtualization-stack
+ inkscape:label="Arrow_Up"
+ style="fill:#999999" />
+ inkscape:label="Arrow_Down"
+ style="fill:#999999" />
+ inkscape:label="Up_Arrow"
+ style="fill:#999999" />
+ inkscape:label="Down_Arrow"
+ style="fill:#999999" />
+ transform="translate(-0.005896,-0.00237805)"
+ style="fill:#999999" />
+ transform="translate(-0.005896,-0.00237805)"
+ style="fill:#999999" />
+ transform="translate(-0.005896,-0.00237805)"
+ style="fill:#999999" />
+ transform="translate(-0.005896,-0.00237805)"
+ style="fill:#999999" />
> ~/.bashrc${CLEAR_TEXT}"
+ echo -e "${WARNING_TEXT}[WARNING]${CLEAR_TEXT} - For Bash: ${COMMAND_TEXT}echo 'export PATH="${BIN_PATH}:\$PATH"' >> ~/.bashrc && source ~/.bashrc${CLEAR_TEXT}"
# shellcheck disable=SC2086
- echo -e "${WARNING_TEXT}[WARNING]${CLEAR_TEXT} - For ZSH: ${COMMAND_TEXT}echo 'export PATH="${BIN_PATH}:\$PATH"' >> ~/.zshrc${CLEAR_TEXT}"
+ echo -e "${WARNING_TEXT}[WARNING]${CLEAR_TEXT} - For ZSH: ${COMMAND_TEXT}echo 'export PATH="${BIN_PATH}:\$PATH"' >> ~/.zshrc && source ~/.zshrc${CLEAR_TEXT}"
echo -e "${WARNING_TEXT}[WARNING]${CLEAR_TEXT} Make sure to restart your Terminal afterwards.\n"
fi
}