305 Commits

Author SHA1 Message Date
2b806de133 Merge pull request #572 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-22 12:36:21 +02:00
113abb3322 winapps: 0-unstable-2025-06-10 -> 0-unstable-2025-06-20
Diff: e2e9fd9b7b...aa5b3e9455
2025-06-22 10:03:55 +00:00
aa5b3e9455 Merge pull request #564 from Aldo-f/add-adobe-digital-editions-4.5
Add Adobe Digital Editions 4.5
2025-06-20 12:58:35 +02:00
109b2b1d9c Merge branch 'winapps-org:main' into add-adobe-digital-editions-4.5 2025-06-20 12:56:37 +02:00
f075eab78d Merge branch 'add-adobe-digital-editions-4.5' of https://github.com/Aldo-f/winapps into add-adobe-digital-editions-4.5 2025-06-20 12:55:38 +02:00
9e6b659f48 rm license header 2025-06-20 12:54:58 +02:00
7d8f1e440d Merge pull request #526 from winapps-org/feat-optimize-flags
Remove more default RDP flags to simplify debugging
2025-06-20 12:06:31 +02:00
4d3821d9aa fix: remove license header 2025-06-20 12:05:35 +02:00
cd5b823ff7 Merge pull request #528 from winapps-org/doc-arch-packages
doc: use openbsd-netcat on arch
2025-06-20 12:04:57 +02:00
c604f49422 Merge pull request #546 from winapps-org/feat-remove-font
Remove fonts
2025-06-20 12:02:36 +02:00
c4d48e2087 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-19 19:25:59 +00:00
3298376f92 Add Adobe Digital Editions 4.5 2025-06-19 21:23:32 +02:00
e8105f9ea6 Merge pull request #558 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-15 13:48:19 +02:00
dd9a85aae1 winapps: 0-unstable-2025-06-05 -> 0-unstable-2025-06-10
Diff: 2b2f4cea69...e2e9fd9b7b
2025-06-15 10:04:14 +00:00
c9fb729a50 feat: remove fonts 2025-06-10 18:50:26 +02:00
dcd662dc06 fix: use +dynamic-resolution in full sessions 2025-06-10 18:45:33 +02:00
e2e9fd9b7b Merge pull request #509 from egvrl/main
Add protocol handler for Microsoft Office links (e.g. ms-office://)
2025-06-10 16:13:25 +02:00
5594a23298 feat: don't hardcode winapps path 2025-06-10 16:12:53 +02:00
a317ba41f4 Merge branch 'main' into feat-optimize-flags 2025-06-10 16:11:41 +02:00
a7e465c704 Merge pull request #538 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-08 19:31:08 +02:00
c3affa75a8 winapps: 0-unstable-2025-05-26 -> 0-unstable-2025-06-05
Diff: 885d02079a...2b2f4cea69
2025-06-08 10:04:07 +00:00
2b2f4cea69 Merge pull request #524 from JoAllg/increase-timelimits
fix(setup.sh): increase timeout durations for RDP port check and process completion
2025-06-05 11:22:03 +02:00
026325d2bf [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-05 08:32:07 +00:00
e7dfd56515 feat: add configurable timeout settings for RDP operations in README and setup.sh 2025-06-05 10:31:03 +02:00
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
8ecb806b97 doc: use openbsd-netcat on arch
Closes #508
2025-06-05 09:21:55 +02:00
fc3e5e0839 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-05 07:17:43 +00:00
b42449459e feat: remove more default RDP flags to simplify debugging 2025-06-05 09:15:20 +02:00
b300444e15 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-04 20:44:52 +00:00
46de8a8caa fix(setup.sh): increase timeout durations for RDP port check and process completion 2025-06-04 22:37:57 +02:00
84308118c6 feat: clarify compose.yaml docs regarding /dev/sdX paths
Closes #523
2025-06-04 13:47:21 +02:00
805b479e45 Merge pull request #510 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-01 12:29:46 +02:00
013cc42e07 winapps: 0-unstable-2025-04-19 -> 0-unstable-2025-05-26
Diff: a4d30724b5...885d02079a
2025-06-01 10:04:04 +00:00
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
b3969aa3b7 More descriptive message for EC_NOT_EXIST 2025-05-23 21:50:50 -05:00
4019f9cb81 Update docs for VM_NAME 2025-05-23 21:24:33 -05:00
a2568be16f Update setup.patch to prevent need for fuzz 2025-05-23 21:16:30 -05:00
b9ef076dc8 Allow VM_NAME to be changed 2025-05-23 20:54:12 -05:00
5946444c63 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-05-15 14:26:58 +00:00
afb333ab4f small README.md fixes 2025-05-15 16:19:14 +02:00
97a3889ecc return to original link to be able to merge + readme update 2025-05-15 16:13:39 +02:00
c06ae550bc fix for application loop 2025-05-15 14:09:17 +02:00
bac0d08cf2 testing ms-office-protocol install 2025-05-15 14:01:17 +02:00
1edae785f4 Merge pull request #498 from winapps-org/chore/nix_update_actions
Packages: update
2025-05-11 12:50:53 +02:00
9d025fbdcb Merge pull request #476 from kroese/patch-2
docs: Correct readme
2025-05-11 12:47:33 +02:00
997909b4a4 winapps: 0-unstable-2025-04-12 -> 0-unstable-2025-04-19
Diff: 21304d2299...a4d30724b5
2025-04-20 10:03:31 +00:00
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
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
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
3677c87865 Merge pull request #479 from winapps-org/chore/nix_update_actions
Packages: update
2025-04-14 09:34:19 +02:00
2a7b1504d7 winapps: 0-unstable-2025-03-21 -> 0-unstable-2025-04-12
Diff: 1f9f25e938...21304d2299
2025-04-13 10:04:00 +00:00
21304d2299 Merge pull request #488 from linull24/main
Share mounted media via /run/media
2025-04-12 11:49:03 +02:00
de68c79876 Update README.md 2025-04-12 17:05:27 +08:00
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
335b9f7c8d fix fxxking typo and grammer 2025-04-12 17:01:46 +08:00
167e6a68e6 typo fix 2025-04-12 15:11:01 +08:00
d6cc8480c1 Update README.md
Add REMOVEABLE_MEDIA.
2025-04-12 15:04:24 +08:00
04e52f18ce add variable REMOVABLE_MEDIA 2025-04-12 14:59:16 +08:00
268445aade Update winapps 2025-04-11 21:59:11 +08:00
f6d56fdf50 Revert "Use custom port"
This reverts commit ee9523ee39.
2025-04-05 12:36:44 +02:00
994dcc28f3 Revert "revert back to original ports"
This reverts commit e5929a134d.
2025-04-05 12:36:26 +02:00
92c9a01385 Revert "Use different port for rdp"
This reverts commit e83cd5ac68.
2025-04-05 12:36:23 +02:00
d3d2fc232e Revert "Add some tweaks to dockur"
This reverts commit 2f8d27ccad.
2025-04-05 12:36:13 +02:00
ee9523ee39 Use custom port
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-04 11:39:13 +02:00
e5929a134d revert back to original ports
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-03 18:09:50 +02:00
e83cd5ac68 Use different port for rdp
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-03 18:09:02 +02:00
2f8d27ccad Add some tweaks to dockur 2025-04-03 18:07:06 +02:00
5004e4a5ed Update docs/docker.md
Co-authored-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-04-03 11:16:35 +02:00
12cf5ce3be Update docker.md 2025-04-03 01:51:17 +02:00
9b1908b616 Merge pull request #475 from kroese/patch-1
fix: Change default to Win11 Pro
2025-04-02 21:49:46 +02:00
d322050d5a Update compose.yaml 2025-04-02 12:52:55 +02:00
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
b18a388cf4 docs: Correct readme 2025-04-02 12:37:58 +02:00
2751ba360a fix: Change default to Win11 Pro 2025-04-02 12:26:10 +02:00
dca4ccefd9 Merge pull request #469 from dasinking/main
Add DYMO Connect
2025-03-25 06:49:10 +01:00
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
3a1915fd7a Add files via upload 2025-03-25 01:50:12 +01:00
1c75c7161f Create info 2025-03-25 01:49:47 +01:00
606282e838 Merge pull request #468 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-23 15:19:32 +01:00
ae6e15ef15 winapps: 0-unstable-2025-03-12 -> 0-unstable-2025-03-21
Diff: 65ec4f032b...1f9f25e938
2025-03-23 10:13:04 +00:00
1f9f25e938 Merge pull request #465 from tstormn3tw0rk/fixing-failed-install-error14
Fix error 14 during setup
2025-03-21 15:01:53 +01:00
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
dd744822a3 Merge pull request #454 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-16 18:22:47 +01:00
6cf1846594 winapps-launcher: 0-unstable-2025-02-25 -> 0-unstable-2025-03-11
Diff: a1e5eeb792...9b3f6c5817
2025-03-16 10:12:57 +00:00
2c2679aa1b winapps: 0-unstable-2025-02-26 -> 0-unstable-2025-03-12
Diff: 8be1cd7101...65ec4f032b
2025-03-16 10:12:55 +00:00
65ec4f032b Merge pull request #456 from winapps-org/chore/update_submodules
Update submodules
2025-03-12 19:48:34 +01:00
e96f080602 Update submodules 2025-03-11 21:59:35 +00:00
f3d3d53f3a Merge pull request #455 from limemane/main
Adding Photoshop 2022 in pre-defined apps
2025-03-11 12:04:44 +01:00
35c181d721 Remove license comment 2025-03-11 11:21:35 +01:00
40ef5803bf Adding Photoshop 2022 in pre-defined apps 2025-03-10 17:08:25 +01:00
61af2140a1 Merge pull request #446 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-02 13:13:51 +01:00
61d092f1a3 winapps-launcher: 0-unstable-2025-02-02 -> 0-unstable-2025-02-25
Diff: ae1a9e9ea7...a1e5eeb792
2025-03-02 10:13:25 +00:00
ee0b168466 winapps: 0-unstable-2025-02-16 -> 0-unstable-2025-02-26
Diff: 206da93530...8be1cd7101
2025-03-02 10:13:23 +00:00
8be1cd7101 Merge pull request #441 from winapps-org/chore/update_submodules
Update submodules
2025-02-26 10:53:39 +01:00
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
74cd9d93fe Update submodules 2025-02-26 09:46:03 +00:00
821bbcdadc fix(ci): PR instead of pushing 2025-02-26 10:45:25 +01:00
f9b8a13fdc fix(ci): workflows should have yaml extension 2025-02-26 10:39:05 +01:00
f42c49ec75 Merge pull request #415 from winapps-org/chore/nix_update_actions
Packages: update
2025-02-25 17:48:42 +01:00
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
d962654fe5 Merge pull request #430 from whitewolf101/main
Adding mIRC as a supported app
2025-02-24 10:39:33 +01:00
3c1038bb7e Update README.md
Fix indentation
2025-02-23 13:21:12 -06:00
1ffa6f5053 winapps: 0-unstable-2025-02-01 -> 0-unstable-2025-02-16
Diff: 73e71aff80...206da93530
2025-02-23 10:13:26 +00:00
7d1a986c90 Update README.md
Added mIRC as a supported application
2025-02-22 21:25:57 -06:00
e4eb78a0ce Rename mirc.svg to icon.svg 2025-02-22 21:13:44 -06:00
ab3916f1d2 Delete apps/mirc/logo.svg 2025-02-22 21:12:55 -06:00
3bd48b7211 Add new icon.svg 2025-02-22 21:12:23 -06:00
d7156d3640 Update info
Change tested date
2025-02-22 20:27:49 -06:00
6b17de3771 Merge branch 'winapps-org:main' into main 2025-02-22 20:25:08 -06:00
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
c42bf78be5 Update docker.md 2025-02-16 15:46:37 +01:00
6379d8f00e Specify that iptables kernel module must be loaded for folder sharing to work 2025-02-16 15:26:15 +01:00
879e27272b doc: install libnotify-tools instead of libnotify on OpenSUSE
Closes #414:
2025-02-09 14:58:21 +01:00
4bc58dd488 Merge pull request #402 from KernelGhost/main
Documentation Improvements
2025-02-02 13:31:29 +01:00
b87ba41bad fix: account for renamed file 2025-02-02 12:05:19 +01:00
290226aec7 fix: make patches apply 2025-02-02 12:01:36 +01:00
5831696ead Merge remote-tracking branch 'upstream/main' 2025-02-02 11:49:41 +01:00
e164a6b5ef fix(ci): don't create PRs on other people's repos 2025-02-02 11:40:25 +01:00
0b6eed0a04 Merge pull request #403 from winapps-org/chore/nix_update_actions
Packages: update
2025-02-02 11:29:41 +01:00
c033d7c4a8 feat(ci): allow running on PRs 2025-02-02 11:26:21 +01:00
a00939164d winapps-launcher: 0-unstable-2025-01-12 -> 0-unstable-2025-02-02
Diff: 3eb63ad144...ae1a9e9ea7
2025-02-02 10:12:05 +00:00
d122319392 winapps: 0-unstable-2025-01-19 -> 0-unstable-2025-02-01
Diff: 8c4a695a9f...73e71aff80
2025-02-02 10:12:02 +00:00
b0a0993afc Improved virtualisation stack diagram readability for GitHub light mode 2025-02-02 17:50:51 +11:00
7e657c58a7 Updated setup script to reference 'winapps-setup' instead of './setup' + Added sourcing of shell configuration files to apply PATH modifications immediately 2025-02-02 17:44:31 +11:00
d3d97d7d35 Improve instructions for identifying and correcting RDP TLS certificate issues during WinApps setup 2025-02-02 17:31:36 +11:00
b678a9f130 Add 'curl' and 'git' as required dependencies in README 2025-02-02 15:37:01 +11:00
35c5a1dc6c Correct reference to light-mode banner image in README 2025-02-02 15:33:28 +11:00
73e71aff80 Merge pull request #401 from KernelGhost/main
Fixed #177 - Removed erroneous instruction to install 'qemu-guest-agent'
2025-02-01 10:04:51 +01:00
963e74b90e Fixed #177 - Removed erroneous instruction to install 'qemu-guest-agent' 2025-02-01 17:05:00 +11:00
26c3ae12ca Merge pull request #395 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-26 11:35:37 +01:00
b2e2d946c8 winapps: 0-unstable-2025-01-16 -> 0-unstable-2025-01-19
Diff: e20e3423fb...8c4a695a9f
2025-01-26 10:12:32 +00:00
8c4a695a9f Merge pull request #390 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-19 12:28:54 +01:00
01f070b701 winapps: 0-unstable-2025-01-16 -> 0-unstable-2025-01-16
Diff: d12b400730...e20e3423fb
2025-01-19 10:12:58 +00:00
e20e3423fb Merge pull request #389 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-16 17:33:11 +01:00
1ffdff8fbe winapps: 0-unstable-2025-01-13 -> 0-unstable-2025-01-16
Diff: 8a4d8906d3...d12b400730
2025-01-16 16:31:10 +00:00
d12b400730 Merge pull request #388 from toastedcrumpets/main
Add the reMarkable desktop app
2025-01-16 17:28:28 +01:00
db7562aec5 Removed copyright assertion 2025-01-16 16:25:38 +00:00
373c85aeb2 Added reMarkable desktop app 2025-01-16 13:49:10 +00:00
6e0da93a4a Merge pull request #387 from starbr3aker/waEnsureOnPathFix
waEnsureOnPathFix
2025-01-15 21:52:49 +01:00
6103770f0b Merge pull request #385 from winapps-org/fix-nix-patch
fix: always source inquirer from path on nix
2025-01-15 21:37:54 +01:00
4884cc97ca waEnsureOnPathFix 2025-01-15 23:20:17 +05:30
7b939fc541 waEnsureOnPathFix 2025-01-15 23:12:36 +05:30
ad443a5a97 waEnsureOnPathFix 2025-01-15 22:58:37 +05:30
6df306f32a fix: typo 2025-01-15 11:29:39 +01:00
fe6322c585 fix: force runner user to be trusted 2025-01-15 10:40:50 +01:00
99fcee0982 fix: do not check for existing install on nix 2025-01-15 10:36:00 +01:00
df3548778c fix: use better if format 2025-01-15 10:25:40 +01:00
6c3d582406 Merge pull request #380 from starbr3aker/patch-1
doc: docker.md added Win10 instructions
2025-01-15 09:25:22 +01:00
09abdb747e Resolved comments 2025-01-15 08:30:13 +05:30
06a112d012 Merge pull request #386 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-14 17:54:10 +01:00
af1ba31334 winapps-launcher: 0-unstable-2024-10-01 -> 0-unstable-2025-01-12
Diff: 9f5fbcb57f...3eb63ad144
2025-01-14 16:53:48 +00:00
3290965614 winapps: 0-unstable-2025-01-10 -> 0-unstable-2025-01-13
Diff: c98938776d...8a4d8906d3
2025-01-14 16:53:45 +00:00
405e61d122 fix: actually build packages so they're inside the cachix cache 2025-01-14 17:51:22 +01:00
80ba2ad378 fix: always source inquirer from path on nix 2025-01-14 17:41:01 +01:00
9a1ed82053 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-13 17:49:35 +00:00
9c0c39845c Resolved comments 2025-01-13 23:19:17 +05:30
8a4d8906d3 doc: fallback to pkgs.system on nix 2025-01-13 09:24:36 +01:00
0826a238bc [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-12 17:50:29 +00:00
8cd9dd7919 doc: default installation is via docker, changed files to reflect this. 2025-01-12 23:19:27 +05:30
4ce6204881 doc: docker.md added Win10 instructions
Added some steps I found useful while setting up with win10
2025-01-12 22:59:38 +05:30
a060947ac5 Merge pull request #378 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-12 13:17:25 +01:00
a98589ba14 winapps: 0-unstable-2025-01-03 -> 0-unstable-2025-01-10
Diff: f4f4d30998...c98938776d
2025-01-12 10:12:26 +00:00
c98938776d Merge pull request #376 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-10 10:02:59 +01:00
e897292a34 winapps: 0-unstable-2025-01-01 -> 0-unstable-2025-01-03
Diff: 983a305518...f4f4d30998
2025-01-05 10:12:40 +00:00
f4f4d30998 Merge pull request #374 from stceum/setup_fixup
Fixup the bug that when the winapps-src is cloned but $INQUIRER is …
2025-01-03 11:17:41 +01:00
03c702a662 fmt: reindent file 2025-01-03 11:16:46 +01:00
b76598b3bb [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-01-03 07:13:37 +00:00
7a59b3b9b7 Fixup the bug that when the winapps-src is cloned but $INQUIRER is not updated with cloned path causing the failure of running the script. 2025-01-03 15:09:13 +08:00
c554632fe1 Merge pull request #372 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-01 19:08:08 +01:00
996ff12c7f winapps: 0-unstable-2024-12-22 -> 0-unstable-2025-01-01
Diff: ea1bd4f319...983a305518
2025-01-01 16:29:10 +00:00
983a305518 doc: usage of binary cache 2025-01-01 17:27:36 +01:00
8e85c63ee5 feat: use cachix 2025-01-01 17:12:32 +01:00
f25f319efa Merge pull request #369 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-29 12:41:50 +01:00
854bc4e85f winapps: 0-unstable-2024-12-18 -> 0-unstable-2024-12-22
Diff: a78982bda6...ea1bd4f319
2024-12-29 10:12:14 +00:00
ea1bd4f319 Merge pull request #363 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-22 17:46:04 +01:00
dd2c5ee25d winapps: 0-unstable-2024-12-15 -> 0-unstable-2024-12-18
Diff: af238bd4ba...a78982bda6
2024-12-22 10:12:03 +00:00
a78982bda6 fix: remove bad escape characters 2024-12-18 10:58:39 +01:00
b1e2107b8f Merge pull request #359 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-15 11:50:30 +01:00
f27c3482a3 winapps: 0-unstable-2024-12-07 -> 0-unstable-2024-12-15
Diff: 3f44fc3b0f...af238bd4ba
2024-12-15 10:41:34 +00:00
af238bd4ba Merge pull request #312 from winapps-org/doc-install-bat-on-libvirt
doc: run install.bat on libvirt
2024-12-15 11:39:44 +01:00
8e3a3bfc9c doc: run install.bat on libvirt 2024-12-13 20:22:25 +01:00
564d28bb7f doc: remove /network:lan for troubleshooting
As mentioned in #354
2024-12-13 10:35:43 +01:00
9e9eae842d Merge pull request #357 from molostovvs/feat/linqpad-smss
Add linqpad8 and ssms20
2024-12-13 10:31:06 +01:00
152cd3e292 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-12-13 07:46:02 +00:00
a06a28b8ad feat: add linqpad8 and ssms20 2024-12-13 10:43:04 +03:00
275d0cb975 doc: freerdp3-x11 on debian needs backports
Closes #243
2024-12-08 11:52:31 +01:00
d3167845c6 Merge pull request #352 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-08 11:43:51 +01:00
c065c0decb winapps: 0-unstable-2024-12-01 -> 0-unstable-2024-12-07
Diff: a2fb111506...3f44fc3b0f
2024-12-08 10:13:27 +00:00
3f44fc3b0f doc: need to set a password on freerdp3.9+
Closes #305
2024-12-07 18:05:23 +01:00
6be98c5224 feat: add /network:lan to default freerdp flags for increased perf
Closes #339
2024-12-07 09:42:44 +01:00
220bd55964 Merge pull request #342 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-01 12:25:49 +01:00
f326126705 winapps: 0-unstable-2024-11-04 -> 0-unstable-2024-12-01
Diff: 5fb2c7b0fd...a2fb111506
2024-12-01 11:09:29 +00:00
a2fb111506 feat: cache action runs 2024-12-01 12:07:49 +01:00
43dc3c29f4 fix: update nix-update action 2024-12-01 11:54:28 +01:00
1594b388c7 fix: use ghcr image for podman compat
Closes #337
2024-11-29 11:29:52 +01:00
556095a684 Merge pull request #336 from mindset-tk/main
Fix logging to show correct date/times
2024-11-28 20:22:14 +01:00
a061cf1ba2 doc: workaround for setting LIBVIRT_DEFAULT_URI
See #310
2024-11-28 15:04:22 +01:00
8c3a8f8611 Fix logging
Logging was misleading and the date/times logged to file were always the time that the app was initialized, instead of the time of the actual log entry. Issue was noted in https://github.com/winapps-org/winapps/issues/334.
2024-11-25 14:29:14 -08:00
fe6fa6220b Merge pull request #335 from eylenburg/readme-fix
Fix docker.md and add OpenSUSE dependencies
2024-11-25 15:19:15 +01:00
122053a078 Add OpenSUSE dependencies 2024-11-25 14:13:25 +00:00
68b13b2da1 Update docker.md 2024-11-25 11:49:08 +00:00
9073afa69d Merge pull request #321 from winapps-org/chore/nix_update_actions
Packages: update
2024-11-10 13:13:04 +01:00
3779f507c9 winapps: 0-unstable-2024-11-01 -> 0-unstable-2024-11-04
Diff: dd89b2748a...5fb2c7b0fd
2024-11-10 10:11:35 +00:00
5fb2c7b0fd Merge pull request #313 from winapps-org/chore/nix_update_actions
winapps: 0-unstable-2024-10-09 -> 0-unstable-2024-11-01
2024-11-04 17:31:34 +01:00
fca2618dee winapps: 0-unstable-2024-10-09 -> 0-unstable-2024-11-01
Diff: c8dcccad08...dd89b2748a
2024-11-01 12:57:56 +00:00
dd89b2748a Merge branch 'main' of github.com:winapps-org/winapps 2024-11-01 13:56:27 +01:00
6fb023a1c6 fix(ci): allow passing extra args to nix-update 2024-11-01 13:55:58 +01:00
c330e29f27 fix(ci): allow passing extra args to nix-update 2024-11-01 13:46:45 +01:00
3865e2abe7 fix(ci): update actions 2024-11-01 13:29:56 +01:00
be5d020a04 fix(ci): ignore patches 2024-11-01 13:26:29 +01:00
e93cf9a535 Merge pull request #234 from winapps-org/feat-nix-packaging
Package WinApps (and the Launcher) with Nix
2024-11-01 13:23:36 +01:00
b49979e6ce Merge pull request #268 from tristanRW/patch-1
Fix keyboard-layout being changed to US on RDP connection
2024-11-01 12:29:39 +01:00
6dd5038c46 Merge branch 'main' into patch-1 2024-11-01 12:28:58 +01:00
b9aa42856d Merge pull request #259 from itiligent/main
Clean up network profiles
2024-11-01 12:26:30 +01:00
b18efc4497 fix: don't change mode for owner but for current user 2024-11-01 12:23:11 +01:00
2dafe2d7a1 fix: iron out some more issues
This addresses the issues in https://github.com/winapps-org/winapps/pull/234#discussion_r1813582112
and closes #299.
2024-10-30 09:22:23 +01:00
df54d08955 feat: properly set versions 2024-10-22 21:07:29 +02:00
7277f71b9c feat: auto-update flake weekly 2024-10-22 21:04:17 +02:00
e630b5a898 feat: update packages 2024-10-22 21:03:55 +02:00
e8fbc95e3e Merge branch 'feat-nix-packaging' of github.com:winapps-org/winapps into feat-nix-packaging 2024-10-22 20:50:45 +02:00
9d455ba753 feat: flake-compat 2024-10-22 20:49:32 +02:00
74f0624fad Delete apps/mirc/1
File not needed
2024-10-14 18:48:24 -05:00
22032284fc Add files via upload 2024-10-14 18:47:34 -05:00
993129af37 Create new app folder 2024-10-14 18:46:35 -05:00
c8dcccad08 Merge pull request #291 from Username404-59/main
README.md: Update Gentoo dependencies list
2024-10-09 11:59:36 +02:00
9ca357642a README.md: Update Gentoo dependencies list
Fixes the ebuild parent dirs & depend on openbsd-netcat instead of netcat because libvirt needs it and is likely to be installed
2024-10-08 21:41:59 +02:00
e8dc55a83a fix: typo 2024-10-05 09:55:56 +02:00
d248abcc64 Merge pull request #281 from CHN-beta/feat-nix-packaging
use netcat instead of netcat-gnu
2024-10-05 09:54:52 +02:00
chn
64478a87a4 use netcat instead of netcat-gnu 2024-10-05 14:08:39 +08:00
2211d9f78e Fix keyboard-layout being changed to US on RDP connection
Added the IgnoreRemoteKeyboardLayout Registry Key to prevent automatic changes to the keyboard layout.

As mentioned in (this article)[https://poweradm.com/ignoreremotekeyboardlayout-windows-rdp/] the rdp server adds and activates the US keyboard-layout if the keyboard-layout of the client does not match the servers. Since our client is on linux there are many cases where this is not given, so it is better to let the user choose a layout on windows.
2024-09-23 22:19:22 +08:00
406c7c0213 Merge pull request #264 from winapps-org/freechelmi-patch-1
Remove Winapps install from Docker doc
2024-09-20 10:08:57 +02:00
0a7bf57a13 Merge pull request #263 from MopigamesYT/main
Fix netcat package typo for arch systems
2024-09-19 17:09:14 +02:00
49a2dd91e9 Remove Winapps install from Docker doc
This winapps paragraph leads user to confusion and start winapps right away although they have other steps to do in the main doc page
2024-09-19 16:48:55 +02:00
602aee2b9b Merge branch 'winapps-org:main' into main 2024-09-19 15:50:23 +02:00
39063a3fff Update README.md 2024-09-19 15:49:30 +02:00
93bdf8856f fix: remove license header from reg file (closes #261) 2024-09-19 12:47:56 +02:00
7cbe3ff07c Merge pull request #262 from KernelGhost/main
Fixed #192 (Clarified ambiguous Debian package)
2024-09-19 18:49:31 +10:00
b4c32b09b9 Fixed #192 (Clarified ambiguous Debian package) 2024-09-19 18:38:12 +10:00
86bfd8bdf1 fix: remove trailing spaces 2024-09-18 17:59:58 +02:00
2a70f7f3a2 fucking WORK 2024-09-18 17:56:49 +02:00
fd90dd837d fuck this honestly 2024-09-18 17:51:08 +02:00
e6e1e26c14 Update lictool.yaml 2024-09-18 17:40:58 +02:00
b854224cef fix(ci): run lictool without pre-commit 2024-09-18 17:37:06 +02:00
cd2a73ff30 Cleanup network profiles 2024-09-18 23:11:49 +10:00
4b22993e9c Merge branch 'winapps-org:main' into main 2024-09-18 18:02:55 +10:00
0468d3b4cb doc: update readme in regards to #233 2024-09-18 09:51:38 +02:00
6d67815c9c [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-09-18 05:26:52 +00:00
e839d1fdcd change script path to %windir% 2024-09-18 15:26:41 +10:00
90b3422709 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-09-18 04:58:41 +00:00
1496041b48 Clean up old network profiles
Keep Windows networking tidy. At boot a Powershell script will run that  clears out old network profile names automatically created at previous system reboots. A regist change disables the "Do you want your PC to be discoverable" nag screen after eachc reboot
2024-09-18 14:50:48 +10:00
509a782a4a Merge branch 'main' into feat-nix-packaging 2024-09-14 17:50:30 +02:00
45bb5e24f2 Merge branch 'main' of github.com:winapps-org/winapps 2024-09-14 17:46:19 +02:00
cccdf03863 Merge pull request #240 from winapps-org/add-contribution-guidelines
Resolve licensing issues
2024-09-14 17:46:03 +02:00
41a1450bd0 Merge pull request #240 from winapps-org/add-contribution-guidelines
Resolve licensing issues
2024-09-14 17:42:24 +02:00
ad8b1cfc8e Update CODE_OF_CONDUCT.md 2024-09-12 10:00:08 +02:00
d49b60cbc5 Merge pull request #250 from itiligent/main
switch managment of /sound /microphone & /cert:tofu to the winapps config file
2024-09-10 17:39:11 +02:00
0775e16562 enable sound & tofu to config file
also harmonised default RDP options to :
                +dynamic-resolution \
                +auto-reconnect \
                +home-drive \
                +clipboard \
                -wallpaper \
2024-09-10 23:21:39 +10:00
7f3cdcee4d fix: fix malformed patch 2024-09-09 17:50:55 +02:00
60b3e809fb Merge remote-tracking branch 'origin/main' into feat-nix-packaging 2024-09-09 17:22:48 +02:00
2d06aa2e89 Merge remote-tracking branch 'origin/main' into add-contribution-guidelines 2024-09-09 17:17:08 +02:00
b044cb41c7 fix: properly name patches & remove nixfmt pre-commit hook since it requires GHC & hackage 2024-09-09 16:13:15 +02:00
07817afe0c Merge pull request #248 from queler/win7
Support old windows versions
2024-09-09 15:49:32 +02:00
f540241f07 Merge pull request #247 from queler/oldapps
Added some old apps.
2024-09-09 15:49:10 +02:00
28e958e600 feat: use patches 2024-09-09 11:09:42 +02:00
7d5cce374c feat: use nixfmt 2024-09-09 10:31:41 +02:00
451e7e65a3 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-09-09 03:33:09 +00:00
9223ffc8ed Added some old apps.
Added acrobat 9 and Word and Excel 2010.
Acrobat in particular did not work with autodetect.
2024-09-08 23:27:20 -04:00
e6d04bf8e0 Support old windows versions
Added a test to not error out when the Appx cmdlets are not available (like in
the windows 7 box i am using). I had some install issues with creating the
bin links so I added "-f".
2024-09-08 23:19:32 -04:00
3d674066c7 feat: relicense to AGPLv3 2024-09-08 12:30:28 +02:00
b0f2830224 feat: bump version 2024-09-08 12:27:36 +02:00
7bae17e3a3 Merge pull request #245 from gordoncheong/main
Fixing Uninstall Failure
2024-09-08 12:24:08 +02:00
f4c0a454b7 fix: properly escape ${} 2024-09-08 11:46:48 +02:00
b7b5b34b27 Merge branch 'main' into feat-nix-packaging 2024-09-08 11:42:44 +02:00
1613faba04 fix: rename source directory to winapps-src 2024-09-08 11:27:56 +02:00
58c66679ab Fixing Uninstallation Failure 2024-09-08 13:11:04 +08:00
99eeac4239 Merge branch 'add-contribution-guidelines' 2024-09-07 18:16:21 +02:00
3cb2e189c2 Reapply "Merge pull request #15 from winapps-org/add-contribution-guidelines"
This reverts commit 2dd0980cc9.
2024-09-07 18:16:13 +02:00
350f003d81 Merge pull request #232 from winapps-org/feat-install-script
Simplify installation process
2024-09-07 17:56:13 +02:00
26a2f13815 feat: bump version 2024-09-07 13:30:35 +02:00
00141f1d54 fix: do not symlink binaries on nix 2024-09-07 13:05:09 +02:00
da35923df9 feat: package winapps & the winapps launcher using nix
doc: document installation using Nix

fix: explicitely specify path to inquirer

fix: libvirt group is called libvirtd on nix

fix: set libvirturl for winapps-launcher

fix: refine group change sed expr

feat: add desktop file

fix: do not use source derivation

fix: use install instead of cp

fix: ensure  exists
2024-09-07 10:49:40 +02:00
570badd78b feat: fix up authors and keep GPL 2024-09-05 18:21:23 +02:00
2dd0980cc9 Revert "Merge pull request #15 from winapps-org/add-contribution-guidelines"
This reverts commit d2601efeab, reversing
changes made to f01427a236.
2024-09-05 17:31:21 +02:00
d2601efeab Merge pull request #15 from winapps-org/add-contribution-guidelines
Relicense legacy to Unlicense
2024-09-05 10:14:05 +02:00
c0db3e4d3b Update lictool.yaml 2024-09-04 21:29:49 +02:00
a7c8d4acfe feat: run lictool seperately in CI 2024-09-04 17:00:15 +02:00
34e76f749b fix: hook crashes in ci 2024-09-04 16:56:11 +02:00
eaef31089c fix: clarify contribution guidelines 2024-09-04 16:52:28 +02:00
1d3e521144 feat: add license header to our files 2024-09-04 16:48:49 +02:00
6aaf7cf844 feat: add license information to files unchanged from old repo 2024-09-04 16:42:36 +02:00
0efbd5818c feat: use dual-licensed unlicense 2024-09-04 16:27:48 +02:00
20e0983a29 Merge branch 'main' into add-contribution-guidelines 2024-09-04 15:19:22 +02:00
f01427a236 Merge pull request #237 from C0rn3j/patch-1
README.md: Rename `KDE` shorthand to the correct `KDE Plasma`
2024-09-02 19:26:25 +10:00
df688076b5 Changed 'Plasma' to 'KDE Plasma' for clarity. 2024-09-02 19:24:10 +10:00
df56347660 Merge pull request #238 from KernelGhost/main
Various `libvirt` Documentation Improvements
2024-09-02 15:28:39 +10:00
3a0acff38f Revise Exec Path Check in ExtractPrograms.ps1 2024-09-02 12:15:02 +10:00
e224e233cc Implement Exec Path Check in ExtractPrograms.ps1 2024-09-02 12:09:44 +10:00
f2afc99339 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2024-09-02 00:52:15 +00:00
1c35e76f25 Added Static IP Address Configuration Instructions 2024-09-02 10:49:06 +10:00
08cd44f17b Added Fallback Shared Folder Configuration Instructions 2024-09-02 10:34:18 +10:00
a5ae665582 Clarified OOBE\BYPASSNRO Instructions 2024-09-02 10:15:15 +10:00
916c1e6bd8 Fixed #223 2024-09-02 10:00:59 +10:00
02b0f2856c README.md: Rename KDE Plasma shorthand to the correct Plasma 2024-09-02 00:29:29 +02:00
8841b93f45 feat: add GPLv3 2023-07-15 15:58:16 +00:00
8387d287a9 feat: add contribution guidelines 2023-07-15 15:07:42 +00:00
119 changed files with 2775 additions and 380 deletions

40
.github/workflows/update-nix.yaml vendored Normal file
View File

@ -0,0 +1,40 @@
name: "Update Flake Packages"
permissions:
contents: write
pull-requests: write
on:
pull_request:
branches: [main]
types: [labeled]
schedule:
- cron: "0 10 * * 0" # https://crontab.guru/#0_10_*_*_0
jobs:
build:
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'rebuild nix')
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@main
with:
trust-runner-user: true
- name: Set up cache
uses: cachix/cachix-action@v15
with:
name: winapps
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Update flake packages
uses: winapps-org/nix-update-action@v1.4.0
with:
extra-args: --version=branch
skip-pr: "${{ github.event_name == 'pull_request' }}"
- name: Build packages
run: nix build .#winapps .#winapps-launcher

37
.github/workflows/update-submodule.yaml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Update submodules
on:
repository_dispatch:
types: update
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Update module
run: |
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
with:
add: WinApps-Launcher
default_author: github_actions
message: "Update submodules"
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

@ -1,25 +0,0 @@
name: Update submodules
on:
repository_dispatch:
types: update
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Update module
run: |
git submodule update --init --recursive --checkout -f
- name: Commit and push
uses: EndBug/add-and-commit@v9
with:
add: "WinApps-Launcher"
default_author: github_actions
message: "Update submodules"
push: true
fetch: true

View File

@ -1,6 +1,8 @@
ci:
autoupdate_branch: "rewrite"
exclude: ^(.+)\.patch$
repos:
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.5

133
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,133 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
https://matrix.to/#/#winapps:matrix.org.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

8
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,8 @@
# Contribution Guidelines
Thank you for contributing to winapps! Before you can contribute, we ask some things of you:
- Please follow our Code of Conduct, the Contributor Covenant. You can find a copy in this repository or under https://www.contributor-covenant.org/
- All Contributors have to sign [a CLA](https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5) for legal reasons. When opening a PR, @cla-assistant will prompt you and guide you through the process. However, if you contribute on behalf of a legal entity, we ask of you to sign [a different CLA](https://gist.github.com/oskardotglobal/75a8cc056e56a439fa6a1551129ae47f). In that case, please contact us.
- Please follow code conventions enforced by `pre-commit`. To keep down CI usage, please run it locally before committing too.
See <https://pre-commit.com> for installation, then run `pre-commit install` inside the `winapps` repository you cloned.

8
COPYRIGHT.md Normal file
View File

@ -0,0 +1,8 @@
Some of the files are
Copyright (c) 2024 fmstrat
Many files also contain contributions from third parties.
In this case the original copyright of the contributions can be traced through the history of the source version control system.
When that is not the case, the files contain a prominent notice stating the original copyright and applicable license, or come with their own dedicated COPYRIGHT and/or LICENSE file.

628
LICENSE.md Normal file
View File

@ -0,0 +1,628 @@
For copyright information, please see the [COPYRIGHT.md](./COPYRIGHT.md) file.
This project has files licensed under different licenses.
The original project by Fmstrat <https://github.com/Fmstrat/winapps/> is not free software.
Due to lack of a license, it is All Rights Reserved by the original author.
We have tried contacting Fmstrat about this, but they abandoned the project and did not reply nor apply an open-source license to the project.
However, almost all parts of the codebase have been rewritten and all new contributions require a Contributor License Agreement ([for individuals](https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5), [for legal entities](https://gist.github.com/oskardotglobal/75a8cc056e56a439fa6a1551129ae47f)) to be signed. Therefore, the below license is applied to all new contributions made to the project.
Refer to a specific file for it's respective license.
# GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc.
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
## Preamble
The GNU Affero General Public License is a free, copyleft license for
software and other kinds of works, specifically designed to ensure
cooperation with the community in the case of network server software.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
our General Public Licenses are intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains
free software for all its users.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
Developers that use our General Public Licenses protect your rights
with two steps: (1) assert copyright on the software, and (2) offer
you this License which gives you legal permission to copy, distribute
and/or modify the software.
A secondary benefit of defending all users' freedom is that
improvements made in alternate versions of the program, if they
receive widespread use, become available for other developers to
incorporate. Many developers of free software are heartened and
encouraged by the resulting cooperation. However, in the case of
software used on network servers, this result may fail to come about.
The GNU General Public License permits making a modified version and
letting the public access it on a server without ever releasing its
source code to the public.
The GNU Affero General Public License is designed specifically to
ensure that, in such cases, the modified source code becomes available
to the community. It requires the operator of a network server to
provide the source code of the modified version running there to the
users of that server. Therefore, public use of a modified version, on
a publicly accessible server, gives the public access to the source
code of the modified version.
An older license, called the Affero General Public License and
published by Affero, was designed to accomplish similar goals. This is
a different license, not a version of the Affero GPL, but Affero has
released a new version of the Affero GPL which permits relicensing
under this license.
The precise terms and conditions for copying, distribution and
modification follow.
## TERMS AND CONDITIONS
### 0. Definitions.
"This License" refers to version 3 of the GNU Affero General Public
License.
"Copyright" also means copyright-like laws that apply to other kinds
of works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of
an exact copy. The resulting work is called a "modified version" of
the earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user
through a computer network, with no transfer of a copy, is not
conveying.
An interactive user interface displays "Appropriate Legal Notices" to
the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
### 1. Source Code.
The "source code" for a work means the preferred form of the work for
making modifications to it. "Object code" means any non-source form of
a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users can
regenerate automatically from other parts of the Corresponding Source.
The Corresponding Source for a work in source code form is that same
work.
### 2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not convey,
without conditions so long as your license otherwise remains in force.
You may convey covered works to others for the sole purpose of having
them make modifications exclusively for you, or provide you with
facilities for running those works, provided that you comply with the
terms of this License in conveying all material for which you do not
control copyright. Those thus making or running the covered works for
you must do so exclusively on your behalf, under your direction and
control, on terms that prohibit them from making any copies of your
copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under the
conditions stated below. Sublicensing is not allowed; section 10 makes
it unnecessary.
### 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such
circumvention is effected by exercising rights under this License with
respect to the covered work, and you disclaim any intention to limit
operation or modification of the work as a means of enforcing, against
the work's users, your or third parties' legal rights to forbid
circumvention of technological measures.
### 4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
### 5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these
conditions:
- a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
- b) The work must carry prominent notices stating that it is
released under this License and any conditions added under
section 7. This requirement modifies the requirement in section 4
to "keep intact all notices".
- c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
- d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
### 6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms of
sections 4 and 5, provided that you also convey the machine-readable
Corresponding Source under the terms of this License, in one of these
ways:
- a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
- b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the Corresponding
Source from a network server at no charge.
- c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
- d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
- e) Convey the object code using peer-to-peer transmission,
provided you inform other peers where the object code and
Corresponding Source of the work are being offered to the general
public at no charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal,
family, or household purposes, or (2) anything designed or sold for
incorporation into a dwelling. In determining whether a product is a
consumer product, doubtful cases shall be resolved in favor of
coverage. For a particular product received by a particular user,
"normally used" refers to a typical or common use of that class of
product, regardless of the status of the particular user or of the way
in which the particular user actually uses, or expects or is expected
to use, the product. A product is a consumer product regardless of
whether the product has substantial commercial, industrial or
non-consumer uses, unless such uses represent the only significant
mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to
install and execute modified versions of a covered work in that User
Product from a modified version of its Corresponding Source. The
information must suffice to ensure that the continued functioning of
the modified object code is in no case prevented or interfered with
solely because modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or
updates for a work that has been modified or installed by the
recipient, or for the User Product in which it has been modified or
installed. Access to a network may be denied when the modification
itself materially and adversely affects the operation of the network
or violates the rules and protocols for communication across the
network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
### 7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders
of that material) supplement the terms of this License with terms:
- a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
- b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
- c) Prohibiting misrepresentation of the origin of that material,
or requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
- d) Limiting the use for publicity purposes of names of licensors
or authors of the material; or
- e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
- f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions
of it) with contractual assumptions of liability to the recipient,
for any liability that these contractual assumptions directly
impose on those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions; the
above requirements apply either way.
### 8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your license
from a particular copyright holder is reinstated (a) provisionally,
unless and until the copyright holder explicitly and finally
terminates your license, and (b) permanently, if the copyright holder
fails to notify you of the violation by some reasonable means prior to
60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
### 9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or run
a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
### 10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
### 11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims owned
or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within the
scope of its coverage, prohibits the exercise of, or is conditioned on
the non-exercise of one or more of the rights that are specifically
granted under this License. You may not convey a covered work if you
are a party to an arrangement with a third party that is in the
business of distributing software, under which you make payment to the
third party based on the extent of your activity of conveying the
work, and under which the third party grants, to any of the parties
who would receive the covered work from you, a discriminatory patent
license (a) in connection with copies of the covered work conveyed by
you (or copies made from those copies), or (b) primarily for and in
connection with specific products or compilations that contain the
covered work, unless you entered into that arrangement, or that patent
license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
### 12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under
this License and any other pertinent obligations, then as a
consequence you may not convey it at all. For example, if you agree to
terms that obligate you to collect a royalty for further conveying
from those to whom you convey the Program, the only way you could
satisfy both those terms and this License would be to refrain entirely
from conveying the Program.
### 13. Remote Network Interaction; Use with the GNU General Public License.
Notwithstanding any other provision of this License, if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your
version supports such interaction) an opportunity to receive the
Corresponding Source of your version by providing access to the
Corresponding Source from a network server at no charge, through some
standard or customary means of facilitating copying of software. This
Corresponding Source shall include the Corresponding Source for any
work covered by version 3 of the GNU General Public License that is
incorporated pursuant to the following paragraph.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the work with which it is combined will remain governed by version
3 of the GNU General Public License.
### 14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions
of the GNU Affero General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies that a certain numbered version of the GNU Affero General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU Affero General Public License, you may choose any version ever
published by the Free Software Foundation.
If the Program specifies that a proxy can decide which future versions
of the GNU Affero General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
### 15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT
WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND
PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE
DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR
CORRECTION.
### 16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR
CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT
NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR
LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM
TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER
PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
### 17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS

306
README.md
View File

@ -1,8 +1,8 @@
<p align="center"><img align="center" width="700" src="./icons/banner_dark.svg#gh-dark-mode-only"/></p>
<p align="center"><img align="center" width="700" src="./icons/banner_dark.svg#gh-light-mode-only"/></p>
<p align="center"><img align="center" width="700" src="./icons/banner_light.svg#gh-light-mode-only"/></p>
<hr>
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`, `GNOME` or `XFCE`, integrated seamlessly as if they were native to the OS.
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.
<p align="center"><img src="./demo/demo.png" width=1000 alt="WinApps Demonstration."></p>
@ -17,6 +17,7 @@ WinApps works by:
- The GNU/Linux `/home` directory is accessible within Windows via the `\\tsclient\home` mount.
- Integration with `Nautilus`, allowing you to right-click files to open them with specific Windows applications based on the file MIME type.
- The [official taskbar widget](https://github.com/winapps-org/WinApps-Launcher) enables seamless administration of the Windows subsystem and offers an easy way to launch Windows applications.
- Microsoft Office links (e.g. ms-word://) from the host system are automatically opened in the Windows subsystem. (Note: You may need to use an [User Agent switcher](https://github.com/ray-lothian/UserAgent-Switcher/) Browser Extension and set the User-Agent to Windows, as as the Office webapps typically hide the "Open in Desktop App" option for Linux users.)
## Supported Applications
**WinApps supports <u>*ALL*</u> Windows applications.**
@ -120,7 +121,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 +255,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 +271,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">
@ -282,35 +293,43 @@ The following guides are available:
- [Creating a Windows VM with `Docker` or `Podman`](docs/docker.md)
- [Creating a Windows VM with `libvirt`](docs/libvirt.md)
If you already have a Windows VM or server you wish to use with WinApps, you will need to merge `install/RDPApps.reg` into the Windows Registry manually.
If you already have a Windows VM or server you wish to use with WinApps, you will still have to follow the [final steps described in the `libvirt` documentation](docs/libvirt.md#final-configuration-steps).
### Step 2: Install Dependencies
Install the required dependencies.
- Debian/Ubuntu:
```bash
sudo apt install -y dialog freerdp3-x11 iproute2 libnotify-bin netcat
```
- Fedora/RHEL:
```bash
sudo dnf install -y dialog freerdp iproute libnotify nmap-ncat
```
- Arch Linux:
```bash
sudo pacman -Syu --needed -y dialog freerdp iproute2 libnotify
gnu-netcat
```
- Gentoo Linux:
```bash
sudo emerge --ask=n sys-libs/dialog net-misc/freerdp:3 net-misc/iproute2 x11-libs/libnotify net-analyzer/netcat
sudo apt install -y curl dialog freerdp3-x11 git iproute2 libnotify-bin netcat-openbsd
```
> [!NOTE]
> WinApps requires `FreeRDP` version 3 or later. If not available for your distribution through your package manager, you can install the [Flatpak](https://flathub.org/apps/com.freerdp.FreeRDP).
> On Debian you need to enable the `backports` repository for the `freerdp3-x11` package to become available.
> For instructions, see https://backports.debian.org/Instructions.
```bash
flatpak install flathub com.freerdp.FreeRDP
sudo flatpak override --filesystem=home com.freerdp.FreeRDP # To use `+home-drive`
```
- Fedora/RHEL:
```bash
sudo dnf install -y curl dialog freerdp git iproute libnotify nmap-ncat
```
- Arch Linux:
```bash
sudo pacman -Syu --needed -y curl dialog freerdp git iproute2 libnotify openbsd-netcat
```
- OpenSUSE:
```bash
sudo zypper install -y curl dialog freerdp git iproute2 libnotify-tools netcat-openbsd
```
- Gentoo Linux:
```bash
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]
> WinApps requires `FreeRDP` version 3 or later. If not available for your distribution through your package manager, you can install the [Flatpak](https://flathub.org/apps/com.freerdp.FreeRDP):
> ```bash
> flatpak install flathub com.freerdp.FreeRDP
> sudo flatpak override --filesystem=home com.freerdp.FreeRDP # To use `+home-drive`
> ```
> However, if you have weird issues like [#233](https://github.com/winapps-org/winapps/issues/233) when running Flatpak, please compile FreeRDP from source according to [this guide](https://github.com/FreeRDP/FreeRDP/wiki/Compilation).
### Step 3: Create a WinApps Configuration File
Create a configuration file at `~/.config/winapps/winapps.conf` containing the following:
@ -329,6 +348,8 @@ Create a configuration file at `~/.config/winapps/winapps.conf` containing the f
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]
@ -342,7 +363,14 @@ RDP_DOMAIN=""
# - 'docker': '127.0.0.1'
# - 'podman': '127.0.0.1'
# - 'libvirt': '' (BLANK)
RDP_IP=""
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'
@ -364,19 +392,21 @@ WAFLAVOR="docker"
# - '180'
RDP_SCALE="100"
# [ADDITIONAL FREERDP FLAGS & ARGUMENTS]
# DEFAULT VALUE: '' (BLANK)
# VALID VALUES: See https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
RDP_FLAGS=""
# [MULTIPLE MONITORS]
# [MOUNTING REMOVABLE PATHS FOR FILES]
# NOTES:
# - If enabled, a FreeRDP bug *might* produce a black screen.
# DEFAULT VALUE: 'false'
# VALID VALUES:
# - 'true'
# - 'false'
MULTIMON="false"
# - 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 +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:
@ -414,12 +444,37 @@ 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"
```
> [!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"`.
#### Configuration Options Explained
@ -428,17 +483,69 @@ 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`.
### 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 `<Windows-VM-IPv4-Address>_<RDP-Port>.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`.
<img src="./demo/installer.gif" width=1000 alt="WinApps Installer Animation.">
@ -463,6 +570,121 @@ The installer can be run multiple times. To update your installation of WinApps:
2. Pull the latest changes from the WinApps GitHub repository.
3. Re-install WinApps using the WinApps installer by running `winapps-setup`.
## Installation using Nix
First, follow Step 1 of the normal installation guide to create your VM.
Then, install WinApps according to the following instructions.
After installation, it will be available under `winapps`, with the installer being available under `winapps-setup`
and the optional launcher being available under `winapps-launcher.`
### Using standalone Nix
First, make sure Flakes and the `nix` command are enabled.
In your `~/.config/nix/nix.conf`:
```
experimental-features = nix-command flakes
# specify to use binary cache (optional)
extra-substituters = https://winapps.cachix.org/
extra-trusted-public-keys = winapps.cachix.org-1:HI82jWrXZsQRar/PChgIx1unmuEsiQMQq+zt05CD36g=
extra-trusted-users = <your-username> # replace with your username
```
```bash
nix profile install github:winapps-org/winapps#winapps
nix profile install github:winapps-org/winapps#winapps-launcher # optional
```
### On NixOS using Flakes
```nix
# flake.nix
{
description = "My configuration";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
winapps = {
url = "github:winapps-org/winapps";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
inputs@{
nixpkgs,
winapps,
...
}:
{
nixosConfigurations.hostname = nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
specialArgs = {
inherit inputs system;
};
modules = [
./configuration.nix
(
{
pkgs,
system ? pkgs.system,
...
}:
{
# set up binary cache (optional)
nix.settings = {
substituters = [ "https://winapps.cachix.org/" ];
trusted-public-keys = [ "winapps.cachix.org-1:HI82jWrXZsQRar/PChgIx1unmuEsiQMQq+zt05CD36g=" ];
};
environment.systemPackages = [
winapps.packages."${system}".winapps
winapps.packages."${system}".winapps-launcher # optional
];
}
)
];
};
};
}
```
### On NixOS without Flakes
[Flakes aren't real and they can't hurt you.](https://jade.fyi/blog/flakes-arent-real/).
However, if you still don't want to use flakes, you can use WinApps with flake-compat like:
```nix
# configuration.nix
{
pkgs,
system ? pkgs.system,
...
}:
{
# set up binary cache (optional)
nix.settings = {
substituters = [ "https://winapps.cachix.org/" ];
trusted-public-keys = [ "winapps.cachix.org-1:HI82jWrXZsQRar/PChgIx1unmuEsiQMQq+zt05CD36g=" ];
trusted-users = [ "<your username>" ]; # replace with your username
};
environment.systemPackages =
let
winapps =
(import (builtins.fetchTarball "https://github.com/winapps-org/winapps/archive/main.tar.gz"))
.packages."${system}";
in
[
winapps.winapps
winapps.winapps-launcher # optional
];
}
```
## Star History
<a href="https://star-history.com/#winapps-org/winapps&Date">
<picture>

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Jon Champagne
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Access"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Access"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Acrobat X Pro"

3
apps/acrobat9/icon.svg Normal file
View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14">
<path d="m 12.816862,8.6991205 c -0.355549,-0.380587 -1.083672,-0.599424 -2.115263,-0.599424 -0.550849,0 -1.1893342,0.05508 -1.882904,0.185286 C 8.4270909,7.8993875 8.0364884,7.4486925 7.6634129,6.9228805 7.3980035,6.5523095 7.1661459,6.1617065 6.952316,5.7761125 c 0.407128,-1.271962 0.6039316,-2.308561 0.6039316,-3.054712 0,-0.837292 -0.3019658,-1.710639 -1.1718075,-1.710639 -0.2669118,0 -0.5338235,0.162751 -0.6760429,0.400618 -0.3921048,0.705087 -0.2153321,2.24997 0.4592084,3.775824 -0.2518886,0.761174 -0.5182995,1.488797 -0.8513132,2.306057 -0.2894465,0.689063 -0.6229609,1.399159 -0.9629854,2.051164 -1.9550157,0.7932245 -3.2199669,1.7196525 -3.33865,2.4457735 -0.0520803,0.273922 0.037057,0.525811 0.2288531,0.72612 0.066603,0.05509 0.3184912,0.272921 0.7411432,0.272921 1.2970006,0 2.6641094,-2.143306 3.3586808,-3.4352995 0.5333227,-0.180278 1.0666454,-0.344031 1.5989665,-0.508284 0.5849022,-0.16175 1.1718075,-0.29195 1.7051302,-0.383091 1.3696122,1.253934 2.5769742,1.4522405 3.1839112,1.4522405 0.747152,0 1.013563,-0.3089765 1.103201,-0.5618675 0.140217,-0.325502 0.03505,-0.686058 -0.126194,-0.871344 l 0.01001,0.02003 z m -0.69357,0.527815 c -0.05208,0.27242 -0.319493,0.453699 -0.694071,0.453699 -0.105162,0 -0.195301,-0.01853 -0.301965,-0.03606 -0.681051,-0.162751 -1.3185339,-0.508785 -1.9545149,-1.054627 0.6259656,-0.107165 1.1567849,-0.125193 1.4923019,-0.125193 0.370571,0 0.691066,0.01602 0.906398,0.07211 0.245378,0.05308 0.635981,0.217836 0.548346,0.691066 l 0.01002,0 z M 8.3559812,8.3721165 c -0.4607106,0.09515 -0.9584785,0.20732 -1.4742741,0.347035 -0.4086303,0.111673 -0.8342869,0.237366 -1.2619466,0.385595 0.2318577,-0.451697 0.4276597,-0.88837 0.6049331,-1.303511 0.2143307,-0.510788 0.3906026,-1.036599 0.5683768,-1.525353 0.1752703,0.305472 0.3705716,0.615951 0.5658729,0.891375 0.3204943,0.435672 0.6560119,0.851314 0.9915294,1.21187 l 0,-0.01002 z M 6.0273893,1.6191995 c 0.072612,-0.145224 0.2153322,-0.218336 0.3395237,-0.218336 0.3730755,0 0.4441852,0.43467 0.4441852,0.781205 0,0.584902 -0.1772735,1.473272 -0.4807416,2.487336 C 5.7985363,3.2572265 5.7619799,2.0754035 6.0283908,1.6197005 Z M 4.0733752,10.080753 c -0.9063982,1.52385 -1.7767407,2.47031 -2.3100633,2.47031 -0.1051623,0 -0.193799,-0.03756 -0.2654094,-0.09164 C 1.3907372,12.351255 1.3376553,12.223057 1.3737109,12.078835 1.4803754,11.532993 2.4934381,10.770316 4.073876,10.080753 Z" fill="#EF4642"/>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

14
apps/acrobat9/info Normal file
View File

@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="Acrobat 9"
# Used for descriptions and window class
FULL_NAME="Acrobat 9"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files (x86)\Adobe\Acrobat 9.0\Acrobat\Acrobat.exe"
# GNOME categories
CATEGORIES="WinApps;Documents"
# GNOME mimetypes
MIME_TYPES="application/pdf;"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Creative Cloud"

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="ai_x5F_cc_x5F_app_x5F_RGB.svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 240 234" width="320" height="312" enable-background="new 0 0 240 234" xml:space="preserve">
<path fill="#260C00" d="M41.9,7.5C13.8,7.5,7.3,24.2,7.3,52.4L7.4,189c0,28.2,8.8,37.6,36.9,37.6H195c28.1,0,37.6-9.4,37.6-37.5
V47.2c0-28.2-10.5-39.7-38.6-39.7C194,7.5,41.9,7.5,41.9,7.5z"/>
<g>
<g>
<path fill="#FF6000" d="M0,43.1v148.2C0,214.9,18.2,234,41.9,234h155.3c23.7,0,42.9-19.1,42.9-42.8V42.8C240,19.2,220.8,0,197.1,0
H41.9C18.2,0,0,19.2,0,42.8V43.1z M194,10.1c19.1,0,35.9,15.7,35.9,34.8v142.3c0,19.1-15.5,36.7-34.6,36.7H44.7
c-19.1,0-34.6-16.2-34.6-35.3l0-141.7c0-19,15.5-36.8,34.5-36.8L194,10.1L194,10.1z"/>
</g>
</g>
<g>
<g>
<path fill="#FEDCCA" d="M182.3,171.3H57.7c-7.4,0-9.7-2.4-9.7-9.8V71.1c0-7.4,2.4-9.8,9.7-9.8h124.5c7.4,0,9.7,2.4,9.7,9.8v90.5
C192,168.9,189.6,171.3,182.3,171.3z M57.7,65.3c-5.1,0-5.7,0.6-5.7,5.8v90.5c0,5.2,0.6,5.8,5.7,5.8h124.5c5.1,0,5.7-0.6,5.7-5.8
V71.1c0-5.2-0.6-5.8-5.7-5.8H57.7z"/>
</g>
<g>
<path fill="#FF6000" d="M57,162.3h61v-92H57V162.3z M67,93h44v2H67V93z M67,102.1h44v2H67V102.1z M67,111h44v2H67V111z M67,120h44
v2H67V120z M67,129.1h44v2H67V129.1z M67,138h44v2H67V138z"/>
<path fill="#FF6000" d="M158.7,70.3H122v92h61V94.2L158.7,70.3z M129.3,92.5h24.5v2h-24.5V92.5z M129.3,101.6l43.6,0.2l0,2
l-43.6-0.2L129.3,101.6z M173.3,139.5h-44.1v-2h44.1V139.5z M173.3,130.6h-44.1v-2h44.1V130.6z M173.3,121.5h-44.1v-2h44.1V121.5z
M173.3,112.5h-44.1v-2h44.1V112.5z M158.3,94.6V72.4L181,94.6H158.3z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="Adobe Digital Editions"
# Used for descriptions and window class
FULL_NAME="Adobe Digital Editions"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files (x86)\Adobe\Adobe Digital Editions 4.5\DigitalEditions.exe"
# GNOME categories
CATEGORIES="WinApps;Adobe"
# GNOME mimetypes
MIME_TYPES="application/epub+zip;application/vnd.adobe.adept+xml;"
# System Icon
ICON="AdobeDigitalEditions"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="After Effects CC"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Audition CC"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Bridge CS6"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Bridge CS6"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Bridge CS6"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Cmd"

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"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Excel"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Jon Champagne
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Excel"

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Livello_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 2289.75 2130"
enable-background="new 0 0 2289.75 2130" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds bottomLeftOrigin="true" height="2130" width="2289.75" x="-1147.5" y="-1041"></sliceSourceBounds>
</sfw>
</metadata>
<path fill="#185C37" d="M1437.75,1011.75L532.5,852v1180.393c0,53.907,43.7,97.607,97.607,97.607l0,0h1562.036
c53.907,0,97.607-43.7,97.607-97.607l0,0V1597.5L1437.75,1011.75z"/>
<path fill="#21A366" d="M1437.75,0H630.107C576.2,0,532.5,43.7,532.5,97.607c0,0,0,0,0,0V532.5l905.25,532.5L1917,1224.75
L2289.75,1065V532.5L1437.75,0z"/>
<path fill="#107C41" d="M532.5,532.5h905.25V1065H532.5V532.5z"/>
<path opacity="0.1" enable-background="new " d="M1180.393,426H532.5v1331.25h647.893c53.834-0.175,97.432-43.773,97.607-97.607
V523.607C1277.825,469.773,1234.227,426.175,1180.393,426z"/>
<path opacity="0.2" enable-background="new " d="M1127.143,479.25H532.5V1810.5h594.643
c53.834-0.175,97.432-43.773,97.607-97.607V576.857C1224.575,523.023,1180.977,479.425,1127.143,479.25z"/>
<path opacity="0.2" enable-background="new " d="M1127.143,479.25H532.5V1704h594.643c53.834-0.175,97.432-43.773,97.607-97.607
V576.857C1224.575,523.023,1180.977,479.425,1127.143,479.25z"/>
<path opacity="0.2" enable-background="new " d="M1073.893,479.25H532.5V1704h541.393c53.834-0.175,97.432-43.773,97.607-97.607
V576.857C1171.325,523.023,1127.727,479.425,1073.893,479.25z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="203.5132" y1="1729.0183" x2="967.9868" y2="404.9817" gradientTransform="matrix(1 0 0 -1 0 2132)">
<stop offset="0" style="stop-color:#18884F"/>
<stop offset="0.5" style="stop-color:#117E43"/>
<stop offset="1" style="stop-color:#0B6631"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M97.607,479.25h976.285c53.907,0,97.607,43.7,97.607,97.607v976.285
c0,53.907-43.7,97.607-97.607,97.607H97.607C43.7,1650.75,0,1607.05,0,1553.143V576.857C0,522.95,43.7,479.25,97.607,479.25z"/>
<path fill="#FFFFFF" d="M302.3,1382.264l205.332-318.169L319.5,747.683h151.336l102.666,202.35
c9.479,19.223,15.975,33.494,19.49,42.919h1.331c6.745-15.336,13.845-30.228,21.3-44.677L725.371,747.79h138.929l-192.925,314.548
L869.2,1382.263H721.378L602.79,1160.158c-5.586-9.45-10.326-19.376-14.164-29.66h-1.757c-3.474,10.075-8.083,19.722-13.739,28.755
l-122.102,223.011H302.3z"/>
<path fill="#33C481" d="M2192.143,0H1437.75v532.5h852V97.607C2289.75,43.7,2246.05,0,2192.143,0L2192.143,0z"/>
<path fill="#107C41" d="M1437.75,1065h852v532.5h-852V1065z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

14
apps/excel-x86-2010/info Normal file
View File

@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="Excel"
# Used for descriptions and window class
FULL_NAME="Microsoft Excel"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE"
# GNOME categories
CATEGORIES="WinApps;Office"
# GNOME mimetypes
MIME_TYPES="application/vnd.ms-excel;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;application/vnd.openxmlformats-officedocument.spreadsheetml.template;application/vnd.ms-excel.sheet.macroEnabled.12;application/vnd.ms-excel.template.macroEnabled.12;application/vnd.ms-excel.addin.macroEnabled.12;application/vnd.ms-excel.sheet.binary.macroEnabled.12;"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Excel"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Excel"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Explorer"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Internet Explorer"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Illustrator CC"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="InDesign CC"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Lightroom CC"

1
apps/linqpad8/icon.svg Normal file
View File

@ -0,0 +1 @@
<svg height="512" width="485" xmlns="http://www.w3.org/2000/svg"><path d="m70.9856796.099867 147.1711121 21.1684494c4.9958038.7186089 9.4206696 3.6028881 12.0942841 7.8835335l186.6232452 298.7956543 57.4749451 24.1019287c7.645813 3.2071838 11.9003601 11.4268799 10.1008911 19.5205688l-28.2246018 127.0107173c-1.741394 7.8406982-8.6961365 13.419281-16.7278442 13.419281h-99.7940979c-7.125061 0-13.5059204-4.4081116-16.026947-11.0715027l-64.8904114-171.496521-33.5339355 10.1796265-70.4281006 162.0817871c-2.7193909 6.257782-8.8930359 10.3066101-15.7168732 10.3066101h-96.77005c-7.6413727 0-14.3593845-5.0597839-16.4699287-12.4033813l-25.2005348-87.697876c-1.6572304-5.7675781-.1771913-11.9810791 3.9016533-16.3813171l182.9347229-197.3772888-20.0501709-34.7536011-57.9149628-11.582901c-5.8025284-1.1605988-10.5960388-5.2325439-12.6790237-10.7717438l-44.3529436-117.9385052c-3.7618599-11.4255447 3.7893296-24.361076 18.4795723-22.9935187zm280.5562821 477.6273974h74.2096558l22.1351318-99.6100159-49.2886963-20.6693725c-3.268219-1.3702698-6.030426-3.7200317-7.9076538-6.7254028l-185.2913666-296.663929-110.6150894-15.9103012 30.805191 81.9140472 56.1917801 11.2383575c4.8348541.9671631 9.0185394 3.969574 11.4824829 8.2403717l30.2406464 52.4171143c3.7544861 6.5073547 2.8321075 14.7019501-2.2749481 20.2121124l-184.9527245 199.5542717 18.9663582 66.0027466h72.6262665l69.107048-159.0409546c2.0032501-4.6099243 5.9295197-8.1074829 10.7392731-9.5673523l56.4487152-17.1363525c8.6380615-2.6244202 17.8136292 1.8988953 21.0050354 10.3322144z"/></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

14
apps/linqpad8/info Normal file
View File

@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="LINQPad8"
# Used for descriptions and window class
FULL_NAME="LINQPad 8"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\LINQPad8\LINQPad8.exe"
# GNOME categories
CATEGORIES="WinApps;Development"
# GNOME mimetypes
MIME_TYPES="text/cs"

24
apps/mirc/icon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 54 KiB

17
apps/mirc/info Normal file
View File

@ -0,0 +1,17 @@
# 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,9 @@
[Desktop Entry]
Name=Microsoft Office Protocol Handler
Comment=Handle Microsoft Office URI schemes via WinApps
Exec=winapps manual %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/ms-word;x-scheme-handler/ms-excel;x-scheme-handler/ms-powerpoint;x-scheme-handler/ms-outlook;x-scheme-handler/ms-access;x-scheme-handler/ms-visio;x-scheme-handler/ms-project;x-scheme-handler/ms-teams;x-scheme-handler/ms-whiteboard;x-scheme-handler/ms-officeapp;
NoDisplay=true
Categories=Office;Utility;

56
apps/mspaint/icon.svg Normal file
View File

@ -0,0 +1,56 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="4096" height="4096">
<rect width="100%" height="100%" fill="rgba(255,255,255,0)"/>
<g transform="translate(2048.00693508 1958.53022285) scale(6.1623)">
<linearGradient id="a" x1="198.04672" x2="309.49811" y1="93.277061" y2="236.8008" gradientTransform="translate(-601.2903 -296.4701) scale(3.7795)" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#3ac8f3"/>
<stop offset="100%" stop-color="#1b9de3"/>
</linearGradient>
<path fill="url(#a)" d="M371.125.00976563C310.53187.45132284 241.55744 15.667119 183.09375 53.042969 105.14216 102.87744 45.882386 192.10557 19.28125 263.99609-7.3198864 335.88661-1.2601241 390.43565 7.2421875 430.8418 15.744499 471.24795 26.687683 497.51113 39.0625 513c12.374817 15.48887 26.180879 20.20163 40.070312 20.11719 13.889434-.08444 27.862138-4.96691 44.445308-17.59375 16.58318-12.62685 35.77543-32.99709 51.68555-49.32813 15.91012-16.33103 28.53751-28.62041 39.06055-34.76562 10.52304-6.14521 18.94029-6.14546 27.7793-3.36719 8.839 2.77827 18.09827 8.3337 24.66406 15.06836 6.56578 6.73466 10.43899 14.64741 11.61719 23.57031 1.17819 8.9229-.33728 18.85491-6.56641 27.69336-6.22914 8.83845-17.1716 16.58361-26.43164 30.89453-9.26004 14.31093-16.83777 35.18672-12.88086 54.7168 3.95691 19.53008 19.44668 37.71282 36.45117 47.98242 17.00449 10.2696 35.52263 12.62664 87.37695-8.25 51.85433-20.87663 137.04336-64.98615 191.42383-129.13086 54.38048-64.14471 77.94909-148.32234 79.46485-219.70703 1.51575-71.38469-19.02253-129.97284-51.51563-175.935546-32.4931-45.96271-76.93954-79.296896-147.48242-90.746094C410.58889 1.3564504 391.32271-.13742012 371.125.00976562zM342.90625 315.36914A42.594088 42.594088 0 0 1 385.5 357.96289a42.594088 42.594088 0 0 1-42.59375 42.5957 42.594088 42.594088 0 0 1-42.59375-42.5957 42.594088 42.594088 0 0 1 42.59375-42.59375z" style="is-custom-font:none;font-file-url:none" transform="translate(-313.6506 -317.8246)"/>
</g>
<path fill="gray" d="M273.18694 128.03818c-2.37244 0-4.28191 1.91001-4.28191 4.28242 0 .34907.0454.68635.12351 1.01079 3.39492 7.50647 7.92401 14.92375 11.42824 21.25659h18.34978l10.31927-19.27583c.56129-.97587 1.06508-2.05893 1.08056-2.99155 0-2.37241-1.90999-4.28242-4.28243-4.28242zm7.26984 26.55032v9.06094c-.003.0713-.004.14269-.001.21446l.001.0269v2.41484h.0925l2.38642 62.37862c4.69604-3.01908 9.38317-6.41238 13.77642-10.16785l1.99057-52.21077h.10387v-11.71711z" style="is-custom-font:none;font-file-url:none" transform="translate(-3540.28818071 -1826.91493161) scale(23.2904)"/>
<g transform="translate(3205.26777195 2956.45801469) scale(6.1623)">
<linearGradient id="b" x1="1179.8582" x2="1089.9546" y1="633.36566" y2="935.40125" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#78400a"/>
<stop offset="100%" stop-color="#9a5605"/>
</linearGradient>
<path fill="url(#b)" d="M1106.7937 591.31055c-12.4969 0-47.3957 12.50642-46.8022 28.01757l12.1218 316.84296c.5934 15.51116 10.0617 24.98908 22.5586 24.98908 12.4968 0 21.9653-9.47784 22.5566-24.98908l12.0772-316.79832c.5913-15.51123-10.0152-28.06221-22.512-28.06221z" style="is-custom-font:none;font-file-url:none" transform="translate(-1094.6567 -776.2354)"/>
</g>
<g transform="translate(3205.3571253 1909.95959048) scale(23.2904)">
<linearGradient id="c" x1="279.83121" x2="303.61819" y1="168.91434" y2="154.48178" gradientTransform="translate(-289.6318 -160.4467)" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#ececec"/>
<stop offset="100%" stop-color="#9396a0"/>
</linearGradient>
<rect width="18.3497" height="11.7173" x="-9.17485" y="-5.85865" fill="url(#c)" rx="0" ry="0" style="is-custom-font:none;font-file-url:none"/>
</g>
<g transform="translate(3203.58669651 1464.32670368) scale(6.1623)">
<linearGradient id="d" x1="1053.5891" x2="1154.6044" y1="481.84277" y2="582.85803" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#f0d69f"/>
<stop offset="100%" stop-color="#c39360"/>
</linearGradient>
<path fill="url(#d)" d="M1032.5176 483.92383c-8.9667 0-16.1836 7.2189-16.1836 16.18555 0 1.31932.1717 2.5941.4668 3.82031 12.8312 28.37087 29.949 56.40471 43.1933 80.33984h69.3536l39.0036-72.8548c2.1214-3.68834 4.0238-7.78051 4.0823-11.30535 0-8.96665-7.2189-16.18555-16.1856-16.18555z" style="is-custom-font:none;font-file-url:none" transform="translate(-1094.3838 -534.0967)"/>
</g>
<circle r="15.096695" fill="gray" style="is-custom-font:none;font-file-url:none" transform="translate(698.38004403 2055.30852812) scale(23.2904)"/>
<g transform="translate(696.98120193 2030.80845578) scale(23.2904)">
<linearGradient id="e" x1="172.12158" x2="200.18488" y1="151.27455" y2="179.33784" gradientTransform="translate(-185.2428 -165.6356)" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#db5317"/>
<stop offset="100%" stop-color="#c23807"/>
</linearGradient>
<circle r="15.096695" fill="url(#e)" style="is-custom-font:none;font-file-url:none"/>
</g>
<circle r="15.096695" fill="gray" style="is-custom-font:none;font-file-url:none" transform="translate(1147.34735136 1168.37793257) scale(23.2904)"/>
<g transform="translate(1145.94850926 1143.877244) scale(23.2904)">
<linearGradient id="f" x1="193.7704" x2="216.75558" y1="110.11504" y2="138.17834" gradientTransform="translate(-204.5196 -127.5545)" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#4fb412"/>
<stop offset="100%" stop-color="#188313"/>
</linearGradient>
<circle r="15.096695" fill="url(#f)" style="is-custom-font:none;font-file-url:none"/>
</g>
<circle r="15.096695" fill="#666" style="is-custom-font:none;font-file-url:none" transform="translate(2115.70904403 803.04104723) scale(23.2904)"/>
<g transform="translate(2114.31020193 778.54097489) scale(23.2904)">
<linearGradient id="g" x1="235.19719" x2="260.5878" y1="102.89877" y2="125.61668" gradientTransform="translate(-246.0969 -111.8684)" gradientUnits="userSpaceOnUse">
<stop offset="0%" stop-color="#fddd01"/>
<stop offset="100%" stop-color="#f7a810"/>
</linearGradient>
<circle r="15.096695" fill="url(#g)" style="is-custom-font:none;font-file-url:none"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

14
apps/mspaint/info Normal file
View File

@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="Paint"
# Used for descriptions and window class
FULL_NAME="Microsoft Paint"
# The executable inside windows
WIN_EXECUTABLE="C:\windows\system32\mspaint.exe"
# GNOME categories
CATEGORIES="WinApps;Graphics"
# GNOME mimetypes
MIME_TYPES="image/png;image/bmp;image/jpeg;image/jpe;image/jpeg;image/tiff;image/tif;image/x-ms-bmp;image/dib;image/vnd.microsoft.icon;image/x-icon;image/ico;image/icon;text/ico;application/ico"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="OneNote"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Jon Champagne
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="OneNote"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="OneNote"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="OneNote"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Outlook"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Jon Champagne
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Outlook"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Outlook"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Outlook"

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

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Photoshop CC"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Photoshop CS6"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Photoshop CS6"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="PowerPoint"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Jon Champagne
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="PowerPoint"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="PowerPoint"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="PowerPoint"

View File

@ -0,0 +1 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientTransform="matrix(1 0 0 -1 0 -96)" gradientUnits="userSpaceOnUse" x1="23.325" x2="7.26" y1="-118.543" y2="-104.193"><stop offset="0" stop-color="#5391fe"/><stop offset="1" stop-color="#3e6dbf"/></linearGradient><linearGradient id="b" x1="7.1" x2="23.001" xlink:href="#a" y1="-104.002" y2="-118.292"/><g fill-rule="evenodd"><path d="m3.174 26.589a1.154 1.154 0 0 1 -.928-.423 1.234 1.234 0 0 1 -.21-1.052l4.197-18.334a1.8 1.8 0 0 1 1.681-1.37h20.912a1.157 1.157 0 0 1 .928.423 1.235 1.235 0 0 1 .21 1.052l-4.2 18.335a1.8 1.8 0 0 1 -1.681 1.37h-20.909z" fill="url(#a)"/><path d="m7.914 5.646h20.912a.913.913 0 0 1 .908 1.187l-4.2 18.334a1.575 1.575 0 0 1 -1.451 1.187h-20.909a.913.913 0 0 1 -.908-1.187l4.2-18.334a1.574 1.574 0 0 1 1.448-1.187z" fill="url(#b)"/><path d="m16.04 21.544h5.086a1.118 1.118 0 0 1 0 2.234h-5.086a1.118 1.118 0 0 1 0-2.234z" fill="#2c5591"/><path d="m19.339 16.578a1.762 1.762 0 0 1 -.591.6l-9.439 6.775a1.224 1.224 0 0 1 -1.438-1.977l8.512-6.164v-.126l-5.348-5.686a1.224 1.224 0 0 1 1.782-1.672l6.418 6.827a1.166 1.166 0 0 1 .104 1.423z" fill="#2c5591"/><g fill="#fff"><path d="m19.1 16.342a1.749 1.749 0 0 1 -.59.6l-9.436 6.776a1.225 1.225 0 0 1 -1.439-1.977l8.513-6.164v-.127l-5.348-5.689a1.224 1.224 0 0 1 1.783-1.672l6.417 6.827a1.162 1.162 0 0 1 .1 1.426z"/><path d="m15.9 21.412h5.086a1.059 1.059 0 1 1 0 2.118h-5.086a1.059 1.059 0 1 1 0-2.118z"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

14
apps/powershell-ide/info Normal file
View File

@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="Powershell"
# Used for descriptions and window class
FULL_NAME="Microsoft Powershell"
# The executable inside windows
WIN_EXECUTABLE="C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"
# GNOME categories
CATEGORIES="WinApps;Windows"
# GNOME mimetypes
MIME_TYPES=""

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Powershell"

View File

@ -1,4 +1,3 @@
# GNOME shortcut name
NAME="Project"
# Used for descriptions and window class

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Publisher"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Jon Champagne
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Publisher"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Publisher"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Publisher"

View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Livello_1"
x="0px"
y="0px"
viewBox="0 0 1881.25 1750"
enable-background="new 0 0 1881.25 1750"
xml:space="preserve"
sodipodi:docname="icon.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
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"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:ns="&amp;ns_sfw;"><defs
id="defs34" /><sodipodi:namedview
id="namedview32"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showgrid="false"
inkscape:zoom="0.58685714"
inkscape:cx="940.6037"
inkscape:cy="800.02434"
inkscape:window-width="2494"
inkscape:window-height="1371"
inkscape:window-x="66"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="Livello_1" />
<metadata
id="metadata2">
<ns:sfw>
<ns:slices />
<ns:sliceSourceBounds
bottomLeftOrigin="true"
height="1750"
width="1881.25"
x="-938.5"
y="-851" />
</ns:sfw>
</metadata>
<linearGradient
id="SVGID_1_"
gradientUnits="userSpaceOnUse"
x1="167.2057"
y1="1420.9117"
x2="795.2943"
y2="333.0883"
gradientTransform="matrix(1 0 0 -1 0 1752)">
<stop
offset="0"
style="stop-color:#2368C4"
id="stop20" />
<stop
offset="0.5"
style="stop-color:#1A5DBE"
id="stop22" />
<stop
offset="1"
style="stop-color:#1146AC"
id="stop24" />
</linearGradient>
<rect
style="fill:#fff6d5"
id="rect399"
width="1881.25"
height="1750"
x="0"
y="0"
ry="134.62839" /><text
xml:space="preserve"
style="font-size:1066.67px;fill:#000000;-inkscape-font-specification:serif;font-family:serif;font-weight:normal;font-style:normal;font-stretch:normal;font-variant:normal"
x="204.01395"
y="1266.3248"
id="text295"><tspan
sodipodi:role="line"
id="tspan293"
x="204.01395"
y="1266.3248">rM</tspan></text></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="reMarkable"
# Used for descriptions and window class
FULL_NAME="reMarkable Desktop App"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\reMarkable\reMarkable.exe"
# GNOME categories
CATEGORIES="WinApps;Office"
# GNOME mimetypes
MIME_TYPES=""
# System Icon
ICON="reMarkable"

61
apps/ssms20/icon.svg Normal file
View File

@ -0,0 +1,61 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="200px" height="200px" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 8.53 8.53" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<style type="text/css">
<![CDATA[
.fil0 {fill:none}
.fil7 {fill:#007400}
.fil6 {fill:#017901}
.fil5 {fill:#107B10}
.fil3 {fill:#3C3C41}
.fil12 {fill:#439043}
.fil10 {fill:#5EA05E}
.fil8 {fill:#6EA76E}
.fil9 {fill:#78AC78}
.fil11 {fill:#94BC94}
.fil13 {fill:#B9B9BB}
.fil2 {fill:#D2D2D2}
.fil1 {fill:#FEB900}
.fil4 {fill:#FFDC80}
]]>
</style>
</defs>
<g id="Layer_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<g id="_2075241592848">
<rect class="fil0" width="8.53" height="8.53"/>
<g>
<path class="fil1" d="M1.74 1.57c0.26,-0.2 0.37,-0.27 0.77,-0.35 1.81,-0.4 3.75,0.46 1.87,0.85 -0.64,0.13 -1.36,0.13 -1.99,-0.03 -0.24,-0.07 -0.65,-0.17 -0.65,-0.47zm1.92 2.92l0.13 0.11c0.07,-0.07 0.03,0.02 0.05,-0.12 0,-0.01 0,-0.11 0,-0.12l0 -1.95c0.18,-0.04 0.39,-0.04 0.58,-0.08 0.16,-0.04 0.38,-0.13 0.51,-0.14l-0.01 1.9c0.32,0.1 0.4,0.44 0.49,0.55 0.03,-0.74 0.01,-2.1 0,-2.94 0,-0.32 -0.18,-0.45 -0.42,-0.57 -0.81,-0.38 -2.52,-0.39 -3.24,0.09 -0.24,0.17 -0.28,0.3 -0.28,0.67l0 2.96c0,0.38 0.08,0.5 0.32,0.65 0.19,0.11 0.48,0.2 0.74,0.26 0.59,0.12 1.2,0.11 1.82,0 -0.58,-0.26 -0.85,-0.46 -0.69,-1.27z"/>
<path class="fil2" d="M1.74 1.57c0,0.3 0.41,0.4 0.65,0.47 0.63,0.16 1.35,0.16 1.99,0.03 1.88,-0.39 -0.06,-1.25 -1.87,-0.85 -0.4,0.08 -0.51,0.15 -0.77,0.35z"/>
<path class="fil3" d="M5.81 6.23c0.25,-0.15 0.23,-0.41 0.33,-0.52 0.08,-0.1 0.14,-0.09 0.3,-0.14 0.15,-0.05 1.03,-0.96 1.06,-1.04l-0.61 -0.53c-0.19,0.29 -0.58,0.59 -0.83,0.83 -0.2,0.18 -0.15,0.11 -0.18,0.26 -0.08,0.39 -0.3,0.29 -0.45,0.37 -0.08,0.05 -0.13,0.14 -0.21,0.19 0.07,0.09 0.12,0.11 0.2,0.21 -0.07,0.07 -0.12,0.15 -0.2,0.22 -0.2,0.19 -0.48,0.41 -0.63,0.6 -0.3,0.38 -0.15,-0.12 -0.63,0.6 -0.13,0.2 -0.13,0.19 -0.09,0.24 0.09,0.09 0.16,0 0.28,-0.08 0.27,-0.18 0.3,-0.12 0.43,-0.38 0.04,-0.08 0.09,-0.12 0.17,-0.19l0.4 -0.43c0.13,-0.13 0.28,-0.32 0.44,-0.41l0.22 0.2z"/>
<path class="fil4" d="M3.79 4.6c0.37,0.3 0.25,0.5 0.75,0.31l0.1 -0.31c-0.15,-0.25 -0.39,-0.36 -0.53,-0.56 0.24,-0.04 0.6,-0.13 0.81,0.05l0.01 -1.9c-0.13,0.01 -0.35,0.1 -0.51,0.14 -0.19,0.04 -0.4,0.04 -0.58,0.08l0 1.95c0,0.01 0,0.11 0,0.12 -0.02,0.14 0.02,0.05 -0.05,0.12z"/>
<path class="fil3" d="M4.31 4.15l0.44 0.39 -0.13 0.45 -0.45 0.1 -0.46 -0.42c-0.08,0.47 0.15,0.78 0.46,0.92 0.27,0.11 0.52,0.02 0.6,0.05 0.11,0.05 0.23,0.25 0.36,0.31l0.09 -0.07c-0.05,-0.12 -0.11,-0.14 -0.19,-0.23 0.04,-0.07 0.03,-0.06 0.09,-0.13l0.24 -0.2c0.14,-0.07 0.08,0.03 0.11,-0.04 0,0 0.01,0 0.02,0 -0.16,-0.23 -0.2,-0.09 -0.18,-0.37 0.04,-0.57 -0.39,-0.83 -0.95,-0.84 -0.06,0.03 -0.01,0 -0.05,0.08z"/>
<path class="fil3" d="M5.84 6.42c-0.17,-0.08 -0.23,-0.27 -0.3,-0.14 -0.03,0.04 -0.02,0 -0.01,0.07 0,0.04 0.05,0.08 0.08,0.11 0.3,0.27 0.76,0.69 1.02,0.98 0.22,0.25 0.7,0.13 0.69,-0.25 -0.01,-0.31 -0.67,-0.73 -1.1,-1.24 -0.01,0.01 -0.01,0.02 -0.02,0.02 -0.11,0.23 -0.1,0.17 -0.36,0.45z"/>
<polygon class="fil5" points="0.85,7.67 1.09,7.67 1.1,7.42 0.84,7.42 "/>
<polygon class="fil5" points="7.43,1.1 7.68,1.1 7.68,0.85 7.44,0.85 "/>
<polygon class="fil5" points="0.84,6.82 1.07,6.83 1.07,6.57 0.84,6.57 "/>
<polygon class="fil5" points="7.45,2.39 7.59,2.38 7.68,2.38 7.68,2.26 7.68,2.13 7.45,2.13 "/>
<polygon class="fil5" points="0.84,7.25 1.07,7.25 1.07,7 0.84,7 "/>
<polygon class="fil5" points="7.45,1.53 7.5,1.53 7.68,1.53 7.68,1.4 7.68,1.27 7.45,1.27 "/>
<polygon class="fil5" points="0.84,6.4 1.07,6.4 1.07,6.14 0.85,6.14 "/>
<polygon class="fil5" points="7.45,1.96 7.68,1.96 7.68,1.83 7.68,1.7 7.45,1.7 "/>
<polygon class="fil5" points="1.28,7.67 1.52,7.67 1.51,7.45 1.27,7.45 "/>
<path class="fil6" d="M7.22 0.91l0 0.12 -0.19 0 0 -0.12 0.19 0zm-0.22 0.17l0.26 0 -0.01 -0.23 -0.24 0 -0.01 0.23z"/>
<path class="fil6" d="M1.89 7.49l0 0.13 -0.15 0 0 -0.13 0.15 0zm-0.2 0.17l0.24 0 0.01 -0.19 -0.24 0 -0.01 0.19z"/>
<path class="fil6" d="M2.17 7.49l0.15 0 0 0.13 -0.15 0 0 -0.13zm-0.03 0.17l0.21 0 0 -0.2 -0.21 0.01 0 0.19z"/>
<path class="fil6" d="M6.79 0.91l0 0.12 -0.16 0 0 -0.12 0.16 0zm-0.19 0.15l0.22 0 -0.01 -0.19 -0.21 0.01 0 0.18z"/>
<polygon class="fil5" points="7.03,1.03 7.22,1.03 7.22,0.91 7.03,0.91 "/>
<path class="fil7" d="M6.36 0.9l0 0.13 -0.16 0 0 -0.13 0.16 0zm-0.19 0.16l0.22 0 -0.01 -0.2 -0.21 0 0 0.2z"/>
<path class="fil8" d="M2.14 7.47l0.21 -0.01 0 0.2 -0.21 0 0 -0.19zm-0.03 0.22l0.27 -0.02 -0.01 -0.23 -0.26 0 0 0.25z"/>
<path class="fil9" d="M6.17 0.86l0.21 0 0.01 0.2 -0.22 0 0 -0.2zm-0.02 0.22l0.26 0.01 0.01 -0.24 -0.27 -0.01 0 0.24z"/>
<polygon class="fil5" points="6.2,1.03 6.36,1.03 6.36,0.9 6.2,0.9 "/>
<polygon class="fil5" points="2.32,7.62 2.32,7.49 2.17,7.49 2.17,7.62 "/>
<polygon class="fil5" points="1.74,7.62 1.89,7.62 1.89,7.49 1.74,7.49 "/>
<polygon class="fil5" points="6.63,1.03 6.79,1.03 6.79,0.91 6.63,0.91 "/>
<path class="fil10" d="M1.69 7.66c0.1,0.04 0.16,0.03 0.27,0.02l-0.01 -0.24c-0.16,0 -0.16,-0.02 -0.25,0.03l0.24 0 -0.01 0.19 -0.24 0z"/>
<path class="fil11" d="M6.6 1.06l-0.03 0c0.05,0.06 0.18,0.04 0.26,0.01 0.01,-0.04 0.02,-0.06 0.02,-0.1 -0.01,-0.14 0,-0.08 -0.04,-0.12l0 0.02 0.01 0.19 -0.22 0z"/>
<polygon class="fil12" points="6.57,1.06 6.6,1.06 6.6,0.88 6.81,0.87 6.81,0.85 6.58,0.85 "/>
<path class="fil13" d="M4.31 4.15c0.04,-0.08 -0.01,-0.05 0.05,-0.08l-0.06 0.01 0.01 0.07z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

14
apps/ssms20/info Normal file
View File

@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="SQL Server Management Studio"
# Used for descriptions and window class
FULL_NAME="SQL Server Management Studio"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files (x86)\Microsoft SQL Server Management Studio 20\Common7\IDE\Ssms.exe"
# GNOME categories
CATEGORIES="Development"
# GNOME mimetypes
MIME_TYPES="text/sql"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Word"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Jon Champagne
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Word"

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Livello_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1881.25 1750"
enable-background="new 0 0 1881.25 1750" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds bottomLeftOrigin="true" height="1750" width="1881.25" x="-938.5" y="-851"></sliceSourceBounds>
</sfw>
</metadata>
<path fill="#41A5EE" d="M1801.056,0H517.694C473.404,0,437.5,35.904,437.5,80.194c0,0,0,0,0,0V437.5l743.75,218.75l700-218.75
V80.194C1881.25,35.904,1845.346,0,1801.056,0L1801.056,0z"/>
<path fill="#2B7CD3" d="M1881.25,437.5H437.5V875l743.75,131.25l700-131.25V437.5z"/>
<path fill="#185ABD" d="M437.5,875v437.5l700,87.5l743.75-87.5V875H437.5z"/>
<path fill="#103F91" d="M517.694,1750h1283.363c44.29,0,80.194-35.904,80.194-80.194l0,0V1312.5H437.5v357.306
C437.5,1714.096,473.404,1750,517.694,1750L517.694,1750z"/>
<path opacity="0.1" enable-background="new " d="M969.806,350H437.5v1093.75h532.306c44.23-0.144,80.05-35.964,80.194-80.194
V430.194C1049.856,385.964,1014.036,350.144,969.806,350z"/>
<path opacity="0.2" enable-background="new " d="M926.056,393.75H437.5V1487.5h488.556c44.23-0.144,80.05-35.964,80.194-80.194
V473.944C1006.106,429.714,970.286,393.894,926.056,393.75z"/>
<path opacity="0.2" enable-background="new " d="M926.056,393.75H437.5V1400h488.556c44.23-0.144,80.05-35.964,80.194-80.194
V473.944C1006.106,429.714,970.286,393.894,926.056,393.75z"/>
<path opacity="0.2" enable-background="new " d="M882.306,393.75H437.5V1400h444.806c44.23-0.144,80.05-35.964,80.194-80.194
V473.944C962.356,429.714,926.536,393.894,882.306,393.75z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="167.2057" y1="1420.9117" x2="795.2943" y2="333.0883" gradientTransform="matrix(1 0 0 -1 0 1752)">
<stop offset="0" style="stop-color:#2368C4"/>
<stop offset="0.5" style="stop-color:#1A5DBE"/>
<stop offset="1" style="stop-color:#1146AC"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M80.194,393.75h802.112c44.29,0,80.194,35.904,80.194,80.194v802.113
c0,44.29-35.904,80.194-80.194,80.194H80.194c-44.29,0-80.194-35.904-80.194-80.194V473.944C0,429.654,35.904,393.75,80.194,393.75z
"/>
<path fill="#FFFFFF" d="M329.088,1008.788c1.575,12.381,2.625,23.144,3.106,32.375h1.837c0.7-8.75,2.158-19.294,4.375-31.631
c2.217-12.338,4.215-22.765,5.994-31.281l84.35-363.913h109.069l87.5,358.444c5.084,22.288,8.723,44.881,10.894,67.637h1.444
c1.631-22.047,4.671-43.966,9.1-65.625l69.781-360.631h99.269l-122.588,521.5H577.238L494.113,790.3
c-2.406-9.931-5.162-22.925-8.181-38.894c-3.019-15.969-4.9-27.65-5.644-35h-1.444c-0.962,8.487-2.844,21.088-5.644,37.8
c-2.8,16.713-5.046,29.079-6.738,37.1l-78.138,344.269h-117.95L147.131,614.337h101.062l75.994,364.656
C325.894,986.475,327.513,996.45,329.088,1008.788z"/>
</svg>

After

Width:  |  Height:  |  Size: 3.7 KiB

17
apps/word-x86-2010/info Normal file
View File

@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="Word"
# Used for descriptions and window class
FULL_NAME="Microsoft Word"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.EXE"
# GNOME categories
CATEGORIES="WinApps;Office"
# GNOME mimetypes
MIME_TYPES="application/msword;application/vnd.openxmlformats-officedocument.wordprocessingml.document;application/vnd.openxmlformats-officedocument.wordprocessingml.template;application/vnd.ms-word.document.macroEnabled.12;application/vnd.ms-word.template.macroEnabled.12;"
# System Icon
ICON="ms-word"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Word"

View File

@ -1,3 +1,8 @@
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
# GNOME shortcut name
NAME="Word"

View File

@ -29,12 +29,11 @@ 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"
# shellcheck disable=SC2155 # Silence warnings regarding masking return values through simultaneous declaration and assignment.
readonly RUN="$(date)-${RANDOM}"
readonly RUNID="${RANDOM}"
### GLOBAL VARIABLES ###
# WINAPPS CONFIGURATION FILE
@ -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."
@ -154,9 +153,18 @@ Please run:
# Name: 'dprint'
# Role: Conditionally print debug messages to a log file, creating it if it does not exist.
function dprint() {
[ "$DEBUG" = "true" ] && echo "[$RUN] $1" >>"$LOG_PATH"
[ "$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 \
/sound \
/microphone \
+dynamic-resolution \
/wm-class:"Microsoft Windows" \
/t:"Windows RDP Session [$RDP_IP]" \
/v:"$RDP_IP" &>/dev/null &
@ -525,19 +528,11 @@ function waRunCommand() {
# Open specified application.
dprint "MANUAL: ${2}"
$FREERDP_COMMAND \
/cert:tofu \
/d:"$RDP_DOMAIN" \
/u:"$RDP_USER" \
/p:"$RDP_PASS" \
/scale:"$RDP_SCALE" \
+auto-reconnect \
+clipboard \
+home-drive \
/sound \
/microphone \
-wallpaper \
+dynamic-resolution \
"$MULTI_FLAG" \
/app:program:"$2" \
/v:"$RDP_IP" &>/dev/null &
@ -570,13 +565,6 @@ function waRunCommand() {
/p:"$RDP_PASS" \
/scale:"$RDP_SCALE" \
+auto-reconnect \
+clipboard \
+home-drive \
/sound \
/microphone \
-wallpaper \
+dynamic-resolution \
"$MULTI_FLAG" \
/wm-class:"$FULL_NAME" \
/app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME" \
/v:"$RDP_IP" &>/dev/null &
@ -586,25 +574,19 @@ 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}"
$FREERDP_COMMAND \
/cert:tofu \
/d:"$RDP_DOMAIN" \
/u:"$RDP_USER" \
/p:"$RDP_PASS" \
/scale:"$RDP_SCALE" \
+auto-reconnect \
+clipboard \
+home-drive \
/sound \
/microphone \
-wallpaper \
+dynamic-resolution \
"$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 &

View File

@ -8,34 +8,42 @@ volumes:
data:
services:
windows:
image: dockurr/windows # https://hub.docker.com/r/dockurr/windows
image: ghcr.io/dockur/windows:latest
container_name: WinApps # Created Docker VM Name.
environment:
# 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.
#USERNAME: "Docker" # Uncomment to set a custom Windows username. The default is 'Docker'.
#PASSWORD: "" # Uncomment to set a password for the Windows user. There is no default password.
# 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).
#- /dev/sdY:/disk2 # Uncomment to mount a disk directly within the Windows VM (Note: 'disk2' and higher will be mounted as secondary drives).
- /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.

11
default.nix Normal file
View File

@ -0,0 +1,11 @@
(import (
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
in
fetchTarball {
url =
lock.nodes.flake-compat.locked.url
or "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz";
sha256 = lock.nodes.flake-compat.locked.narHash;
}
) { src = ./.; }).defaultNix

View File

@ -6,23 +6,35 @@ 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 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
You can find a guide for installing `Docker Engine` [here](https://docs.docker.com/engine/install/).
### Setup `Docker` Container
WinApps utilises `docker compose` to configure Windows VMs. A template [`compose.yaml`](https://github.com/winapps-org/winapps/blob/main/compose.yaml) is provided.
WinApps utilises `docker compose` to configure Windows VMs. A template [`compose.yaml`](../compose.yaml) is provided.
Prior to installing Windows, you can modify the RAM and number of CPU cores available to the Windows VM by changing `RAM_SIZE` and `CPU_CORES` within `compose.yaml`.
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]
> If you want to undo all your changes and start from scratch, run the following. For `podman`, replace `docker compose` with `podman-compose`.
> ```bash
> docker compose down --rmi=all --volumes
> ```
### Installing Windows
You can initiate the Windows installation using `docker compose`.
```bash
@ -32,45 +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
```
### Installing WinApps
`Docker` simplifies the WinApps installation process by eliminating the need for any additional configuration of the Windows virtual machine. Once the Windows virtual machine is up and running, you can directly launch the WinApps installer, which should automatically detect and interface with Windows.
> [!NOTE]
> Since no Windows user password is set by default, Windows may automatically log in, which may cause the WinApps installation to fail due to complications establishing an RDP connection. To avoid this issue, please use the VNC connection to ensure that the Windows user is logged out before starting the WinApps installation.
```bash
bash <(curl https://raw.githubusercontent.com/winapps-org/winapps/main/setup.sh)
```
### 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
```
@ -92,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`.
@ -104,38 +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
```
### Installing WinApps
Please follow the [`docker` instructions](#installing-winapps).
### 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

@ -28,31 +28,38 @@ Together, these components form a powerful and flexible virtualization stack, wi
3. Configure `libvirt` to use the 'system' URI by adding the line `LIBVIRT_DEFAULT_URI="qemu:///system"` to your preferred shell profile file (e.g., `.bashrc`, `.zshrc`, etc.).
```bash
echo "export LIBVIRT_DEFAULT_URI=\"qemu:///system\"" >> ~/.bashrc
```
4. Install `QEMU Guest Agent`.
```bash
sudo apt install qemu-guest-agent # Debian/Ubuntu
sudo dnf install qemu-guest-agent # Fedora/RHEL
sudo pacman -S qemu-guest-agent # Arch Linux
sudo emerge app-emulation/qemu-guest-agent # Gentoo Linux
sudo systemctl enable qemu-guest-agent
sudo systemctl start qemu-guest-agent
echo 'export LIBVIRT_DEFAULT_URI="qemu:///system"' >> ~/.bashrc
```
> [!NOTE]
> `QEMU Guest Agent` is a helper daemon used to exchange information and commands between host and guest operating systems.
> You can read more about `QEMU Guest Agent` [here](https://pve.proxmox.com/wiki/Qemu-guest-agent).
> WinApps may not read your shell's configuration. If you're having issues getting the installer to detect your VM, try adding
> `LIBVIRT_DEFAULT_URI="qemu:///system"` to your `/etc/environment` like:
> ```bash
> echo 'LIBVIRT_DEFAULT_URI="qemu:///system"' | sudo tee -a /etc/environment
> ```
> Thanks to imoize for pointing this out: https://github.com/winapps-org/winapps/issues/310#issuecomment-2505348088
5. Configure rootless `libvirt` and `kvm` by adding your user to groups of the same name.
4. Configure rootless `libvirt` and `kvm` by adding your user to groups of the same name.
``` bash
sudo usermod -a -G kvm $(id -un) # Add the user to the 'kvm' group.
sudo usermod -a -G libvirt $(id -un) # Add the user to the 'libvirt' group.
sudo reboot # Reboot the system to ensure the user is added to the relevant groups.
```
6. If relevant to your distribution, disable `AppArmor` for the `libvirt` daemon.
Note: Due to a known bug in `rpm-ostree`, which affects various distributions such as Silverblue, Bazzite, Bluefin, Kinoite, Aurora, UCore, and others, the commands provided earlier may not properly add your user to all required groups. If the `groups $USER` command does not show your user as being part of the necessary groups, you'll need to manually add these groups to `/etc/group` if they are present in `/usr/lib/group`.
To resolve this:
1. Identify which groups are missing from the output of `groups $USER`.
2. Use the following snippet to add each missing group to `/etc/group`. Ensure you replace "kvm" with the name of the missing group.
```bash
grep -E '^kvm:' /usr/lib/group | sudo tee -a /etc/group
sudo usermod -aG kvm $USER
```
3. Reboot your system to ensure that the user is correctly added to the relevant groups.
5. If relevant to your distribution, disable `AppArmor` for the `libvirt` daemon.
``` bash
sudo ln -s /etc/apparmor.d/usr.sbin.libvirtd /etc/apparmor.d/disable/ # Disable AppArmor for the libvirt daemon by creating a symbolic link.
```
@ -60,12 +67,12 @@ Together, these components form a powerful and flexible virtualization stack, wi
> [!NOTE]
> Systems with `SELinux` may also require security policy adjustments if virtual machine images are stored outside the default `/var/lib/libvirt/images` directory. Read [this guide](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/5/html/virtualization/sect-virtualization-security_for_virtualization-selinux_and_virtualization#sect-Virtualization-Security_for_virtualization-SELinux_and_virtualization) for more information.
7. Download a [Windows 10](https://www.microsoft.com/software-download/windows10ISO) or [Windows 11](https://www.microsoft.com/software-download/windows11) installation `.ISO` image.
6. Download a [Windows 10](https://www.microsoft.com/software-download/windows10ISO) or [Windows 11](https://www.microsoft.com/software-download/windows11) installation `.ISO` image.
> [!IMPORTANT]
> 'Professional', 'Enterprise' or 'Server' editions of Windows are required to run RDP applications. Windows 'Home' will NOT suffice.
8. Download [VirtIO drivers](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso) for the Windows virtual machine.
7. Download [VirtIO drivers](https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso) for the Windows virtual machine.
> [!NOTE]
> VirtIO drivers enhance system performance and minimize overhead by enabling the Windows virtual machine to use specialised network and disk device drivers. These drivers are aware that they are operating inside a virtual machine, and cooperate with the hypervisor. This approach eliminates the need for the hypervisor to emulate physical hardware devices, which is a computationally expensive process. This setup allows guests to achieve high-performance network and disk operations, leveraging the benefits of paravirtualisation.
@ -125,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]
@ -583,21 +593,20 @@ Once you get to the point of selecting the location for installation, you will s
<img src="./libvirt_images/20.png" width="700px"/>
</p>
The next hurdle will be bypassing the network selection screen. As the `VirtIO` drivers
for networking have not yet been loaded, the virtual machine will not be able to be connected to the internet.
- For Windows 11: Press "Shift + F10" to open the command prompt. Type 'OOBE\BYPASSNRO' (without the surrounding quotation marks) and press Enter. The system will restart and now allow you to click `I don't have internet`.
The next hurdle will be bypassing the network selection screen. As the `VirtIO` drivers for networking have not yet been loaded, the virtual machine will not be able to be connected to the internet.
- For Windows 11: When prompted to select your country or region, press "Shift + F10" to open the command prompt. Enter `OOBE\BYPASSNRO` and press Enter. The system will restart, allowing you to select "I don't have internet" later on. It is crucial to run this command as soon as possible, as doing so later in the installation process will not work, and you may be required to create a Microsoft account despite not having an internet connection.
<p align="center">
<img src="./libvirt_images/21.png" width="700px"/>
</p>
- For Windows 10: Simply click `I don't have internet`.
- For Windows 10: Simply click "I don't have internet".
<p align="center">
<img src="./libvirt_images/22.png" width="700px"/>
</p>
Following the above, choose to `Continue with limited setup`.
Following the above, choose to "Continue with limited setup".
<p align="center">
<img src="./libvirt_images/23.png" width="700px"/>
@ -624,19 +633,32 @@ Status Name DisplayName
Running QEMU-GA QEMU Guest Agent
```
You can then test whether the host GNU/Linux system can communicate with Windows via `QEMU Guest Agent` by running `virsh qemu-agent-command RDPWindows '{"execute":"guest-info"}'`. The output should resemble:
You can then test whether the host GNU/Linux system can communicate with Windows via `QEMU Guest Agent` by running `virsh qemu-agent-command RDPWindows '{"execute":"guest-get-osinfo"}' --pretty`. The output should resemble:
```
{"return":{"version":"107.0.1","supported_commands":[{"enabled":true,"name":"guest-get-cpustats","success-response":true},{"enabled":true,"name":"guest-get-diskstats","success-response":true},{"enabled":true,"name":"guest-get-devices","success-response":true},{"enabled":true,"name":"guest-get-osinfo","success-response":true},{"enabled":true,"name":"guest-get-timezone","success-response":true},{"enabled":true,"name":"guest-get-users","success-response":true},{"enabled":true,"name":"guest-get-host-name","success-response":true},{"enabled":true,"name":"guest-exec","success-response":true},{"enabled":true,"name":"guest-exec-status","success-response":true},{"enabled":false,"name":"guest-get-memory-block-info","success-response":true},{"enabled":false,"name":"guest-set-memory-blocks","success-response":true},{"enabled":false,"name":"guest-get-memory-blocks","success-response":true},{"enabled":true,"name":"guest-set-user-password","success-response":true},{"enabled":true,"name":"guest-get-fsinfo","success-response":true},{"enabled":true,"name":"guest-get-disks","success-response":true},{"enabled":false,"name":"guest-set-vcpus","success-response":true},{"enabled":true,"name":"guest-get-vcpus","success-response":true},{"enabled":true,"name":"guest-network-get-interfaces","success-response":true},{"enabled":false,"name":"guest-suspend-hybrid","success-response":false},{"enabled":true,"name":"guest-suspend-ram","success-response":false},{"enabled":true,"name":"guest-suspend-disk","success-response":false},{"enabled":true,"name":"guest-fstrim","success-response":true},{"enabled":true,"name":"guest-fsfreeze-thaw","success-response":true},{"enabled":true,"name":"guest-fsfreeze-freeze-list","success-response":true},{"enabled":true,"name":"guest-fsfreeze-freeze","success-response":true},{"enabled":true,"name":"guest-fsfreeze-status","success-response":true},{"enabled":true,"name":"guest-file-flush","success-response":true},{"enabled":true,"name":"guest-file-seek","success-response":true},{"enabled":true,"name":"guest-file-write","success-response":true},{"enabled":true,"name":"guest-file-read","success-response":true},{"enabled":true,"name":"guest-file-close","success-response":true},{"enabled":true,"name":"guest-file-open","success-response":true},{"enabled":true,"name":"guest-shutdown","success-response":false},{"enabled":true,"name":"guest-info","success-response":true},{"enabled":true,"name":"guest-set-time","success-response":true},{"enabled":true,"name":"guest-get-time","success-response":true},{"enabled":true,"name":"guest-ping","success-response":true},{"enabled":true,"name":"guest-sync","success-response":true},{"enabled":true,"name":"guest-sync-delimited","success-response":true}]}}
```json
{
"return": {
"name": "Microsoft Windows",
"kernel-release": "26100",
"version": "Microsoft Windows 11",
"variant": "client",
"pretty-name": "Windows 10 Pro",
"version-id": "11",
"variant-id": "client",
"kernel-version": "10.0",
"machine": "x86_64",
"id": "mswindows"
}
}
```
Next, you will need to make some registry changes to enable RDP Applications to run on the system. Start by downloading the [RDPApps.reg](https://github.com/winapps-org/winapps/blob/main/oem/RDPApps.reg) file, right-clicking on the `Raw` button, and clicking on `Save target as`.
Next, you will need to make some registry changes to enable RDP Applications to run on the system. Start by downloading the [RDPApps.reg](../oem/RDPApps.reg) file, right-clicking on the `Raw` button, and clicking on `Save target as`. Repeat the same thing for the [install.bat](../oem/install.bat) and the [NetProfileCleanup.ps1](../oem/NetProfileCleanup.ps1). **Do not download the Container.reg.**
<p align="center">
<img src="./libvirt_images/26.png" width="700px"/>
</p>
Once you have downloaded the registry file, right-click on it, and choose `Merge`.
Once you have downloaded all three files, right-click the install.bat and select "Run as administrator".
<p align="center">
<img src="./libvirt_images/27.png" width="700px"/>
@ -668,6 +690,59 @@ Scroll down to `Remote Desktop`, and enable `Enable Remote Desktop`.
At this point, you will need to restart the Windows virtual machine.
## (Optional) Configuring a Fallback Shared Folder
When connecting to Windows through FreeRDP, your home folder will be shared automatically. However, this sharing setup does not apply when using Windows via virt-manager. To configure a fallback shared folder, follow these steps:
1. Navigate to "Virtual Hardware Details", then "Memory" and then check the box for "Enable shared memory".
2. Add filesystem hardware by going to "Virtual Hardware Details" and selecting "Add Hardware" followed by "Filesystem". Choose `virtiofs` as the driver, enter the path to the shared folder, and provide a name for the shared folder in the target path (e.g., "Windows Shared Folder").
3. Install [`WinFSP`](https://github.com/winfsp/winfsp/releases/) on Windows.
4. Enable and start a 'VirtIO Filesystem' service within Windows by running the following commands within a PowerShell prompt.
```PowerShell
sc.exe create VirtioFsSvc binpath= "C:\Program Files\Virtio-Win\VioFS\virtiofs.exe" start=auto depend="WinFsp.Launcher/VirtioFsDrv" DisplayName="Virtio Filesystem Service"
sc.exe start VirtioFsSvc
```
5. Reboot Windows.
## (Optional) Configuring a Static IP Address
1. Identify the Windows MAC address.
```bash
virsh dumpxml "RDPWindows" | grep "mac address"
```
2. Edit the virtual network configuration.
1. Identify the correct network name.
```bash
virsh net-list # Will likely return "default"
```
2. Edit the configuration file.
```bash
virsh net-edit "default" # Replace "default" with the appropriate network name if different
```
3. Update the `<dhcp>` section in the configuration file using the MAC address you obtained earlier. In the below example, "RDPWindows" has MAC address "df:87:4c:75:e5:fb" and is assigned the static IP address "192.168.122.2".
```xml
<dhcp>
<range start="192.168.122.2" end="192.168.122.254"/>
<host mac="df:87:4c:75:e5:fb" name="RDPWindows" ip="192.168.122.2"/>
<host mac="53:45:6b:de:a0:7b" name="Debian" ip="192.168.122.3"/>
<host mac="7d:62:4f:59:ef:f5" name="FreeBSD" ip="192.168.122.4"/>
</dhcp>
```
4. Restart the virtual network.
```bash
virsh net-destroy "default" # Replace with the correct name on your system
virsh net-start "default" # Replace with the correct name on your system
```
5. Reboot Windows.
## Installing Windows Software and Configuring WinApps
You may now proceed to install other applications like 'Microsoft 365', 'Adobe Creative Cloud' or any other applications you would like to use through WinApps.
> [!NOTE]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -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" />
<title
id="title1">Open-source-virtualization-stack</title>
<style
@ -207,13 +207,15 @@
fill-rule="evenodd"
class="s8"
d="m 266.57968,306.38322 c -0.6,-0.7 -1.6,-0.7 -2.2,0 l -6.2,6.2 c -0.6,0.6 -0.6,1.6 0,2.2 0.6,0.6 1.6,0.6 2.2,0 l 3.5,-3.6 v 18 c 0,0.9 0.7,1.5 1.6,1.5 0.8,0 1.5,-0.6 1.5,-1.5 v -18 l 3.6,3.6 c 0.6,0.6 1.6,0.6 2.2,0 0.6,-0.6 0.6,-1.6 0,-2.2 0,0 -6.2,-6.2 -6.2,-6.2 z"
inkscape:label="Arrow_Up" />
inkscape:label="Arrow_Up"
style="fill:#999999" />
<path
id="Arrow_6"
fill-rule="evenodd"
class="s8"
d="m 244.37968,330.28322 c 0.6,0.6 1.6,0.6 2.2,0 l 6.2,-6.2 c 0.6,-0.6 0.6,-1.6 0,-2.2 -0.6,-0.6 -1.6,-0.6 -2.2,0 l -3.6,3.5 v -17.9 c 0,-0.9 -0.7,-1.6 -1.5,-1.6 -0.9,0 -1.6,0.7 -1.6,1.6 v 17.9 l -3.5,-3.5 c -0.6,-0.6 -1.6,-0.6 -2.2,0 -0.6,0.6 -0.6,1.6 0,2.2 z"
inkscape:label="Arrow_Down" />
inkscape:label="Arrow_Down"
style="fill:#999999" />
</g>
</g>
<g
@ -274,13 +276,15 @@
fill-rule="evenodd"
class="s8"
d="m 370.37233,213.93929 c -0.6,-0.7 -1.6,-0.7 -2.2,0 l -6.2,6.2 c -0.6,0.6 -0.6,1.6 0,2.2 0.6,0.6 1.6,0.6 2.2,0 l 3.5,-3.6 v 18 c 0,0.9 0.7,1.5 1.6,1.5 0.8,0 1.5,-0.6 1.5,-1.5 v -18 l 3.6,3.6 c 0.6,0.6 1.6,0.6 2.2,0 0.6,-0.6 0.6,-1.6 0,-2.2 0,0 -6.2,-6.2 -6.2,-6.2 z"
inkscape:label="Up_Arrow" />
inkscape:label="Up_Arrow"
style="fill:#999999" />
<path
id="Arrow_4"
fill-rule="evenodd"
class="s8"
d="m 348.17233,237.83929 c 0.6,0.6 1.6,0.6 2.2,0 l 6.2,-6.2 c 0.6,-0.6 0.6,-1.6 0,-2.2 -0.6,-0.6 -1.6,-0.6 -2.2,0 l -3.6,3.5 v -17.9 c 0,-0.9 -0.7,-1.6 -1.5,-1.6 -0.9,0 -1.6,0.7 -1.6,1.6 v 17.9 l -3.5,-3.5 c -0.6,-0.6 -1.6,-0.6 -2.2,0 -0.6,0.6 -0.6,1.6 0,2.2 0,0 6.2,6.2 6.2,6.2 z"
inkscape:label="Down_Arrow" />
inkscape:label="Down_Arrow"
style="fill:#999999" />
</g>
</g>
<g
@ -492,28 +496,32 @@
class="s8"
d="m 185.26144,170.08528 c 0.7,-0.6 0.7,-1.6 0,-2.2 l -6.2,-6.2 c -0.6,-0.6 -1.6,-0.6 -2.2,0 -0.6,0.6 -0.6,1.6 0,2.2 l 3.6,3.6 h -18 c -0.9,0 -1.5,0.7 -1.5,1.5 0,0.9 0.6,1.6 1.5,1.6 h 18 l -3.6,3.5 c -0.6,0.6 -0.6,1.6 0,2.2 0.6,0.6 1.6,0.6 2.2,0 z"
inkscape:label="Right_Arrow"
transform="translate(-0.005896,-0.00237805)" />
transform="translate(-0.005896,-0.00237805)"
style="fill:#999999" />
<path
id="Arrow_3"
fill-rule="evenodd"
class="s8"
d="m 161.36144,147.88528 c -0.6,0.6 -0.6,1.6 0,2.2 l 6.2,6.2 c 0.6,0.6 1.6,0.6 2.2,0 0.6,-0.6 0.6,-1.6 0,-2.2 l -3.5,-3.5 h 17.9 c 0.9,0 1.6,-0.7 1.6,-1.6 0,-0.8 -0.7,-1.5 -1.6,-1.5 h -17.9 l 3.5,-3.6 c 0.6,-0.6 0.6,-1.6 0,-2.2 -0.6,-0.6 -1.6,-0.6 -2.2,0 z"
inkscape:label="Left_Arrow"
transform="translate(-0.005896,-0.00237805)" />
transform="translate(-0.005896,-0.00237805)"
style="fill:#999999" />
<path
id="Arrow_0"
fill-rule="evenodd"
class="s8"
d="m 93.754521,93.097776 c -0.6,-0.7 -1.6,-0.7 -2.2,0 l -6.2,6.2 c -0.6,0.6 -0.6,1.600004 0,2.200004 0.6,0.6 1.6,0.6 2.2,0 l 3.5,-3.600004 v 18.000004 c 0,0.9 0.7,1.5 1.6,1.5 0.8,0 1.5,-0.6 1.5,-1.5 V 97.897776 l 3.6,3.600004 c 0.6,0.6 1.6,0.6 2.2,0 0.599999,-0.6 0.599999,-1.600004 0,-2.200004 0,0 -6.2,-6.2 -6.2,-6.2 z"
inkscape:label="Up_Arrow"
transform="translate(-0.005896,-0.00237805)" />
transform="translate(-0.005896,-0.00237805)"
style="fill:#999999" />
<path
id="Arrow_1"
fill-rule="evenodd"
class="s8"
d="m 71.554521,116.96028 c 0.6,0.6 1.6,0.6 2.2,0 l 6.2,-6.2 c 0.6,-0.6 0.6,-1.6 0,-2.2 -0.6,-0.6 -1.6,-0.6 -2.2,0 l -3.6,3.5 V 94.160276 c 0,-0.9 -0.7,-1.6 -1.5,-1.6 -0.9,0 -1.6,0.7 -1.6,1.6 v 17.900004 l -3.5,-3.5 c -0.6,-0.6 -1.6,-0.6 -2.2,0 -0.6,0.6 -0.6,1.6 0,2.2 z"
inkscape:label="Down_Arrow"
transform="translate(-0.005896,-0.00237805)" />
transform="translate(-0.005896,-0.00237805)"
style="fill:#999999" />
</g>
<g
id="g149"
@ -543,7 +551,7 @@
id="GNU/Linux_Applications_Text"
x="-193.88689"
y="-3.0945449"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16px;font-family:Unageo;-inkscape-font-specification:'Unageo, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#ffffff;fill-opacity:1"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:16px;font-family:Unageo;-inkscape-font-specification:'Unageo, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#808080;fill-opacity:1"
transform="rotate(-90)"><tspan
sodipodi:role="line"
id="tspan188"

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

76
flake.lock generated Normal file
View File

@ -0,0 +1,76 @@
{
"nodes": {
"flake-compat": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1724819573,
"narHash": "sha256-GnR7/ibgIH1vhoy8cYdmXE6iyZqKqFxQSVkFgosBh6w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "71e91c409d1e654808b2621f28a327acfdad8dc2",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

29
flake.nix Normal file
View File

@ -0,0 +1,29 @@
{
description = "WinApps Nix packages & NixOS module";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz";
flake-utils.url = "github:numtide/flake-utils";
};
outputs =
{
nixpkgs,
flake-utils,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
in
{
formatter = pkgs.nixfmt-rfc-style;
packages.winapps = pkgs.callPackage ./packages/winapps { };
packages.winapps-launcher = pkgs.callPackage ./packages/winapps-launcher { };
}
);
}

View File

@ -1,93 +0,0 @@
Copyright 2023 The Unageo Project Authors (https://github.com/RichardSepsi/Unageo)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

@ -1,16 +0,0 @@
## Unageo typeface
Unageo is a simple, geometric typeface with variable weight and italic angle support, that was made with digital use in mind, however it works in print just as well .
It's designed to use perfect geometric shapes where possible while still maintaining great readability and it uses almost uniform stroke width all across each glyph on all weights.
Other than latin, Unageo also supports cyrillic and greek scripts.
Unageo cyrillic was made in bulgarian style, that uses more rounded shapes and differentiated letter heights which makes it easier to tell letters apart and further improves readability.
Greek uses the same rounded shapes and adds smooth lines to give it a more unique style.
### How was it made?
Unageo is my first attempt at making a font, and since I had almost no prior experience with font creation and limited software avalability, I worked on Unageo with an unusual workflow. I designed the characters in inkscape and imported the outlines into fontforge. Since I'm familiar with inkscape, designing the glyphs wasn't too hard and inkscape has great tools for working with perfect geometry. It wasn't as great with fontforge, but I got accustomed to it quite fine and I was able to finish my font. After it was done, I used fontmake to generate my variable fonts and then fonttools mutator to generate the static fonts. Static fonts can also be exported directly from fontforge as the sources are interpolable.
##
![alt text](https://github.com/RichardSepsi/Unageo/blob/main/documentation/Unageo.png?raw=true)

Some files were not shown because too many files have changed in this diff Show More