82 Commits

Author SHA1 Message Date
pre-commit-ci[bot]
27da810f34 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-05 07:23:52 +00:00
Oskar Manhart
8ecb806b97 doc: use openbsd-netcat on arch
Closes #508
2025-06-05 09:21:55 +02:00
Oskar Manhart
84308118c6 feat: clarify compose.yaml docs regarding /dev/sdX paths
Closes #523
2025-06-04 13:47:21 +02:00
Oskar Manhart
805b479e45 Merge pull request #510 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-01 12:29:46 +02:00
github-actions[bot]
013cc42e07 winapps: 0-unstable-2025-04-19 -> 0-unstable-2025-05-26
Diff: a4d30724b5...885d02079a
2025-06-01 10:04:04 +00:00
Oskar Manhart
885d02079a Merge pull request #517 from sears-s/allow-vm-name-change
Allow libvirt VM name change
2025-05-26 12:22:20 +02:00
Sears Schulz
b3969aa3b7 More descriptive message for EC_NOT_EXIST 2025-05-23 21:50:50 -05:00
Sears Schulz
4019f9cb81 Update docs for VM_NAME 2025-05-23 21:24:33 -05:00
Sears Schulz
a2568be16f Update setup.patch to prevent need for fuzz 2025-05-23 21:16:30 -05:00
Sears Schulz
b9ef076dc8 Allow VM_NAME to be changed 2025-05-23 20:54:12 -05:00
Oskar Manhart
1edae785f4 Merge pull request #498 from winapps-org/chore/nix_update_actions
Packages: update
2025-05-11 12:50:53 +02:00
Oskar Manhart
9d025fbdcb Merge pull request #476 from kroese/patch-2
docs: Correct readme
2025-05-11 12:47:33 +02:00
github-actions[bot]
997909b4a4 winapps: 0-unstable-2025-04-12 -> 0-unstable-2025-04-19
Diff: 21304d2299...a4d30724b5
2025-04-20 10:03:31 +00:00
Oskar Manhart
a4d30724b5 Merge pull request #497 from arwarw/pr-rootless-podman-docs-v2
Document how to make rootless podman work
2025-04-19 19:07:17 +02:00
Alexander Würstlein
e2ac7f3749 Add note about rootless podman containers
Add a note that explains how to make rootless podman containers work by passing on kvm group permissions through crun.
2025-04-19 18:27:58 +02:00
Alexander Würstlein
70ee239f90 Add optional commented config lines to enable rootless podman
Rootless podman containers need the original 'kvm' (or similar) group attached to their processes to be access /dev/kvm. Uncommenting those added lines along with the described changes accomplishes this.
2025-04-19 18:26:40 +02:00
Oskar Manhart
3677c87865 Merge pull request #479 from winapps-org/chore/nix_update_actions
Packages: update
2025-04-14 09:34:19 +02:00
github-actions[bot]
2a7b1504d7 winapps: 0-unstable-2025-03-21 -> 0-unstable-2025-04-12
Diff: 1f9f25e938...21304d2299
2025-04-13 10:04:00 +00:00
Oskar Manhart
21304d2299 Merge pull request #488 from linull24/main
Share mounted media via /run/media
2025-04-12 11:49:03 +02:00
linull24
de68c79876 Update README.md 2025-04-12 17:05:27 +08:00
pre-commit-ci[bot]
9795c1b642 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-04-12 09:01:55 +00:00
linull24
335b9f7c8d fix fxxking typo and grammer 2025-04-12 17:01:46 +08:00
linull24
167e6a68e6 typo fix 2025-04-12 15:11:01 +08:00
linull24
d6cc8480c1 Update README.md
Add REMOVEABLE_MEDIA.
2025-04-12 15:04:24 +08:00
linull24
04e52f18ce add variable REMOVABLE_MEDIA 2025-04-12 14:59:16 +08:00
linull24
268445aade Update winapps 2025-04-11 21:59:11 +08:00
Oskar Manhart
f6d56fdf50 Revert "Use custom port"
This reverts commit ee9523ee39.
2025-04-05 12:36:44 +02:00
Oskar Manhart
994dcc28f3 Revert "revert back to original ports"
This reverts commit e5929a134d.
2025-04-05 12:36:26 +02:00
Oskar Manhart
92c9a01385 Revert "Use different port for rdp"
This reverts commit e83cd5ac68.
2025-04-05 12:36:23 +02:00
Oskar Manhart
d3d2fc232e Revert "Add some tweaks to dockur"
This reverts commit 2f8d27ccad.
2025-04-05 12:36:13 +02:00
Felix Bartels
ee9523ee39 Use custom port
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-04 11:39:13 +02:00
Felix Bartels
e5929a134d revert back to original ports
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-03 18:09:50 +02:00
Felix Bartels
e83cd5ac68 Use different port for rdp
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-03 18:09:02 +02:00
Felix Bartels
2f8d27ccad Add some tweaks to dockur 2025-04-03 18:07:06 +02:00
Kroese
5004e4a5ed Update docs/docker.md
Co-authored-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-04-03 11:16:35 +02:00
Kroese
12cf5ce3be Update docker.md 2025-04-03 01:51:17 +02:00
Oskar Manhart
9b1908b616 Merge pull request #475 from kroese/patch-1
fix: Change default to Win11 Pro
2025-04-02 21:49:46 +02:00
Kroese
d322050d5a Update compose.yaml 2025-04-02 12:52:55 +02:00
pre-commit-ci[bot]
1887e5567f [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-04-02 10:38:48 +00:00
Kroese
b18a388cf4 docs: Correct readme 2025-04-02 12:37:58 +02:00
Kroese
2751ba360a fix: Change default to Win11 Pro 2025-04-02 12:26:10 +02:00
Oskar Manhart
dca4ccefd9 Merge pull request #469 from dasinking/main
Add DYMO Connect
2025-03-25 06:49:10 +01:00
pre-commit-ci[bot]
a316c5adcc [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-03-25 00:53:13 +00:00
Alexander
3a1915fd7a Add files via upload 2025-03-25 01:50:12 +01:00
Alexander
1c75c7161f Create info 2025-03-25 01:49:47 +01:00
Oskar Manhart
606282e838 Merge pull request #468 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-23 15:19:32 +01:00
github-actions[bot]
ae6e15ef15 winapps: 0-unstable-2025-03-12 -> 0-unstable-2025-03-21
Diff: 65ec4f032b...1f9f25e938
2025-03-23 10:13:04 +00:00
Oskar Manhart
1f9f25e938 Merge pull request #465 from tstormn3tw0rk/fixing-failed-install-error14
Fix error 14 during setup
2025-03-21 15:01:53 +01:00
draconicSeamstress
4e7328d94d removed sets of quotes in line 1049 that broke functionality and gave a constant error 14 when running setup.sh 2025-03-20 23:39:41 -07:00
Oskar Manhart
dd744822a3 Merge pull request #454 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-16 18:22:47 +01:00
github-actions[bot]
6cf1846594 winapps-launcher: 0-unstable-2025-02-25 -> 0-unstable-2025-03-11
Diff: a1e5eeb792...9b3f6c5817
2025-03-16 10:12:57 +00:00
github-actions[bot]
2c2679aa1b winapps: 0-unstable-2025-02-26 -> 0-unstable-2025-03-12
Diff: 8be1cd7101...65ec4f032b
2025-03-16 10:12:55 +00:00
Oskar Manhart
65ec4f032b Merge pull request #456 from winapps-org/chore/update_submodules
Update submodules
2025-03-12 19:48:34 +01:00
github-actions
e96f080602 Update submodules 2025-03-11 21:59:35 +00:00
Oskar Manhart
f3d3d53f3a Merge pull request #455 from limemane/main
Adding Photoshop 2022 in pre-defined apps
2025-03-11 12:04:44 +01:00
espe
35c181d721 Remove license comment 2025-03-11 11:21:35 +01:00
esperal
40ef5803bf Adding Photoshop 2022 in pre-defined apps 2025-03-10 17:08:25 +01:00
Oskar Manhart
61af2140a1 Merge pull request #446 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-02 13:13:51 +01:00
github-actions[bot]
61d092f1a3 winapps-launcher: 0-unstable-2025-02-02 -> 0-unstable-2025-02-25
Diff: ae1a9e9ea7...a1e5eeb792
2025-03-02 10:13:25 +00:00
github-actions[bot]
ee0b168466 winapps: 0-unstable-2025-02-16 -> 0-unstable-2025-02-26
Diff: 206da93530...8be1cd7101
2025-03-02 10:13:23 +00:00
Oskar Manhart
8be1cd7101 Merge pull request #441 from winapps-org/chore/update_submodules
Update submodules
2025-02-26 10:53:39 +01:00
pre-commit-ci[bot]
4e9a416e5f [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-02-26 09:48:19 +00:00
github-actions
74cd9d93fe Update submodules 2025-02-26 09:46:03 +00:00
Oskar Manhart
821bbcdadc fix(ci): PR instead of pushing 2025-02-26 10:45:25 +01:00
Oskar Manhart
f9b8a13fdc fix(ci): workflows should have yaml extension 2025-02-26 10:39:05 +01:00
Oskar Manhart
f42c49ec75 Merge pull request #415 from winapps-org/chore/nix_update_actions
Packages: update
2025-02-25 17:48:42 +01:00
Rohan Barar
109cd696eb Merge pull request #416 from winapps-org/doc-correct-suse-pkgs
doc: install libnotify-tools instead of libnotify on OpenSUSE
2025-02-25 22:35:46 +11:00
Oskar Manhart
d962654fe5 Merge pull request #430 from whitewolf101/main
Adding mIRC as a supported app
2025-02-24 10:39:33 +01:00
whitewolf101
3c1038bb7e Update README.md
Fix indentation
2025-02-23 13:21:12 -06:00
github-actions[bot]
1ffa6f5053 winapps: 0-unstable-2025-02-01 -> 0-unstable-2025-02-16
Diff: 73e71aff80...206da93530
2025-02-23 10:13:26 +00:00
whitewolf101
7d1a986c90 Update README.md
Added mIRC as a supported application
2025-02-22 21:25:57 -06:00
whitewolf101
e4eb78a0ce Rename mirc.svg to icon.svg 2025-02-22 21:13:44 -06:00
whitewolf101
ab3916f1d2 Delete apps/mirc/logo.svg 2025-02-22 21:12:55 -06:00
whitewolf101
3bd48b7211 Add new icon.svg 2025-02-22 21:12:23 -06:00
whitewolf101
d7156d3640 Update info
Change tested date
2025-02-22 20:27:49 -06:00
whitewolf101
6b17de3771 Merge branch 'winapps-org:main' into main 2025-02-22 20:25:08 -06:00
Oskar Manhart
206da93530 Merge pull request #427 from raffaem/patch-1
Specify that iptables kernel module must be loaded for folder sharing…
2025-02-16 16:19:57 +01:00
Raffaele Mancuso
c42bf78be5 Update docker.md 2025-02-16 15:46:37 +01:00
Raffaele Mancuso
6379d8f00e Specify that iptables kernel module must be loaded for folder sharing to work 2025-02-16 15:26:15 +01:00
whitewolf101
74f0624fad Delete apps/mirc/1
File not needed
2024-10-14 18:48:24 -05:00
whitewolf101
22032284fc Add files via upload 2024-10-14 18:47:34 -05:00
whitewolf101
993129af37 Create new app folder 2024-10-14 18:46:35 -05:00
17 changed files with 269 additions and 84 deletions

View File

@@ -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"

View File

@@ -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">
@@ -301,7 +311,7 @@ Install the required dependencies.
```
- Arch Linux:
```bash
sudo pacman -Syu --needed -y curl dialog freerdp git iproute2 libnotify gnu-netcat
sudo pacman -Syu --needed -y curl dialog freerdp git iproute2 libnotify openbsd-netcat
```
- OpenSUSE:
```bash
@@ -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,6 +391,15 @@ 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.

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
View 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

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 54 KiB

22
apps/mirc/info Normal file
View 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"

View 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
View 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"

View File

@@ -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,9 +41,11 @@ 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"
@@ -123,7 +124,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 +157,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() {
@@ -207,7 +217,8 @@ function waLoadConfig() {
# 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.
@@ -581,7 +592,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}"
@@ -595,6 +607,7 @@ function waRunCommand() {
+auto-reconnect \
+home-drive \
+clipboard \
/drive:media,"$REMOVABLE_MEDIA" \
-wallpaper \
"$MULTI_FLAG" \
/wm-class:"$FULL_NAME" \

View File

@@ -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.

View File

@@ -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
```

View File

@@ -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]

View File

@@ -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";

View File

@@ -11,12 +11,12 @@
...
}:
let
rev = "73e71aff80eec564a154a5aca92cba901370a3c5";
hash = "sha256-vUsVmyjkBQEIsa3La4dsLpLNsyfJPNHFjH5TXhLT+EE=";
rev = "885d02079a36aa9696de46440c5b29b95278f904";
hash = "sha256-hkD1siuwlRNOnXpDETZEQlIb/j91hkCspAUl/m5BB6g=";
in
stdenv.mkDerivation rec {
pname = "winapps";
version = "0-unstable-2025-02-01";
version = "0-unstable-2025-05-26";
src = fetchFromGitHub {
owner = "winapps-org";

View File

@@ -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

View File

@@ -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,18 @@ 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.
MULTIMON="false" # Imported variable.
DEBUG="true" # Imported variable.
FREERDP_COMMAND="" # Imported variable.
MULTI_FLAG="" # Set based on value of $MULTIMON.
# PERMISSIONS AND DIRECTORIES
SUDO="" # Set to "sudo" if the user specifies '--system', or "" if the user specifies '--user'.
@@ -1046,7 +1046,7 @@ function waCheckRDPAccess() {
+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.