mirror of
https://github.com/winapps-org/winapps.git
synced 2025-07-31 16:06:45 +02:00
Compare commits
91 Commits
doc-correc
...
feat-optim
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dcd662dc06 | ||
![]() |
a317ba41f4 | ||
![]() |
a7e465c704 | ||
![]() |
c3affa75a8 | ||
![]() |
2b2f4cea69 | ||
![]() |
026325d2bf | ||
![]() |
e7dfd56515 | ||
![]() |
fc3e5e0839 | ||
![]() |
b42449459e | ||
![]() |
b300444e15 | ||
![]() |
46de8a8caa | ||
![]() |
84308118c6 | ||
![]() |
805b479e45 | ||
![]() |
013cc42e07 | ||
![]() |
885d02079a | ||
![]() |
b3969aa3b7 | ||
![]() |
4019f9cb81 | ||
![]() |
a2568be16f | ||
![]() |
b9ef076dc8 | ||
![]() |
1edae785f4 | ||
![]() |
9d025fbdcb | ||
![]() |
997909b4a4 | ||
![]() |
a4d30724b5 | ||
![]() |
e2ac7f3749 | ||
![]() |
70ee239f90 | ||
![]() |
3677c87865 | ||
![]() |
2a7b1504d7 | ||
![]() |
21304d2299 | ||
![]() |
de68c79876 | ||
![]() |
9795c1b642 | ||
![]() |
335b9f7c8d | ||
![]() |
167e6a68e6 | ||
![]() |
d6cc8480c1 | ||
![]() |
04e52f18ce | ||
![]() |
268445aade | ||
![]() |
f6d56fdf50 | ||
![]() |
994dcc28f3 | ||
![]() |
92c9a01385 | ||
![]() |
d3d2fc232e | ||
![]() |
ee9523ee39 | ||
![]() |
e5929a134d | ||
![]() |
e83cd5ac68 | ||
![]() |
2f8d27ccad | ||
![]() |
5004e4a5ed | ||
![]() |
12cf5ce3be | ||
![]() |
9b1908b616 | ||
![]() |
d322050d5a | ||
![]() |
1887e5567f | ||
![]() |
b18a388cf4 | ||
![]() |
2751ba360a | ||
![]() |
dca4ccefd9 | ||
![]() |
a316c5adcc | ||
![]() |
3a1915fd7a | ||
![]() |
1c75c7161f | ||
![]() |
606282e838 | ||
![]() |
ae6e15ef15 | ||
![]() |
1f9f25e938 | ||
![]() |
4e7328d94d | ||
![]() |
dd744822a3 | ||
![]() |
6cf1846594 | ||
![]() |
2c2679aa1b | ||
![]() |
65ec4f032b | ||
![]() |
e96f080602 | ||
![]() |
f3d3d53f3a | ||
![]() |
35c181d721 | ||
![]() |
40ef5803bf | ||
![]() |
61af2140a1 | ||
![]() |
61d092f1a3 | ||
![]() |
ee0b168466 | ||
![]() |
8be1cd7101 | ||
![]() |
4e9a416e5f | ||
![]() |
74cd9d93fe | ||
![]() |
821bbcdadc | ||
![]() |
f9b8a13fdc | ||
![]() |
f42c49ec75 | ||
![]() |
109cd696eb | ||
![]() |
d962654fe5 | ||
![]() |
3c1038bb7e | ||
![]() |
1ffa6f5053 | ||
![]() |
7d1a986c90 | ||
![]() |
e4eb78a0ce | ||
![]() |
ab3916f1d2 | ||
![]() |
3bd48b7211 | ||
![]() |
d7156d3640 | ||
![]() |
6b17de3771 | ||
![]() |
206da93530 | ||
![]() |
c42bf78be5 | ||
![]() |
6379d8f00e | ||
![]() |
74f0624fad | ||
![]() |
22032284fc | ||
![]() |
993129af37 |
@@ -24,8 +24,14 @@ jobs:
|
||||
- name: Commit and push
|
||||
uses: EndBug/add-and-commit@v9
|
||||
with:
|
||||
add: "WinApps-Launcher"
|
||||
add: WinApps-Launcher
|
||||
default_author: github_actions
|
||||
message: "Update submodules"
|
||||
push: true
|
||||
fetch: true
|
||||
push: false
|
||||
|
||||
- name: Create PR
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
branch: chore/update_submodules
|
||||
delete-branch: true
|
||||
title: "Update submodules"
|
68
README.md
68
README.md
@@ -120,7 +120,7 @@ Contributing to the list of supported applications is encouraged through submiss
|
||||
</td>
|
||||
<td>
|
||||
<b>Adobe Photoshop</b><br>
|
||||
(CS6, CC)<br>
|
||||
(CS6, CC, 2022)<br>
|
||||
<i><a href="https://commons.wikimedia.org/wiki/File:Adobe_Photoshop_CC_icon.svg">Icon</a> in the Public Domain.</i>
|
||||
</td>
|
||||
<!-- Command Prompt -->
|
||||
@@ -254,6 +254,14 @@ Contributing to the list of supported applications is encouraged through submiss
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<!-- mIRC -->
|
||||
<td>
|
||||
<img src="apps/mirc/icon.svg" width="100">
|
||||
</td>
|
||||
<td>
|
||||
<b>mIRC</b><br>
|
||||
<i><a href="https://en.wikipedia.org/wiki/MIRC#/media/File:Mircnewlogo.png">Icon</a> in the Public Domain.</i>
|
||||
</td>
|
||||
<!-- PowerShell -->
|
||||
<td>
|
||||
<img src="apps/powershell/icon.svg" width="100">
|
||||
@@ -262,6 +270,8 @@ Contributing to the list of supported applications is encouraged through submiss
|
||||
<b>PowerShell</b><br>
|
||||
<i><a href="https://iconduck.com/icons/102322/file-type-powershell">Icon</a> under <a href="https://iconduck.com/licenses/mit">MIT license</a>.</i>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<!-- Windows -->
|
||||
<td>
|
||||
<img src="icons/windows.svg" width="100">
|
||||
@@ -354,6 +364,13 @@ RDP_DOMAIN=""
|
||||
# - '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:
|
||||
@@ -374,21 +391,21 @@ WAFLAVOR="docker"
|
||||
# - '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.
|
||||
# REFERRENCE: 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'
|
||||
# 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"
|
||||
|
||||
# [MULTIPLE MONITORS]
|
||||
# NOTES:
|
||||
# - If enabled, a FreeRDP bug *might* produce a black screen.
|
||||
# DEFAULT VALUE: 'false'
|
||||
# VALID VALUES:
|
||||
# - 'true'
|
||||
# - 'false'
|
||||
MULTIMON="false"
|
||||
RDP_FLAGS="/cert:tofu /sound /microphone +home-drive"
|
||||
|
||||
# [DEBUG WINAPPS]
|
||||
# NOTES:
|
||||
@@ -426,6 +443,31 @@ AUTOPAUSE_TIME="300"
|
||||
# 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"
|
||||
|
||||
```
|
||||
|
||||
> [!IMPORTANT]
|
||||
@@ -440,7 +482,7 @@ FREERDP_COMMAND=""
|
||||
- For domain users, you can uncomment and change `RDP_DOMAIN`.
|
||||
- On high-resolution (UHD) displays, you can set `RDP_SCALE` to the scale you would like to use (100, 140 or 180).
|
||||
- To add additional flags to the FreeRDP call (e.g. `/prevent-session-lock 120`), uncomment and use the `RDP_FLAGS` configuration option.
|
||||
- For multi-monitor setups, you can try enabling `MULTIMON`. A FreeRDP bug may result in a black screen however, in which case you should revert this change.
|
||||
- For multi-monitor setups, you can try adding `/multimon` to `RDP_FLAGS`. A FreeRDP bug may result in a black screen however, in which case you should revert this change.
|
||||
- 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`.
|
||||
|
||||
|
Submodule WinApps-Launcher updated: ae1a9e9ea7...9b3f6c5817
40
apps/dymo-connect/icon.svg
Normal file
40
apps/dymo-connect/icon.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 8.3 KiB |
17
apps/dymo-connect/info
Normal file
17
apps/dymo-connect/info
Normal file
@@ -0,0 +1,17 @@
|
||||
# GNOME shortcut name
|
||||
NAME="DYMO Connect"
|
||||
|
||||
# Used for descriptions and window class
|
||||
FULL_NAME="Software for DYMO label printers"
|
||||
|
||||
# The executable inside windows
|
||||
WIN_EXECUTABLE="C:\Program Files (x86)\DYMO\DYMO Connect\DYMOConnect.exe"
|
||||
|
||||
# GNOME categories
|
||||
CATEGORIES="WinApps;Office"
|
||||
|
||||
# GNOME mimetypes
|
||||
MIME_TYPES=""
|
||||
|
||||
# System Icon
|
||||
ICON="DYMOConnect"
|
24
apps/mirc/icon.svg
Normal file
24
apps/mirc/icon.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 54 KiB |
22
apps/mirc/info
Normal file
22
apps/mirc/info
Normal file
@@ -0,0 +1,22 @@
|
||||
# Copyright (c) 2024 Fmstrat | App tested by whitewolf101 02/22/2025
|
||||
# All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: Proprietary
|
||||
|
||||
# GNOME shortcut name
|
||||
NAME="mIRC"
|
||||
|
||||
# Used for descriptions and window class
|
||||
FULL_NAME="mIRC"
|
||||
|
||||
# The executable inside windows
|
||||
WIN_EXECUTABLE="C:\Program Files (x86)\mIRC\mirc.exe"
|
||||
|
||||
# GNOME categories
|
||||
CATEGORIES="WinApps;Network;IRCclient;"
|
||||
|
||||
# GNOME mimetypes
|
||||
MIME_TYPES=""
|
||||
|
||||
# System Icon
|
||||
ICON="mIRC"
|
37
apps/photoshop-2022/icon.svg
Normal file
37
apps/photoshop-2022/icon.svg
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 240 234" style="enable-background:new 0 0 240 234;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#001E36;}
|
||||
.st1{fill:#31A8FF;}
|
||||
</style>
|
||||
<g id="Layer_2_1_">
|
||||
<g id="Surfaces">
|
||||
<g id="Photo_Surface">
|
||||
<g id="Outline_no_shadow">
|
||||
<path class="st0" d="M42.5,0h155C221,0,240,19,240,42.5v149c0,23.5-19,42.5-42.5,42.5h-155C19,234,0,215,0,191.5v-149
|
||||
C0,19,19,0,42.5,0z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="Outlined_Mnemonics_Logos">
|
||||
<g id="Ps">
|
||||
<path class="st1" d="M54,164.1V61.2c0-0.7,0.3-1.1,1-1.1c1.7,0,3.3,0,5.6-0.1c2.4-0.1,4.9-0.1,7.6-0.2c2.7-0.1,5.6-0.1,8.7-0.2
|
||||
c3.1-0.1,6.1-0.1,9.1-0.1c8.2,0,15,1,20.6,3.1c5,1.7,9.6,4.5,13.4,8.2c3.2,3.2,5.7,7.1,7.3,11.4c1.5,4.2,2.3,8.5,2.3,13
|
||||
c0,8.6-2,15.7-6,21.3c-4,5.6-9.6,9.8-16.1,12.2c-6.8,2.5-14.3,3.4-22.5,3.4c-2.4,0-4,0-5-0.1c-1-0.1-2.4-0.1-4.3-0.1v32.1
|
||||
c0.1,0.7-0.4,1.3-1.1,1.4c-0.1,0-0.2,0-0.4,0H55.2C54.4,165.4,54,165,54,164.1z M75.8,79.4V113c1.4,0.1,2.7,0.2,3.9,0.2H85
|
||||
c3.9,0,7.8-0.6,11.5-1.8c3.2-0.9,6-2.8,8.2-5.3c2.1-2.5,3.1-5.9,3.1-10.3c0.1-3.1-0.7-6.2-2.3-8.9c-1.7-2.6-4.1-4.6-7-5.7
|
||||
c-3.7-1.5-7.7-2.1-11.8-2c-2.6,0-4.9,0-6.8,0.1C77.9,79.2,76.5,79.3,75.8,79.4L75.8,79.4z"/>
|
||||
<path class="st1" d="M192,106.9c-3-1.6-6.2-2.7-9.6-3.4c-3.7-0.8-7.4-1.3-11.2-1.3c-2-0.1-4.1,0.2-6,0.7c-1.3,0.3-2.4,1-3.1,2
|
||||
c-0.5,0.8-0.8,1.8-0.8,2.7c0,0.9,0.4,1.8,1,2.6c0.9,1.1,2.1,2,3.4,2.7c2.3,1.2,4.7,2.3,7.1,3.3c5.4,1.8,10.6,4.3,15.4,7.3
|
||||
c3.3,2.1,6,4.9,7.9,8.3c1.6,3.2,2.4,6.7,2.3,10.3c0.1,4.7-1.3,9.4-3.9,13.3c-2.8,4-6.7,7.1-11.2,8.9c-4.9,2.1-10.9,3.2-18.1,3.2
|
||||
c-4.6,0-9.1-0.4-13.6-1.3c-3.5-0.6-7-1.7-10.2-3.2c-0.7-0.4-1.2-1.1-1.1-1.9v-17.4c0-0.3,0.1-0.7,0.4-0.9
|
||||
c0.3-0.2,0.6-0.1,0.9,0.1c3.9,2.3,8,3.9,12.4,4.9c3.8,1,7.8,1.5,11.8,1.5c3.8,0,6.5-0.5,8.3-1.4c1.6-0.7,2.7-2.4,2.7-4.2
|
||||
c0-1.4-0.8-2.7-2.4-4c-1.6-1.3-4.9-2.8-9.8-4.7c-5.1-1.8-9.8-4.2-14.2-7.2c-3.1-2.2-5.7-5.1-7.6-8.5c-1.6-3.2-2.4-6.7-2.3-10.2
|
||||
c0-4.3,1.2-8.4,3.4-12.1c2.5-4,6.2-7.2,10.5-9.2c4.7-2.4,10.6-3.5,17.7-3.5c4.1,0,8.3,0.3,12.4,0.9c3,0.4,5.9,1.2,8.6,2.3
|
||||
c0.4,0.1,0.8,0.5,1,0.9c0.1,0.4,0.2,0.8,0.2,1.2v16.3c0,0.4-0.2,0.8-0.5,1C192.9,107.1,192.4,107.1,192,106.9z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
17
apps/photoshop-2022/info
Normal file
17
apps/photoshop-2022/info
Normal file
@@ -0,0 +1,17 @@
|
||||
# GNOME shortcut name
|
||||
NAME="Photoshop 2022"
|
||||
|
||||
# Used for descriptions and window class
|
||||
FULL_NAME="Adobe Photoshop 2022"
|
||||
|
||||
# The executable inside windows
|
||||
WIN_EXECUTABLE="C:\Program Files\Adobe\Adobe Photoshop 2022\Photoshop.exe"
|
||||
|
||||
# GNOME categories
|
||||
CATEGORIES="WinApps;Adobe"
|
||||
|
||||
# GNOME mimetypes
|
||||
MIME_TYPES="image/vnd.adobe.photoshop;"
|
||||
|
||||
# System Icon
|
||||
ICON="AdobePhotoshop"
|
48
bin/winapps
48
bin/winapps
@@ -29,7 +29,6 @@ readonly COMPOSE_PATH="${HOME}/.config/winapps/compose.yaml"
|
||||
readonly SCRIPT_DIR_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
|
||||
# OTHER
|
||||
readonly VM_NAME="RDPWindows" # FOR 'libvirt' ONLY
|
||||
readonly CONTAINER_NAME="WinApps" # FOR 'docker' AND 'podman' ONLY
|
||||
readonly RDP_PORT=3389
|
||||
readonly DOCKER_IP="127.0.0.1"
|
||||
@@ -42,15 +41,15 @@ RDP_USER=""
|
||||
RDP_PASS=""
|
||||
RDP_DOMAIN=""
|
||||
RDP_IP=""
|
||||
VM_NAME="RDPWindows" # FOR 'libvirt' ONLY
|
||||
WAFLAVOR="docker"
|
||||
RDP_FLAGS=""
|
||||
FREERDP_COMMAND=""
|
||||
REMOVABLE_MEDIA=""
|
||||
RDP_SCALE=100
|
||||
AUTOPAUSE="off"
|
||||
AUTOPAUSE_TIME="300"
|
||||
MULTIMON="false"
|
||||
DEBUG="true"
|
||||
MULTI_FLAG=""
|
||||
|
||||
# OTHER
|
||||
FREERDP_PID=-1
|
||||
@@ -123,7 +122,7 @@ Please run:
|
||||
;;
|
||||
"$EC_NOT_EXIST")
|
||||
dprint "ERROR: WINDOWS NONEXISTENT. EXITING."
|
||||
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Windows does not exist."
|
||||
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Windows VM named '${VM_NAME}' does not exist."
|
||||
;;
|
||||
"$EC_UNKNOWN")
|
||||
dprint "ERROR: UNKNOWN CONTAINER ERROR. EXITING."
|
||||
@@ -156,7 +155,16 @@ Please run:
|
||||
function dprint() {
|
||||
[ "$DEBUG" = "true" ] && echo "[$(date)-$RUNID] $1" >>"$LOG_PATH"
|
||||
}
|
||||
|
||||
# Name: 'waFixRemovableMedia'
|
||||
# Role: If user left REMOVABLE_MEDIA config null,fallback to /run/media for udisks defaults ,warning.
|
||||
function waFixRemovableMedia() {
|
||||
if [ -z "$REMOVABLE_MEDIA" ]; then
|
||||
REMOVABLE_MEDIA="/run/media" # Default for udisks
|
||||
dprint "NOTICE: Using default REMOVABLE_MEDIA: $REMOVABLE_MEDIA"
|
||||
notify-send --expire-time=3000 --icon="drive-removable-media" \
|
||||
"WinApps Notice" "Using default removable media path: $REMOVABLE_MEDIA"
|
||||
fi
|
||||
}
|
||||
# Name: 'waFixScale'
|
||||
# Role: Since FreeRDP only supports '/scale' values of 100, 140 or 180, find the closest supported argument to the user's configuration.
|
||||
function waFixScale() {
|
||||
@@ -202,12 +210,10 @@ function waLoadConfig() {
|
||||
waThrowExit $EC_MISSING_CONFIG
|
||||
fi
|
||||
|
||||
# Update 'MULTI_FLAG' based on 'MULTIMON'.
|
||||
MULTI_FLAG=$([[ $MULTIMON == "true" ]] && echo "/multimon" || echo "+span")
|
||||
|
||||
# Update $RDP_SCALE.
|
||||
waFixScale
|
||||
|
||||
# Update when $REMOVABLE_MEDIA is null
|
||||
waFixRemovableMedia
|
||||
# Update $AUTOPAUSE_TIME.
|
||||
# RemoteApp RDP sessions take, at minimum, 20 seconds to be terminated by the Windows server.
|
||||
# Hence, subtract 20 from the timeout specified by the user, as a 'built in' timeout of 20 seconds will occur.
|
||||
@@ -510,11 +516,8 @@ function waRunCommand() {
|
||||
/u:"$RDP_USER" \
|
||||
/p:"$RDP_PASS" \
|
||||
/scale:"$RDP_SCALE" \
|
||||
+dynamic-resolution \
|
||||
+auto-reconnect \
|
||||
+home-drive \
|
||||
+clipboard \
|
||||
-wallpaper \
|
||||
+dynamic-resolution \
|
||||
/wm-class:"Microsoft Windows" \
|
||||
/t:"Windows RDP Session [$RDP_IP]" \
|
||||
/v:"$RDP_IP" &>/dev/null &
|
||||
@@ -529,12 +532,7 @@ function waRunCommand() {
|
||||
/u:"$RDP_USER" \
|
||||
/p:"$RDP_PASS" \
|
||||
/scale:"$RDP_SCALE" \
|
||||
+dynamic-resolution \
|
||||
+auto-reconnect \
|
||||
+home-drive \
|
||||
+clipboard \
|
||||
-wallpaper \
|
||||
"$MULTI_FLAG" \
|
||||
/app:program:"$2" \
|
||||
/v:"$RDP_IP" &>/dev/null &
|
||||
|
||||
@@ -566,12 +564,7 @@ function waRunCommand() {
|
||||
/u:"$RDP_USER" \
|
||||
/p:"$RDP_PASS" \
|
||||
/scale:"$RDP_SCALE" \
|
||||
+dynamic-resolution \
|
||||
+auto-reconnect \
|
||||
+home-drive \
|
||||
+clipboard \
|
||||
-wallpaper \
|
||||
"$MULTI_FLAG" \
|
||||
/wm-class:"$FULL_NAME" \
|
||||
/app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME" \
|
||||
/v:"$RDP_IP" &>/dev/null &
|
||||
@@ -581,7 +574,8 @@ function waRunCommand() {
|
||||
else
|
||||
# Convert path from UNIX to Windows style.
|
||||
FILE_PATH=$(echo "$2" | sed \
|
||||
-e 's|'"${HOME}"'|\\\\tsclient\\home|' \
|
||||
-e 's|^'"${HOME}"'|\\\\tsclient\\home|' \
|
||||
-e 's|^\('"${REMOVABLE_MEDIA//|/\\|}"'\)/[^/]*|\\\\tsclient\\media|' \
|
||||
-e 's|/|\\|g')
|
||||
dprint "UNIX_FILE_PATH: ${2}"
|
||||
dprint "WINDOWS_FILE_PATH: ${FILE_PATH}"
|
||||
@@ -591,12 +585,8 @@ function waRunCommand() {
|
||||
/u:"$RDP_USER" \
|
||||
/p:"$RDP_PASS" \
|
||||
/scale:"$RDP_SCALE" \
|
||||
+dynamic-resolution \
|
||||
+auto-reconnect \
|
||||
+home-drive \
|
||||
+clipboard \
|
||||
-wallpaper \
|
||||
"$MULTI_FLAG" \
|
||||
/drive:media,"$REMOVABLE_MEDIA" \
|
||||
/wm-class:"$FULL_NAME" \
|
||||
/app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:$"FULL_NAME",cmd:\""$FILE_PATH"\" \
|
||||
/v:"$RDP_IP" &>/dev/null &
|
||||
|
20
compose.yaml
20
compose.yaml
@@ -14,28 +14,36 @@ services:
|
||||
# Version of Windows to configure. For valid options, visit:
|
||||
# https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-select-the-windows-version
|
||||
# https://github.com/dockur/windows?tab=readme-ov-file#how-do-i-install-a-custom-image
|
||||
VERSION: "tiny11"
|
||||
VERSION: "11"
|
||||
RAM_SIZE: "4G" # RAM allocated to the Windows VM.
|
||||
CPU_CORES: "4" # CPU cores allocated to the Windows VM.
|
||||
DISK_SIZE: "64G" # Size of the primary hard disk.
|
||||
#DISK2_SIZE: "32G" # Uncomment to add an additional hard disk to the Windows VM. Ensure it is mounted as a volume below.
|
||||
# DISK2_SIZE: "32G" # Uncomment to add an additional hard disk to the Windows VM. Ensure it is mounted as a volume below.
|
||||
USERNAME: "MyWindowsUser" # Edit here to set a custom Windows username. The default is 'MyWindowsUser'.
|
||||
PASSWORD: "MyWindowsPassword" # Edit here to set a password for the Windows user. The default is 'MyWindowsPassword'.
|
||||
HOME: "${HOME}" # Set path to Linux user home folder.
|
||||
privileged: true # Grant the Windows VM extended privileges.
|
||||
ports:
|
||||
- 8006:8006 # Map '8006' on Linux host to '8006' on Windows VM --> For VNC Web Interface @ http://127.0.0.1:8006.
|
||||
- 3389:3389/tcp # Map '3389' on Linux host to '3389' on Windows VM --> For Remote Desktop Protocol (RDP).
|
||||
- 3389:3389/udp # Map '3389' on Linux host to '3389' on Windows VM --> For Remote Desktop Protocol (RDP).
|
||||
cap_add:
|
||||
- NET_ADMIN # Add network permission
|
||||
stop_grace_period: 120s # Wait 120 seconds before sending SIGTERM when attempting to shut down the Windows VM.
|
||||
restart: on-failure # Restart the Windows VM if the exit code indicates an error.
|
||||
volumes:
|
||||
- data:/storage # Mount volume 'data' to use as Windows 'C:' drive.
|
||||
- ${HOME}:/shared # Mount Linux user home directory @ '\\host.lan\Data'.
|
||||
#- /path/to/second/hard/disk:/storage2 # Uncomment to mount the second hard disk within the Windows VM. Ensure 'DISK2_SIZE' is specified above.
|
||||
#- /path/to/second/hard/disk:/storage2 # Uncomment to create a virtual second hard disk and mount it within the Windows VM. Ensure 'DISK2_SIZE' is specified above.
|
||||
- ./oem:/oem # Enables automatic post-install execution of 'oem/install.bat', applying Windows registry modifications contained within 'oem/RDPApps.reg'.
|
||||
#- /path/to/windows/install/media.iso:/custom.iso # Uncomment to use a custom Windows ISO. If specified, 'VERSION' (e.g. 'tiny11') will be ignored.
|
||||
devices:
|
||||
- /dev/kvm # Enable KVM.
|
||||
#- /dev/sdX:/disk1 # Uncomment to mount a disk directly within the Windows VM (Note: 'disk1' will be mounted as the main drive. THIS DISK WILL BE FORMATTED BY DOCKER).
|
||||
#- /dev/sdY:/disk2 # Uncomment to mount a disk directly within the Windows VM (Note: 'disk2' and higher will be mounted as secondary drives. THIS DISK WILL NOT BE FORMATTED).
|
||||
- /dev/net/tun # Enable tuntap
|
||||
# Uncomment to mount a disk directly within the Windows VM.
|
||||
# WARNING: /dev/sdX paths may change after reboot. Use persistent identifiers!
|
||||
# NOTE: 'disk1' will be mounted as the main drive. THIS DISK WILL BE FORMATTED BY DOCKER.
|
||||
# All following disks (disk2, ...) WILL NOT BE FORMATTED.
|
||||
# - /dev/disk/by-id/<id>:/disk1
|
||||
# - dev/disk/by-id/<id>:/disk2
|
||||
# group_add: # uncomment this line and the next one for using rootless podman containers
|
||||
# - keep-groups # to make /dev/kvm work with podman. needs "crun" installed, "runc" will not work! Add your user to the 'kvm' group or another that can access /dev/kvm.
|
||||
|
@@ -7,11 +7,14 @@ Although WinApps supports using `QEMU+KVM+libvirt` as a backend for running Wind
|
||||
> [!IMPORTANT]
|
||||
> WinApps does __NOT__ officially support versions of Windows prior to Windows 10. Despite this, it may be possible to achieve a successful installation with some additional experimentation. If you find a way to achieve this, please share your solution through a pull request for the benefit of other users.
|
||||
> Possible setup instructions for Windows 10:
|
||||
> - 'Professional', 'Enterprise' or 'Server' editions of Windows are required to run RDP applications. Windows 'Home' will __NOT__ suffice. It is recommended to download the ISO from a reputed source, as the built in downloader from dockur (default set to `tiny11`) will take longer than it would to download from a browser/torrent.
|
||||
> - 'Professional', 'Enterprise' or 'Server' editions of Windows are required to run RDP applications. Windows 'Home' will __NOT__ suffice.
|
||||
> - It is recommended to edit the initial `compose.yaml` file to keep your required username and password from the beginning.
|
||||
> - It is recommended to not use `sudo` to force commands to run. Add your user to the relevant permissions group wherever possible.
|
||||
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The iptables kernel module must be loaded for folder sharing with the host to work.
|
||||
> Check that the output of `lsmod | grep ip_tables` and `lsmod | grep iptable_nat` is non empty.
|
||||
> If the output of one of the previous command is empty, run `echo -e "ip_tables\niptable_nat" | sudo tee /etc/modules-load.d/iptables.conf` and reboot.
|
||||
|
||||
## `Docker`
|
||||
### Installation
|
||||
@@ -24,9 +27,6 @@ Prior to installing Windows, you can modify the RAM and number of CPU cores avai
|
||||
|
||||
It is also possible to specify the version of Windows you wish to install within `compose.yaml` by modifying `VERSION`.
|
||||
|
||||
> [!NOTE]
|
||||
> WinApps uses a stripped-down Windows installation by default. Although this is recommended, you can request a stock Windows installation by changing `VERSION` to one of the versions listed in the README of the [original GitHub repository](https://github.com/dockur/windows).
|
||||
|
||||
Please refer to the [original GitHub repository](https://github.com/dockur/windows) for more information on additional configuration options.
|
||||
|
||||
> [!NOTE]
|
||||
@@ -44,36 +44,19 @@ docker compose --file ./compose.yaml up
|
||||
|
||||
You can then access the Windows virtual machine via a VNC connection to complete the Windows setup by navigating to http://127.0.0.1:8006 in your web browser.
|
||||
|
||||
After installing Windows, comment out the following lines in the `compose.yaml` file by prepending a '#':
|
||||
- `- ./oem:/oem`
|
||||
- `- /path/to/windows/install/media.iso:/custom.iso` (if relevant)
|
||||
|
||||
Then, copy this modified `compose.yaml` file to `~/.config/winapps/compose.yaml`.
|
||||
|
||||
```bash
|
||||
cp ./compose.yaml ~/.config/winapps/compose.yaml
|
||||
```
|
||||
|
||||
Finally, ensure the new configuration is applied by running the following:
|
||||
|
||||
```bash
|
||||
docker compose --file ./compose.yaml down
|
||||
docker compose --file ~/.config/winapps/compose.yaml up
|
||||
```
|
||||
|
||||
|
||||
### Changing `compose.yaml`
|
||||
Changes to `compose.yaml` require the Windows virtual machine to be removed and re-created. This should __NOT__ affect your data.
|
||||
Changes to `compose.yaml` require the container to be removed and re-created. This should __NOT__ affect your data.
|
||||
|
||||
```bash
|
||||
# Stop and remove the existing Windows virtual machine.
|
||||
# Stop and remove the existing container.
|
||||
docker compose --file ~/.config/winapps/compose.yaml down
|
||||
|
||||
# Remove the existing FreeRDP certificate (if required).
|
||||
# Note: A new certificate will be created when connecting via RDP for the first time.
|
||||
rm ~/.config/freerdp/server/127.0.0.1_3389.pem
|
||||
|
||||
# Re-create the virtual machine with the updated configuration.
|
||||
# Re-create the container with the updated configuration.
|
||||
# Add the -d flag at the end to run the container in the background.
|
||||
docker compose --file ~/.config/winapps/compose.yaml up
|
||||
```
|
||||
|
||||
@@ -95,6 +78,12 @@ docker compose --file ~/.config/winapps/compose.yaml kill # Force shut down the
|
||||
### Setup `Podman` Container
|
||||
Please follow the [`docker` instructions](#setup-docker-container).
|
||||
|
||||
> [!NOTE]
|
||||
> #### Rootless `podman` containers
|
||||
> If you are invoking podman as a user, your container will be "rootless". This can be desirable as a security feature. However, you may encounter an error about missing permissions to /dev/kvm as a consequence.
|
||||
>
|
||||
> For rootless podman to work, you need to add your user to the `kvm` group (depending on your distribution) to be able to access `/dev/kvm`. Make sure that you are using `crun` as your container runtime, not `runc`. Usually this is done by stopping all containers and (de-)installing the corresponding packages. Then either invoke podman-compose as `podman-compose --file ./compose.yaml --podman-create-args '--group-add keep-groups' up`. Or edit `compose.yaml` and uncomment the `group_add:` section at the end.
|
||||
|
||||
> [!IMPORTANT]
|
||||
> Ensure `WAFLAVOR` is set to `"podman"` in `~/.config/winapps/winapps.conf`.
|
||||
|
||||
@@ -107,35 +96,18 @@ podman-compose --file ./compose.yaml up
|
||||
|
||||
You can then access the Windows virtual machine via a VNC connection to complete the Windows setup by navigating to http://127.0.0.1:8006 in your web browser.
|
||||
|
||||
After installing Windows, comment out the following lines in the `compose.yaml` file by prepending a '#':
|
||||
- `- ./oem:/oem`
|
||||
- `- /path/to/windows/install/media.iso:/custom.iso` (if relevant)
|
||||
|
||||
Then, copy this modified `compose.yaml` file to `~/.config/winapps/compose.yaml`.
|
||||
|
||||
```bash
|
||||
cp ./compose.yaml ~/.config/winapps/compose.yaml
|
||||
```
|
||||
|
||||
Finally, ensure the new configuration is applied by running the following:
|
||||
|
||||
```bash
|
||||
podman-compose --file ./compose.yaml down
|
||||
podman-compose --file ~/.config/winapps/compose.yaml up
|
||||
```
|
||||
|
||||
### Changing `compose.yaml`
|
||||
Changes to `compose.yaml` require the Windows virtual machine to be removed and re-created. This should __NOT__ affect your data.
|
||||
Changes to `compose.yaml` require the container to be removed and re-created. This should __NOT__ affect your data.
|
||||
|
||||
```bash
|
||||
# Stop and remove the existing Windows virtual machine.
|
||||
# Stop and remove the existing container.
|
||||
podman-compose --file ~/.config/winapps/compose.yaml down
|
||||
|
||||
# Remove the existing FreeRDP certificate (if required).
|
||||
# Note: A new certificate will be created when connecting via RDP for the first time.
|
||||
rm ~/.config/freerdp/server/127.0.0.1_3389.pem
|
||||
|
||||
# Re-create the virtual machine with the updated configuration.
|
||||
# Re-create the container with the updated configuration.
|
||||
podman-compose --file ~/.config/winapps/compose.yaml up
|
||||
```
|
||||
|
||||
|
@@ -132,6 +132,9 @@ Together, these components form a powerful and flexible virtualization stack, wi
|
||||
<img src="./libvirt_images/07.png" width="500px"/>
|
||||
</p>
|
||||
|
||||
> [!NOTE]
|
||||
> A name other than `RDPWindows` can be used if `VM_NAME` is set in `~/.config/winapps/winapps.conf`.
|
||||
|
||||
9. After clicking `Finish`, select `Copy host CPU configuration` under 'CPUs', and then click `Apply`.
|
||||
|
||||
> [!NOTE]
|
||||
|
@@ -9,12 +9,12 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
rev = "ae1a9e9ea7c958255905cfd056196b3bdc4aad45";
|
||||
hash = "sha256-tpEnMyJh6tutZKLNJi64V89QvZStdkyzZBuMQz6RPHw=";
|
||||
rev = "9b3f6c581791222a3a04508606755d6d0519f322";
|
||||
hash = "sha256-Hy/o5IY9HmTWaX54Ek5ABmppPpzgM+MdCrhzEzVmtwY=";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "winapps-launcher";
|
||||
version = "0-unstable-2025-02-02";
|
||||
version = "0-unstable-2025-03-11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "winapps-org";
|
||||
|
@@ -11,12 +11,12 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
rev = "73e71aff80eec564a154a5aca92cba901370a3c5";
|
||||
hash = "sha256-vUsVmyjkBQEIsa3La4dsLpLNsyfJPNHFjH5TXhLT+EE=";
|
||||
rev = "2b2f4cea698096829fbd1c3c15970034a6f53261";
|
||||
hash = "sha256-km8q3IL5sETbFsscNy4dDxYTytuKPJQJY81p7tSk63A=";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "winapps";
|
||||
version = "0-unstable-2025-02-01";
|
||||
version = "0-unstable-2025-06-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "winapps-org";
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/setup.sh b/setup.sh
|
||||
index b7d930d6..18000c65 100755
|
||||
index 0debe4d..6aeea08 100755
|
||||
--- a/setup.sh
|
||||
+++ b/setup.sh
|
||||
@@ -39,8 +39,8 @@ readonly SYS_BIN_PATH="/usr/local/bin" # UNIX path to 'bin' dir
|
||||
@@ -21,7 +21,7 @@ index b7d930d6..18000c65 100755
|
||||
+readonly INQUIRER_PATH="@out@/src/install/inquirer.sh" # UNIX path to the 'inquirer' script, which is used to produce selection menus.
|
||||
|
||||
# REMOTE DESKTOP CONFIGURATION
|
||||
readonly VM_NAME="RDPWindows" # Name of the Windows VM (FOR 'libvirt' ONLY).
|
||||
readonly RDP_PORT=3389 # Port used for RDP on Windows.
|
||||
@@ -155,13 +155,6 @@ function waGetSourceCode() {
|
||||
echo -e "${WARNING_TEXT}[WARNING]${CLEAR_TEXT} You might want to remove your old installation on '${SCRIPT_DIR_PATH}'."
|
||||
fi
|
||||
|
54
setup.sh
54
setup.sh
@@ -73,7 +73,6 @@ readonly CONFIG_PATH="${HOME}/.config/winapps/winapps.conf" # UNIX path to the W
|
||||
readonly INQUIRER_PATH="./install/inquirer.sh" # UNIX path to the 'inquirer' script, which is used to produce selection menus.
|
||||
|
||||
# REMOTE DESKTOP CONFIGURATION
|
||||
readonly VM_NAME="RDPWindows" # Name of the Windows VM (FOR 'libvirt' ONLY).
|
||||
readonly RDP_PORT=3389 # Port used for RDP on Windows.
|
||||
readonly DOCKER_IP="127.0.0.1" # Localhost.
|
||||
|
||||
@@ -85,17 +84,20 @@ OPT_UNINSTALL=0 # Set to '1' if the user specifies '--uninstall'.
|
||||
OPT_AOSA=0 # Set to '1' if the user specifies '--setupAllOfficiallySupportedApps'.
|
||||
|
||||
# WINAPPS CONFIGURATION FILE
|
||||
RDP_USER="" # Imported variable.
|
||||
RDP_PASS="" # Imported variable.
|
||||
RDP_DOMAIN="" # Imported variable.
|
||||
RDP_IP="" # Imported variable.
|
||||
WAFLAVOR="docker" # Imported variable.
|
||||
RDP_SCALE=100 # Imported variable.
|
||||
RDP_FLAGS="" # Imported variable.
|
||||
MULTIMON="false" # Imported variable.
|
||||
DEBUG="true" # Imported variable.
|
||||
FREERDP_COMMAND="" # Imported variable.
|
||||
MULTI_FLAG="" # Set based on value of $MULTIMON.
|
||||
RDP_USER="" # Imported variable.
|
||||
RDP_PASS="" # Imported variable.
|
||||
RDP_DOMAIN="" # Imported variable.
|
||||
RDP_IP="" # Imported variable.
|
||||
VM_NAME="RDPWindows" # Name of the Windows VM (FOR 'libvirt' ONLY).
|
||||
WAFLAVOR="docker" # Imported variable.
|
||||
RDP_SCALE=100 # Imported variable.
|
||||
RDP_FLAGS="" # Imported variable.
|
||||
DEBUG="true" # Imported variable.
|
||||
FREERDP_COMMAND="" # Imported variable.
|
||||
|
||||
PORT_TIMEOUT=5 # Default port check timeout.
|
||||
RDP_TIMEOUT=30 # Default RDP connection test timeout.
|
||||
APP_SCAN_TIMEOUT=60 # Default application scan timeout.
|
||||
|
||||
# PERMISSIONS AND DIRECTORIES
|
||||
SUDO="" # Set to "sudo" if the user specifies '--system', or "" if the user specifies '--user'.
|
||||
@@ -988,7 +990,7 @@ function waCheckPortOpen() {
|
||||
fi
|
||||
|
||||
# Check for an open RDP port.
|
||||
if ! timeout 5 nc -z "$RDP_IP" "$RDP_PORT" &>/dev/null; then
|
||||
if ! timeout "$PORT_TIMEOUT" nc -z "$RDP_IP" "$RDP_PORT" &>/dev/null; then
|
||||
# Complete the previous line.
|
||||
echo -e "${FAIL_TEXT}Failed!${CLEAR_TEXT}\n"
|
||||
|
||||
@@ -1001,6 +1003,7 @@ function waCheckPortOpen() {
|
||||
# Display the suggested action(s).
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
echo "Please ensure Remote Desktop is configured on Windows as per the WinApps README."
|
||||
echo -e "Then you can try increasing the ${COMMAND_TEXT}PORT_TIMEOUT${CLEAR_TEXT} in ${COMMAND_TEXT}${CONFIG_PATH}${CLEAR_TEXT}."
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
|
||||
# Terminate the script.
|
||||
@@ -1043,10 +1046,7 @@ function waCheckRDPAccess() {
|
||||
/p:"$RDP_PASS" \
|
||||
/scale:"$RDP_SCALE" \
|
||||
+auto-reconnect \
|
||||
+home-drive \
|
||||
-wallpaper \
|
||||
+dynamic-resolution \
|
||||
/app:program:"C:\Windows\System32\cmd.exe",cmd:"/C type NUL > "$TEST_PATH_WIN" && tsdiscon" \
|
||||
/app:program:"C:\Windows\System32\cmd.exe",cmd:"/C type NUL > $TEST_PATH_WIN && tsdiscon" \
|
||||
/v:"$RDP_IP" &>"$FREERDP_LOG" &
|
||||
|
||||
# Store the FreeRDP process ID.
|
||||
@@ -1055,8 +1055,8 @@ function waCheckRDPAccess() {
|
||||
# Initialise the time counter.
|
||||
ELAPSED_TIME=0
|
||||
|
||||
# Wait a maximum of 30 seconds for the background process to complete.
|
||||
while [ "$ELAPSED_TIME" -lt 30 ]; do
|
||||
# Wait a maximum of $RDP_TIMEOUT seconds for the background process to complete.
|
||||
while [ "$ELAPSED_TIME" -lt "$RDP_TIMEOUT" ]; do
|
||||
# Check if the FreeRDP process is complete or if the test file exists.
|
||||
if ! ps -p "$FREERDP_PROC" &>/dev/null || [ -f "$TEST_PATH" ]; then
|
||||
break
|
||||
@@ -1091,6 +1091,7 @@ function waCheckRDPAccess() {
|
||||
echo " - Ensure the user is logged out of Windows prior to initiating the WinApps installation."
|
||||
echo " - Ensure the credentials within the WinApps configuration file are correct."
|
||||
echo -e " - Utilise a new certificate by removing relevant certificate(s) in ${COMMAND_TEXT}${HOME}/.config/freerdp/server${CLEAR_TEXT}."
|
||||
echo -e " - Try increasing the ${COMMAND_TEXT}RDP_TIMEOUT${CLEAR_TEXT} in ${COMMAND_TEXT}${CONFIG_PATH}${CLEAR_TEXT}."
|
||||
echo " - If using 'libvirt', ensure the Windows VM is correctly named as specified within the README."
|
||||
echo " - If using 'libvirt', ensure 'Remote Desktop' is enabled within the Windows VM."
|
||||
echo " - If using 'libvirt', ensure you have merged 'RDPApps.reg' into the Windows VM's registry."
|
||||
@@ -1172,9 +1173,6 @@ function waFindInstalled() {
|
||||
/p:"$RDP_PASS" \
|
||||
/scale:"$RDP_SCALE" \
|
||||
+auto-reconnect \
|
||||
+home-drive \
|
||||
-wallpaper \
|
||||
+dynamic-resolution \
|
||||
/app:program:"C:\Windows\System32\cmd.exe",cmd:"/C "$BATCH_SCRIPT_PATH_WIN"" \
|
||||
/v:"$RDP_IP" &>"$FREERDP_LOG" &
|
||||
|
||||
@@ -1184,8 +1182,8 @@ function waFindInstalled() {
|
||||
# Initialise the time counter.
|
||||
ELAPSED_TIME=0
|
||||
|
||||
# Wait a maximum of 60 seconds for the batch script to finish running.
|
||||
while [ $ELAPSED_TIME -lt 60 ]; do
|
||||
# Wait a maximum of $APP_SCAN_TIMEOUT seconds for the batch script to finish running.
|
||||
while [ $ELAPSED_TIME -lt "$APP_SCAN_TIMEOUT" ]; do
|
||||
# Check if the FreeRDP process is complete or if the 'installed' file exists.
|
||||
if ! ps -p "$FREERDP_PROC" &>/dev/null || [ -f "$INST_FILE_PATH" ]; then
|
||||
break
|
||||
@@ -1216,6 +1214,7 @@ function waFindInstalled() {
|
||||
# Display the suggested action(s).
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
echo -e "Please view the log at ${COMMAND_TEXT}${FREERDP_LOG}${CLEAR_TEXT}."
|
||||
echo -e "You can try increasing the ${COMMAND_TEXT}APP_SCAN_TIMEOUT${CLEAR_TEXT} in ${COMMAND_TEXT}${CONFIG_PATH}${CLEAR_TEXT}."
|
||||
echo "--------------------------------------------------------------------------------"
|
||||
|
||||
# Terminate the script.
|
||||
@@ -1558,13 +1557,6 @@ function waInstall() {
|
||||
# Check for missing dependencies.
|
||||
waCheckInstallDependencies
|
||||
|
||||
# Update $MULTI_FLAG.
|
||||
if [[ $MULTIMON == "true" ]]; then
|
||||
MULTI_FLAG="/multimon"
|
||||
else
|
||||
MULTI_FLAG="+span"
|
||||
fi
|
||||
|
||||
# Update $RDP_SCALE.
|
||||
waFixScale
|
||||
|
||||
|
Reference in New Issue
Block a user