394 Commits

Author SHA1 Message Date
Oskar Manhart
53e980a8e8 fix: update winapps-launcher
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-09-04 19:45:28 +02:00
Oskar Manhart
bc8ac155d4 fix: chmod *after* copying
Closes #711

Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-09-04 19:39:27 +02:00
Oskar Manhart
5104e0d400 Merge pull request #709 from KernelGhost/main
Further fixes for #638
2025-09-04 14:44:35 +02:00
Rohan Barar
a6a51b2ccf Further fixes for #638
Signed-off-by: Rohan Barar <rohan.barar@gmail.com>
2025-09-04 21:52:32 +10:00
Oskar Manhart
b203b6d252 Merge pull request #708 from winapps-org/feat-drop-cla
Revoke CLA
2025-09-04 13:16:19 +02:00
Oskar Manhart
abb3d56b7e feat: revoke all CLAs
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-09-04 13:07:47 +02:00
Oskar Manhart
fd1676092a Merge pull request #707 from KernelGhost/main
Fix: #697 and #638
2025-09-04 11:52:28 +02:00
Rohan Barar
d66d41ed9a Fixed #697 and #638 using a more robust string comparison
Signed-off-by: Rohan Barar <rohan.barar@gmail.com>
2025-09-04 18:55:12 +10:00
Oskar Manhart
97d10a5724 Merge pull request #694 from winapps-org/feat-dco
Add a DCO
2025-09-03 13:07:34 +02:00
pre-commit-ci[bot]
1dba0991ec [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-09-02 09:13:40 +00:00
Oskar Manhart
8619510aa6 feat: add cla signatures from cla-assistant
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-09-02 11:13:24 +02:00
Oskar Manhart
7b0c55130f fix: remove title
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-09-02 10:40:41 +02:00
Oskar Manhart
3875a33307 fix: move github files to .github
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-09-02 10:40:41 +02:00
pre-commit-ci[bot]
41957ed4cb [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-09-02 08:31:34 +00:00
Oskar Manhart
3545364cbf fix: address comments
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-09-02 10:31:08 +02:00
Oskar Manhart
b704593972 Merge pull request #693 from sparky3387/main
Adds offically supported applications installed from the users folder
2025-09-01 19:21:21 +02:00
Oskar Manhart
e6440a3923 Merge pull request #695 from howardt12345/apps-lightroom-classic
Add Lightroom Classic as supported application
2025-09-01 09:38:41 +02:00
Howard Tseng
d919fb8e64 cleanup licence header
Signed-off-by: Howard Tseng <howardt12345@gmail.com>
2025-08-31 19:37:51 -04:00
Howard Tseng
1a0029ad47 fix capitalization
Signed-off-by: Howard Tseng <howardt12345@gmail.com>
2025-08-31 19:26:33 -04:00
pre-commit-ci[bot]
3f5bba7f0e [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci

Signed-off-by: Howard Tseng <howardt12345@gmail.com>
2025-08-31 19:19:08 -04:00
Howard Tseng
aa96e56130 Add Lightroom Classic as supported application
Signed-off-by: Howard Tseng <howardt12345@gmail.com>
2025-08-31 19:19:08 -04:00
pre-commit-ci[bot]
a67b692f3e [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci

Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-08-31 15:55:30 +02:00
Oskar Manhart
ac22b1b4e6 feat: issue template
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-08-31 15:55:30 +02:00
Oskar Manhart
b7a3eaa784 feat: add dco
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-08-31 15:55:30 +02:00
Oskar Manhart
5ec2479df6 feat: move demo & icons into docs
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-08-31 15:55:30 +02:00
Oskar Manhart
f26d28b561 fix: remove autoupdate branch
Signed-off-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-08-31 15:55:30 +02:00
sparky3387
dcb75c29f4 Adds offically supported applications installed from the users folder
Adds Fusion360 to officially supported applications

Signed-off-by: sparky3387 <github@sparky.net.au>
2025-08-31 22:54:20 +10:00
Oskar Manhart
94466f9a9b Merge pull request #686 from matheusmelo18/main
feat: added powerbi
2025-08-30 19:34:29 +02:00
Matheus Neto Melo
d7ab869a74 Remove copyright and license from info file 2025-08-30 11:13:28 -03:00
Matheus Neto Melo
0bdd907959 Remove copyright information from info file 2025-08-30 11:13:04 -03:00
Matheus Neto Melo
2e0f059868 feat: added powerbi 2025-08-30 06:18:54 +00:00
Oskar Manhart
0ef690635f Merge pull request #680 from Dreamail/fix-nix-permissions
fix(nix): set write permissions when copying from nix store
2025-08-29 09:37:08 +02:00
Dreamail
5c5b1e8a1d fix(nix): set write permissions when copying from nix store 2025-08-29 14:39:29 +08:00
Oskar Manhart
def1d60326 Merge pull request #663 from KernelGhost/main
Improve libvirt documentation and install script
2025-08-28 13:39:15 +02:00
Oskar Manhart
63e94e277f fix: don't wait on exit 2025-08-28 13:35:37 +02:00
Rohan Barar
fc9d558288 Merge pull request #666 from DevZiaus/main
Added pdfgear as a new app
2025-08-28 21:32:06 +10:00
Oskar Manhart
cb7b3c7b13 Merge pull request #675 from queenkjuul/main
feat: add Adobe CC 2024 integrations
2025-08-28 11:32:19 +02:00
queenkjuul
7d26cecad4 refactor: PR feedback 2025-08-27 21:16:11 -05:00
pre-commit-ci[bot]
d7e86124ed [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-08-27 16:15:25 +00:00
queenkjuul
02966c8440 feat: add Adobe CC 2024 integrations 2025-08-27 11:05:25 -05:00
Oskar Manhart
71d2abde6d Update info 2025-08-26 21:20:19 +02:00
Md Ziaus Samad
d1eca20976 Remove copyright notice from apps/pdfgear/info
Removed copyright notice from info file
2025-08-27 00:42:32 +06:00
pre-commit-ci[bot]
d00439bb97 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-08-25 21:16:04 +00:00
DevZiaus
60905ccf20 Added pdfgear as a new app 2025-08-26 03:12:49 +06:00
Rohan Barar
420712a69e fix issue #635 2025-08-25 20:34:55 +10:00
Rohan Barar
da736a9175 remove script execution delay 2025-08-25 20:19:59 +10:00
pre-commit-ci[bot]
6771f8645f [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-08-25 08:29:31 +00:00
Rohan Barar
f47519106e update libvirt documentation and images 2025-08-25 18:02:19 +10:00
Rohan Barar
e7651b18b8 remove old images 2025-08-25 15:28:53 +10:00
Rohan Barar
720b72b1e1 update batch script for unattended execution 2025-08-25 15:10:57 +10:00
Rohan Barar
cba641f1cf Remove superfluous instruction to rename Windows PC 2025-08-25 11:02:15 +10:00
Rohan Barar
3e76e102f5 Remove instruction to manually enable Remote Desktop 2025-08-25 09:39:31 +10:00
Rohan Barar
8f0bf1074e Automatically enable Remote Desktop 2025-08-25 09:37:13 +10:00
Oskar Manhart
09288b135e Merge pull request #661 from nlogozzo/main
fix: `Autopause` for `docker`
2025-08-24 17:26:46 +02:00
Oskar Manhart
03d996725a Merge pull request #660 from osalbahr/fix-opensuse-capitalization
README: OpenSUSE -> openSUSE
2025-08-24 17:26:17 +02:00
Nick Logozzo
82f0a0b843 fix: Autopause for docker 2025-08-24 11:22:57 -04:00
Osama Albahrani
a2515b3ce5 README: OpenSUSE -> openSUSE 2025-08-24 18:07:23 +03:00
Oskar Manhart
650e32dfdf Merge pull request #641 from 9Morello/main
Update README.md with note for Debian 12
2025-08-19 16:16:48 +02:00
9Morello
1ab992ca1c Update README.md with note for Debian 12 2025-08-19 08:58:52 -03:00
Oskar Manhart
c5bdc1eee4 Merge pull request #629 from Sunrongguo2008/main
fix: Correct removable media path mapping for RDP drive redirection
2025-08-08 21:40:10 +02:00
Sunong2008
cab82a24dd Update winapps 2025-08-06 23:51:42 +08:00
Oskar Manhart
2c081f218c Merge pull request #625 from KernelGhost/main
Specify securing configuration file with '600' permissions in README
2025-08-03 09:50:54 +01:00
Rohan Barar
60f0456d44 add note in README to secure 'winapps.conf' with best practice file permissions 2025-08-03 15:37:23 +10:00
Rohan Barar
b5cb322827 Merge pull request #619 from KernelGhost/main
Miscellaneous Fixes
2025-08-03 07:21:32 +10:00
Rohan Barar
44f9df793d update setup.patch to match change in 9c0564cca4 2025-08-02 23:03:32 +10:00
Rohan Barar
887e282443 remove '.DS_Store' files + update gitignore 2025-08-02 22:51:06 +10:00
Rohan Barar
c25ea7c2fc integrate libvirtd group support + document in install guide + remove NixOS patch 2025-08-02 22:41:32 +10:00
Rohan Barar
88f1e4e96e Update ExtractPrograms.ps1
fixed erroneous comments
2025-08-02 21:42:59 +10:00
Rohan Barar
ab496b9ade Merge pull request #16 from KernelGhost/codex/replace-numeric-comparison-with-string-inequality
Fix string comparison in setup.sh
2025-08-01 22:06:30 +10:00
Rohan Barar
a04103b88c fix: use string compare for path check 2025-08-01 22:04:48 +10:00
pre-commit-ci[bot]
6a7b57a064 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-08-01 08:49:39 +00:00
Rohan Barar
e8037948f4 various improvements to install.bat 2025-08-01 18:48:16 +10:00
Rohan Barar
fdecd7a8da clarified shutdown error text 2025-08-01 17:17:05 +10:00
Rohan Barar
bbf2da803f Merge pull request #15 from KernelGhost/codex/update-comment-for-wafixremovablemedia
Update removable media comment
2025-08-01 17:10:42 +10:00
Rohan Barar
7abe89ec3a Merge pull request #14 from KernelGhost/codex/edit-license.md-for-grammatical-correction
Fix minor grammar issue in license
2025-08-01 17:10:22 +10:00
Rohan Barar
f0aa7d6fb8 docs: clarify removable media comment 2025-08-01 17:10:02 +10:00
Rohan Barar
92686f0ae4 Fix grammar in license 2025-08-01 17:09:05 +10:00
Rohan Barar
ff0cef7841 Merge pull request #10 from KernelGhost/codex/update-disk-mapping-example-in-compose.yaml
Fix compose disk mapping comment
2025-08-01 17:07:10 +10:00
Rohan Barar
050384d255 Merge pull request #11 from KernelGhost/codex/edit-docker.md-for-wording-corrections
Fix minor grammar in docker setup docs
2025-08-01 17:06:38 +10:00
Rohan Barar
3ea6c614b3 Merge pull request #12 from KernelGhost/codex/update-comment-in-setup.sh
Fix grammar in detected file comment
2025-08-01 17:06:11 +10:00
Rohan Barar
e5d6f60cc8 Merge pull request #13 from KernelGhost/codex/edit-install.bat-to-fix-if-exist-syntax
Fix conditional in OEM install script from `if exists` to `if exist`.
2025-08-01 17:04:25 +10:00
Rohan Barar
708ad60d1c fix script conditional 2025-08-01 16:56:16 +10:00
Rohan Barar
8cac5af983 docs: fix grammar in detected file comment 2025-08-01 16:51:42 +10:00
Rohan Barar
cc13aac465 docs: fix grammar in docker instructions 2025-08-01 16:51:17 +10:00
Rohan Barar
a23fd713e7 Fix disk mapping example 2025-08-01 16:50:37 +10:00
Oskar Manhart
1c4b38b7ec Merge pull request #620 from wovw/nix-icons
fix(nix): include icons dir for setup script
2025-07-31 08:29:00 +01:00
anthony pasala
34c8168548 fix(nix): include icons dir for setup script 2025-07-31 00:09:17 -04:00
Rohan Barar
9c0564cca4 Merge pull request #9 from KernelGhost/codex/update-user_source_path-comment
Fix user source comment
2025-07-31 13:07:38 +10:00
Rohan Barar
26854d9137 fix erroneous change by Codex 2025-07-31 13:06:49 +10:00
Rohan Barar
f1441a5c12 Merge pull request #7 from KernelGhost/codex/fix-typo-in-cpu-pinning-section
Fix typo in docs
2025-07-31 13:01:06 +10:00
Rohan Barar
12530a6da1 Merge pull request #5 from KernelGhost/codex/fix-typo-in-readme.md
Fix typo in README
2025-07-31 13:00:32 +10:00
Rohan Barar
2f184cb525 Merge pull request #6 from KernelGhost/codex/fix-typo-in-extractprograms.ps1-comment
Fix comment typo
2025-07-31 13:00:08 +10:00
Rohan Barar
c6a8a43fdc Merge pull request #8 from KernelGhost/codex/update-wording-in-readme.md
Fix grammar in README
2025-07-31 12:59:45 +10:00
Rohan Barar
e62155cba5 fix: correct user source path comment 2025-07-31 12:57:47 +10:00
Rohan Barar
e4d4b915d5 Fix User Agent Switcher instructions 2025-07-31 12:57:24 +10:00
Rohan Barar
1c79a78c09 docs: fix typo in libvirt CPU pinning section 2025-07-31 12:55:58 +10:00
Rohan Barar
0f3b43d92a fix typo in PrintArrayData parameter comment 2025-07-31 12:55:24 +10:00
Rohan Barar
4136b1d6c0 fix spelling 2025-07-31 12:55:02 +10:00
Rohan Barar
82b4d8bdfb Merge pull request #4 from KernelGhost/codex/update-shortcut-name-in-setup.sh
Fix typo in setup info comments
2025-07-31 12:30:39 +10:00
Rohan Barar
4b4fe93d86 Merge pull request #3 from KernelGhost/codex/fix-typo-in-setup.sh-comment
Fix privileges typo in setup comments
2025-07-31 12:30:10 +10:00
Rohan Barar
ba2ec0a047 fix spacing for Shortcut Name comments 2025-07-31 12:26:27 +10:00
Rohan Barar
6e9e633616 Fix typo in EC_NO_SUDO comment 2025-07-31 12:19:56 +10:00
Rohan Barar
078c9b01c9 Merge pull request #2 from KernelGhost/codex/find-and-fix-critical-bug-in-codebase
Fix quoting for RemoteApp name
2025-07-31 12:18:28 +10:00
Rohan Barar
4de47581c4 fix wrong variable quoting in file path command 2025-07-31 12:14:45 +10:00
Oskar Manhart
03dff50916 fix(nix): correct build failure 2025-07-22 18:24:10 +02:00
Oskar Manhart
4010972963 Merge branch 'main' of github.com:winapps-org/winapps 2025-07-22 18:20:47 +02:00
Oskar Manhart
01d72eac5b feat: use garnix 2025-07-22 18:20:00 +02:00
Oskar Manhart
223ba8ecb0 Merge pull request #575 from eylenburg/boot_windows
Wait a bit before running command if Windows is not booted
2025-07-22 17:57:08 +02:00
eylenburg
8e0ef40b1f Update README.md 2025-07-22 14:32:12 +01:00
eylenburg
8796615775 Merge branch 'winapps-org:main' into boot_windows 2025-07-22 14:31:21 +01:00
Oskar Manhart
e48d50ff78 Merge pull request #597 from denisstrizhkin/main
Add README notice for non-English inputs options
2025-07-10 11:55:43 +02:00
Denis Strizhkin
5908f88ac5 README.md: kbd-unicode notice 2025-07-07 17:39:22 +03:00
Oskar Manhart
2068ab71ab Merge pull request #596 from winapps-org/chore/nix_update_actions
Packages: update
2025-07-06 17:12:15 +02:00
github-actions[bot]
edca9d5b9a winapps: 0-unstable-2025-06-22 -> 0-unstable-2025-07-02
Diff: 2b806de133...ce9a84dc52
2025-07-06 10:04:02 +00:00
eylenburg
ee967296a6 Update winapps 2025-07-02 14:37:13 +01:00
eylenburg
abf4c7ae66 Update winapps 2025-07-02 14:02:43 +01:00
eylenburg
d250907a3c Update winapps 2025-07-02 13:54:45 +01:00
eylenburg
efa348d1b3 Merge branch 'winapps-org:main' into boot_windows 2025-07-02 12:28:33 +01:00
Oskar Manhart
ce9a84dc52 Merge pull request #544 from winapps-org/feat-remove-submodule
Remove Launcher submodule
2025-07-02 10:41:16 +02:00
Rohan Barar
7188ed4072 docs: add reference to WinApps Launcher as optional system tray tool 2025-07-02 13:47:04 +10:00
Oskar Manhart
fd5e7f0a90 Merge pull request #586 from joeshachaf/add-emclient-and-paint_net
Add eM Client and Paint.NET definitions to winApps
2025-06-30 08:57:01 +02:00
pre-commit-ci[bot]
60b6c1215c [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-29 21:17:06 +00:00
Joe Shachaf
7548950a5e Add eM Client and Paint.NET definitions to winApps 2025-06-29 16:59:33 -04:00
Oskar Manhart
051e2e5852 Merge pull request #585 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-29 12:16:38 +02:00
github-actions[bot]
0c057b722d winapps: 0-unstable-2025-06-20 -> 0-unstable-2025-06-22
Diff: aa5b3e9455...2b806de133
2025-06-29 10:04:18 +00:00
eylenburg
17a511230c Update README.md 2025-06-23 12:19:56 +01:00
eylenburg
8ea5c2e079 Update winapps 2025-06-23 12:18:10 +01:00
eylenburg
3e84f5efdf Update winapps 2025-06-23 12:16:44 +01:00
eylenburg
3a71065db7 Merge branch 'winapps-org:main' into main 2025-06-23 12:11:32 +01:00
Oskar Manhart
2b806de133 Merge pull request #572 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-22 12:36:21 +02:00
github-actions[bot]
113abb3322 winapps: 0-unstable-2025-06-10 -> 0-unstable-2025-06-20
Diff: e2e9fd9b7b...aa5b3e9455
2025-06-22 10:03:55 +00:00
Oskar Manhart
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
Aldo
109b2b1d9c Merge branch 'winapps-org:main' into add-adobe-digital-editions-4.5 2025-06-20 12:56:37 +02:00
aldo
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
aldo
9e6b659f48 rm license header 2025-06-20 12:54:58 +02:00
pre-commit-ci[bot]
8b8e50aeaf [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-20 10:14:57 +00:00
Oskar Manhart
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
eylenburg
12dee36bdc Wait a bit before running command if Windows is not booted 2025-06-20 11:06:01 +01:00
Oskar Manhart
4d3821d9aa fix: remove license header 2025-06-20 12:05:35 +02:00
Oskar Manhart
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
Oskar Manhart
c604f49422 Merge pull request #546 from winapps-org/feat-remove-font
Remove fonts
2025-06-20 12:02:36 +02:00
pre-commit-ci[bot]
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
aldo
3298376f92 Add Adobe Digital Editions 4.5 2025-06-19 21:23:32 +02:00
Oskar Manhart
e8105f9ea6 Merge pull request #558 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-15 13:48:19 +02:00
github-actions[bot]
dd9a85aae1 winapps: 0-unstable-2025-06-05 -> 0-unstable-2025-06-10
Diff: 2b2f4cea69...e2e9fd9b7b
2025-06-15 10:04:14 +00:00
Oskar Manhart
c9fb729a50 feat: remove fonts 2025-06-10 18:50:26 +02:00
Oskar Manhart
dcd662dc06 fix: use +dynamic-resolution in full sessions 2025-06-10 18:45:33 +02:00
Oskar Manhart
9a0e9ee58e feat(launcher): remove submodules 2025-06-10 16:17:23 +02:00
Oskar Manhart
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
Oskar Manhart
5594a23298 feat: don't hardcode winapps path 2025-06-10 16:12:53 +02:00
Oskar Manhart
a317ba41f4 Merge branch 'main' into feat-optimize-flags 2025-06-10 16:11:41 +02:00
Oskar Manhart
a7e465c704 Merge pull request #538 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-08 19:31:08 +02:00
github-actions[bot]
c3affa75a8 winapps: 0-unstable-2025-05-26 -> 0-unstable-2025-06-05
Diff: 885d02079a...2b2f4cea69
2025-06-08 10:04:07 +00:00
Oskar Manhart
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
pre-commit-ci[bot]
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
Joshua Allgeier
e7dfd56515 feat: add configurable timeout settings for RDP operations in README and setup.sh 2025-06-05 10:31:03 +02:00
pre-commit-ci[bot]
27da810f34 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-06-05 07:23:52 +00:00
Oskar Manhart
8ecb806b97 doc: use openbsd-netcat on arch
Closes #508
2025-06-05 09:21:55 +02:00
pre-commit-ci[bot]
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
Oskar Manhart
b42449459e feat: remove more default RDP flags to simplify debugging 2025-06-05 09:15:20 +02:00
pre-commit-ci[bot]
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
Joshua Allgeier
46de8a8caa fix(setup.sh): increase timeout durations for RDP port check and process completion 2025-06-04 22:37:57 +02:00
Oskar Manhart
84308118c6 feat: clarify compose.yaml docs regarding /dev/sdX paths
Closes #523
2025-06-04 13:47:21 +02:00
Oskar Manhart
805b479e45 Merge pull request #510 from winapps-org/chore/nix_update_actions
Packages: update
2025-06-01 12:29:46 +02:00
github-actions[bot]
013cc42e07 winapps: 0-unstable-2025-04-19 -> 0-unstable-2025-05-26
Diff: a4d30724b5...885d02079a
2025-06-01 10:04:04 +00:00
Oskar Manhart
885d02079a Merge pull request #517 from sears-s/allow-vm-name-change
Allow libvirt VM name change
2025-05-26 12:22:20 +02:00
Sears Schulz
b3969aa3b7 More descriptive message for EC_NOT_EXIST 2025-05-23 21:50:50 -05:00
Sears Schulz
4019f9cb81 Update docs for VM_NAME 2025-05-23 21:24:33 -05:00
Sears Schulz
a2568be16f Update setup.patch to prevent need for fuzz 2025-05-23 21:16:30 -05:00
Sears Schulz
b9ef076dc8 Allow VM_NAME to be changed 2025-05-23 20:54:12 -05:00
pre-commit-ci[bot]
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
eddie g.
afb333ab4f small README.md fixes 2025-05-15 16:19:14 +02:00
eddie g.
97a3889ecc return to original link to be able to merge + readme update 2025-05-15 16:13:39 +02:00
eddie g.
c06ae550bc fix for application loop 2025-05-15 14:09:17 +02:00
eddie g.
bac0d08cf2 testing ms-office-protocol install 2025-05-15 14:01:17 +02:00
Oskar Manhart
1edae785f4 Merge pull request #498 from winapps-org/chore/nix_update_actions
Packages: update
2025-05-11 12:50:53 +02:00
Oskar Manhart
9d025fbdcb Merge pull request #476 from kroese/patch-2
docs: Correct readme
2025-05-11 12:47:33 +02:00
github-actions[bot]
997909b4a4 winapps: 0-unstable-2025-04-12 -> 0-unstable-2025-04-19
Diff: 21304d2299...a4d30724b5
2025-04-20 10:03:31 +00:00
Oskar Manhart
a4d30724b5 Merge pull request #497 from arwarw/pr-rootless-podman-docs-v2
Document how to make rootless podman work
2025-04-19 19:07:17 +02:00
Alexander Würstlein
e2ac7f3749 Add note about rootless podman containers
Add a note that explains how to make rootless podman containers work by passing on kvm group permissions through crun.
2025-04-19 18:27:58 +02:00
Alexander Würstlein
70ee239f90 Add optional commented config lines to enable rootless podman
Rootless podman containers need the original 'kvm' (or similar) group attached to their processes to be access /dev/kvm. Uncommenting those added lines along with the described changes accomplishes this.
2025-04-19 18:26:40 +02:00
Oskar Manhart
3677c87865 Merge pull request #479 from winapps-org/chore/nix_update_actions
Packages: update
2025-04-14 09:34:19 +02:00
github-actions[bot]
2a7b1504d7 winapps: 0-unstable-2025-03-21 -> 0-unstable-2025-04-12
Diff: 1f9f25e938...21304d2299
2025-04-13 10:04:00 +00:00
Oskar Manhart
21304d2299 Merge pull request #488 from linull24/main
Share mounted media via /run/media
2025-04-12 11:49:03 +02:00
linull24
de68c79876 Update README.md 2025-04-12 17:05:27 +08:00
pre-commit-ci[bot]
9795c1b642 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-04-12 09:01:55 +00:00
linull24
335b9f7c8d fix fxxking typo and grammer 2025-04-12 17:01:46 +08:00
linull24
167e6a68e6 typo fix 2025-04-12 15:11:01 +08:00
linull24
d6cc8480c1 Update README.md
Add REMOVEABLE_MEDIA.
2025-04-12 15:04:24 +08:00
linull24
04e52f18ce add variable REMOVABLE_MEDIA 2025-04-12 14:59:16 +08:00
linull24
268445aade Update winapps 2025-04-11 21:59:11 +08:00
Oskar Manhart
f6d56fdf50 Revert "Use custom port"
This reverts commit ee9523ee39.
2025-04-05 12:36:44 +02:00
Oskar Manhart
994dcc28f3 Revert "revert back to original ports"
This reverts commit e5929a134d.
2025-04-05 12:36:26 +02:00
Oskar Manhart
92c9a01385 Revert "Use different port for rdp"
This reverts commit e83cd5ac68.
2025-04-05 12:36:23 +02:00
Oskar Manhart
d3d2fc232e Revert "Add some tweaks to dockur"
This reverts commit 2f8d27ccad.
2025-04-05 12:36:13 +02:00
Felix Bartels
ee9523ee39 Use custom port
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-04 11:39:13 +02:00
Felix Bartels
e5929a134d revert back to original ports
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-03 18:09:50 +02:00
Felix Bartels
e83cd5ac68 Use different port for rdp
Signed-off-by: Felix Bartels <felix@9wd.eu>
2025-04-03 18:09:02 +02:00
Felix Bartels
2f8d27ccad Add some tweaks to dockur 2025-04-03 18:07:06 +02:00
Kroese
5004e4a5ed Update docs/docker.md
Co-authored-by: Oskar Manhart <52569953+oskardotglobal@users.noreply.github.com>
2025-04-03 11:16:35 +02:00
Kroese
12cf5ce3be Update docker.md 2025-04-03 01:51:17 +02:00
Oskar Manhart
9b1908b616 Merge pull request #475 from kroese/patch-1
fix: Change default to Win11 Pro
2025-04-02 21:49:46 +02:00
Kroese
d322050d5a Update compose.yaml 2025-04-02 12:52:55 +02:00
pre-commit-ci[bot]
1887e5567f [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-04-02 10:38:48 +00:00
Kroese
b18a388cf4 docs: Correct readme 2025-04-02 12:37:58 +02:00
Kroese
2751ba360a fix: Change default to Win11 Pro 2025-04-02 12:26:10 +02:00
Oskar Manhart
dca4ccefd9 Merge pull request #469 from dasinking/main
Add DYMO Connect
2025-03-25 06:49:10 +01:00
pre-commit-ci[bot]
a316c5adcc [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-03-25 00:53:13 +00:00
Alexander
3a1915fd7a Add files via upload 2025-03-25 01:50:12 +01:00
Alexander
1c75c7161f Create info 2025-03-25 01:49:47 +01:00
Oskar Manhart
606282e838 Merge pull request #468 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-23 15:19:32 +01:00
github-actions[bot]
ae6e15ef15 winapps: 0-unstable-2025-03-12 -> 0-unstable-2025-03-21
Diff: 65ec4f032b...1f9f25e938
2025-03-23 10:13:04 +00:00
Oskar Manhart
1f9f25e938 Merge pull request #465 from tstormn3tw0rk/fixing-failed-install-error14
Fix error 14 during setup
2025-03-21 15:01:53 +01:00
draconicSeamstress
4e7328d94d removed sets of quotes in line 1049 that broke functionality and gave a constant error 14 when running setup.sh 2025-03-20 23:39:41 -07:00
Oskar Manhart
dd744822a3 Merge pull request #454 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-16 18:22:47 +01:00
github-actions[bot]
6cf1846594 winapps-launcher: 0-unstable-2025-02-25 -> 0-unstable-2025-03-11
Diff: a1e5eeb792...9b3f6c5817
2025-03-16 10:12:57 +00:00
github-actions[bot]
2c2679aa1b winapps: 0-unstable-2025-02-26 -> 0-unstable-2025-03-12
Diff: 8be1cd7101...65ec4f032b
2025-03-16 10:12:55 +00:00
Oskar Manhart
65ec4f032b Merge pull request #456 from winapps-org/chore/update_submodules
Update submodules
2025-03-12 19:48:34 +01:00
github-actions
e96f080602 Update submodules 2025-03-11 21:59:35 +00:00
Oskar Manhart
f3d3d53f3a Merge pull request #455 from limemane/main
Adding Photoshop 2022 in pre-defined apps
2025-03-11 12:04:44 +01:00
espe
35c181d721 Remove license comment 2025-03-11 11:21:35 +01:00
esperal
40ef5803bf Adding Photoshop 2022 in pre-defined apps 2025-03-10 17:08:25 +01:00
Oskar Manhart
61af2140a1 Merge pull request #446 from winapps-org/chore/nix_update_actions
Packages: update
2025-03-02 13:13:51 +01:00
github-actions[bot]
61d092f1a3 winapps-launcher: 0-unstable-2025-02-02 -> 0-unstable-2025-02-25
Diff: ae1a9e9ea7...a1e5eeb792
2025-03-02 10:13:25 +00:00
github-actions[bot]
ee0b168466 winapps: 0-unstable-2025-02-16 -> 0-unstable-2025-02-26
Diff: 206da93530...8be1cd7101
2025-03-02 10:13:23 +00:00
Oskar Manhart
8be1cd7101 Merge pull request #441 from winapps-org/chore/update_submodules
Update submodules
2025-02-26 10:53:39 +01:00
pre-commit-ci[bot]
4e9a416e5f [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-02-26 09:48:19 +00:00
github-actions
74cd9d93fe Update submodules 2025-02-26 09:46:03 +00:00
Oskar Manhart
821bbcdadc fix(ci): PR instead of pushing 2025-02-26 10:45:25 +01:00
Oskar Manhart
f9b8a13fdc fix(ci): workflows should have yaml extension 2025-02-26 10:39:05 +01:00
Oskar Manhart
f42c49ec75 Merge pull request #415 from winapps-org/chore/nix_update_actions
Packages: update
2025-02-25 17:48:42 +01:00
Rohan Barar
109cd696eb Merge pull request #416 from winapps-org/doc-correct-suse-pkgs
doc: install libnotify-tools instead of libnotify on OpenSUSE
2025-02-25 22:35:46 +11:00
Oskar Manhart
d962654fe5 Merge pull request #430 from whitewolf101/main
Adding mIRC as a supported app
2025-02-24 10:39:33 +01:00
whitewolf101
3c1038bb7e Update README.md
Fix indentation
2025-02-23 13:21:12 -06:00
github-actions[bot]
1ffa6f5053 winapps: 0-unstable-2025-02-01 -> 0-unstable-2025-02-16
Diff: 73e71aff80...206da93530
2025-02-23 10:13:26 +00:00
whitewolf101
7d1a986c90 Update README.md
Added mIRC as a supported application
2025-02-22 21:25:57 -06:00
whitewolf101
e4eb78a0ce Rename mirc.svg to icon.svg 2025-02-22 21:13:44 -06:00
whitewolf101
ab3916f1d2 Delete apps/mirc/logo.svg 2025-02-22 21:12:55 -06:00
whitewolf101
3bd48b7211 Add new icon.svg 2025-02-22 21:12:23 -06:00
whitewolf101
d7156d3640 Update info
Change tested date
2025-02-22 20:27:49 -06:00
whitewolf101
6b17de3771 Merge branch 'winapps-org:main' into main 2025-02-22 20:25:08 -06:00
Oskar Manhart
206da93530 Merge pull request #427 from raffaem/patch-1
Specify that iptables kernel module must be loaded for folder sharing…
2025-02-16 16:19:57 +01:00
Raffaele Mancuso
c42bf78be5 Update docker.md 2025-02-16 15:46:37 +01:00
Raffaele Mancuso
6379d8f00e Specify that iptables kernel module must be loaded for folder sharing to work 2025-02-16 15:26:15 +01:00
Oskar Manhart
879e27272b doc: install libnotify-tools instead of libnotify on OpenSUSE
Closes #414:
2025-02-09 14:58:21 +01:00
Oskar Manhart
4bc58dd488 Merge pull request #402 from KernelGhost/main
Documentation Improvements
2025-02-02 13:31:29 +01:00
Oskar Manhart
b87ba41bad fix: account for renamed file 2025-02-02 12:05:19 +01:00
Oskar Manhart
290226aec7 fix: make patches apply 2025-02-02 12:01:36 +01:00
Oskar Manhart
5831696ead Merge remote-tracking branch 'upstream/main' 2025-02-02 11:49:41 +01:00
Oskar Manhart
e164a6b5ef fix(ci): don't create PRs on other people's repos 2025-02-02 11:40:25 +01:00
Oskar Manhart
0b6eed0a04 Merge pull request #403 from winapps-org/chore/nix_update_actions
Packages: update
2025-02-02 11:29:41 +01:00
Oskar Manhart
c033d7c4a8 feat(ci): allow running on PRs 2025-02-02 11:26:21 +01:00
github-actions[bot]
a00939164d winapps-launcher: 0-unstable-2025-01-12 -> 0-unstable-2025-02-02
Diff: 3eb63ad144...ae1a9e9ea7
2025-02-02 10:12:05 +00:00
github-actions[bot]
d122319392 winapps: 0-unstable-2025-01-19 -> 0-unstable-2025-02-01
Diff: 8c4a695a9f...73e71aff80
2025-02-02 10:12:02 +00:00
Rohan Barar
b0a0993afc Improved virtualisation stack diagram readability for GitHub light mode 2025-02-02 17:50:51 +11:00
Rohan Barar
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
Rohan Barar
d3d97d7d35 Improve instructions for identifying and correcting RDP TLS certificate issues during WinApps setup 2025-02-02 17:31:36 +11:00
Rohan Barar
b678a9f130 Add 'curl' and 'git' as required dependencies in README 2025-02-02 15:37:01 +11:00
Rohan Barar
35c5a1dc6c Correct reference to light-mode banner image in README 2025-02-02 15:33:28 +11:00
Oskar Manhart
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
Rohan Barar
963e74b90e Fixed #177 - Removed erroneous instruction to install 'qemu-guest-agent' 2025-02-01 17:05:00 +11:00
Oskar Manhart
26c3ae12ca Merge pull request #395 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-26 11:35:37 +01:00
github-actions[bot]
b2e2d946c8 winapps: 0-unstable-2025-01-16 -> 0-unstable-2025-01-19
Diff: e20e3423fb...8c4a695a9f
2025-01-26 10:12:32 +00:00
Oskar Manhart
8c4a695a9f Merge pull request #390 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-19 12:28:54 +01:00
github-actions[bot]
01f070b701 winapps: 0-unstable-2025-01-16 -> 0-unstable-2025-01-16
Diff: d12b400730...e20e3423fb
2025-01-19 10:12:58 +00:00
Oskar Manhart
e20e3423fb Merge pull request #389 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-16 17:33:11 +01:00
github-actions[bot]
1ffdff8fbe winapps: 0-unstable-2025-01-13 -> 0-unstable-2025-01-16
Diff: 8a4d8906d3...d12b400730
2025-01-16 16:31:10 +00:00
Oskar Manhart
d12b400730 Merge pull request #388 from toastedcrumpets/main
Add the reMarkable desktop app
2025-01-16 17:28:28 +01:00
Marcus Bannerman
db7562aec5 Removed copyright assertion 2025-01-16 16:25:38 +00:00
Marcus Bannerman
373c85aeb2 Added reMarkable desktop app 2025-01-16 13:49:10 +00:00
Oskar Manhart
6e0da93a4a Merge pull request #387 from starbr3aker/waEnsureOnPathFix
waEnsureOnPathFix
2025-01-15 21:52:49 +01:00
Oskar Manhart
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
starbr3aker
4884cc97ca waEnsureOnPathFix 2025-01-15 23:20:17 +05:30
starbr3aker
7b939fc541 waEnsureOnPathFix 2025-01-15 23:12:36 +05:30
starbr3aker
ad443a5a97 waEnsureOnPathFix 2025-01-15 22:58:37 +05:30
Oskar Manhart
6df306f32a fix: typo 2025-01-15 11:29:39 +01:00
Oskar Manhart
fe6322c585 fix: force runner user to be trusted 2025-01-15 10:40:50 +01:00
Oskar Manhart
99fcee0982 fix: do not check for existing install on nix 2025-01-15 10:36:00 +01:00
Oskar Manhart
df3548778c fix: use better if format 2025-01-15 10:25:40 +01:00
Oskar Manhart
6c3d582406 Merge pull request #380 from starbr3aker/patch-1
doc: docker.md added Win10 instructions
2025-01-15 09:25:22 +01:00
starbr3aker
09abdb747e Resolved comments 2025-01-15 08:30:13 +05:30
Oskar Manhart
06a112d012 Merge pull request #386 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-14 17:54:10 +01:00
github-actions[bot]
af1ba31334 winapps-launcher: 0-unstable-2024-10-01 -> 0-unstable-2025-01-12
Diff: 9f5fbcb57f...3eb63ad144
2025-01-14 16:53:48 +00:00
github-actions[bot]
3290965614 winapps: 0-unstable-2025-01-10 -> 0-unstable-2025-01-13
Diff: c98938776d...8a4d8906d3
2025-01-14 16:53:45 +00:00
Oskar Manhart
405e61d122 fix: actually build packages so they're inside the cachix cache 2025-01-14 17:51:22 +01:00
Oskar Manhart
80ba2ad378 fix: always source inquirer from path on nix 2025-01-14 17:41:01 +01:00
pre-commit-ci[bot]
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
starbr3aker
9c0c39845c Resolved comments 2025-01-13 23:19:17 +05:30
Oskar Manhart
8a4d8906d3 doc: fallback to pkgs.system on nix 2025-01-13 09:24:36 +01:00
pre-commit-ci[bot]
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
starbr3aker
8cd9dd7919 doc: default installation is via docker, changed files to reflect this. 2025-01-12 23:19:27 +05:30
Feyaz Baker
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
Oskar Manhart
a060947ac5 Merge pull request #378 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-12 13:17:25 +01:00
github-actions[bot]
a98589ba14 winapps: 0-unstable-2025-01-03 -> 0-unstable-2025-01-10
Diff: f4f4d30998...c98938776d
2025-01-12 10:12:26 +00:00
Oskar Manhart
c98938776d Merge pull request #376 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-10 10:02:59 +01:00
github-actions[bot]
e897292a34 winapps: 0-unstable-2025-01-01 -> 0-unstable-2025-01-03
Diff: 983a305518...f4f4d30998
2025-01-05 10:12:40 +00:00
Oskar Manhart
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
Oskar Manhart
03c702a662 fmt: reindent file 2025-01-03 11:16:46 +01:00
pre-commit-ci[bot]
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
stceum
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
Oskar Manhart
c554632fe1 Merge pull request #372 from winapps-org/chore/nix_update_actions
Packages: update
2025-01-01 19:08:08 +01:00
github-actions[bot]
996ff12c7f winapps: 0-unstable-2024-12-22 -> 0-unstable-2025-01-01
Diff: ea1bd4f319...983a305518
2025-01-01 16:29:10 +00:00
Oskar Manhart
983a305518 doc: usage of binary cache 2025-01-01 17:27:36 +01:00
Oskar Manhart
8e85c63ee5 feat: use cachix 2025-01-01 17:12:32 +01:00
Oskar Manhart
f25f319efa Merge pull request #369 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-29 12:41:50 +01:00
github-actions[bot]
854bc4e85f winapps: 0-unstable-2024-12-18 -> 0-unstable-2024-12-22
Diff: a78982bda6...ea1bd4f319
2024-12-29 10:12:14 +00:00
Oskar Manhart
ea1bd4f319 Merge pull request #363 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-22 17:46:04 +01:00
github-actions[bot]
dd2c5ee25d winapps: 0-unstable-2024-12-15 -> 0-unstable-2024-12-18
Diff: af238bd4ba...a78982bda6
2024-12-22 10:12:03 +00:00
Oskar Manhart
a78982bda6 fix: remove bad escape characters 2024-12-18 10:58:39 +01:00
Oskar Manhart
b1e2107b8f Merge pull request #359 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-15 11:50:30 +01:00
github-actions[bot]
f27c3482a3 winapps: 0-unstable-2024-12-07 -> 0-unstable-2024-12-15
Diff: 3f44fc3b0f...af238bd4ba
2024-12-15 10:41:34 +00:00
Oskar Manhart
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
Oskar Manhart
8e3a3bfc9c doc: run install.bat on libvirt 2024-12-13 20:22:25 +01:00
Oskar Manhart
564d28bb7f doc: remove /network:lan for troubleshooting
As mentioned in #354
2024-12-13 10:35:43 +01:00
Oskar Manhart
9e9eae842d Merge pull request #357 from molostovvs/feat/linqpad-smss
Add linqpad8 and ssms20
2024-12-13 10:31:06 +01:00
pre-commit-ci[bot]
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
Victor Molostov
a06a28b8ad feat: add linqpad8 and ssms20 2024-12-13 10:43:04 +03:00
Oskar Manhart
275d0cb975 doc: freerdp3-x11 on debian needs backports
Closes #243
2024-12-08 11:52:31 +01:00
Oskar Manhart
d3167845c6 Merge pull request #352 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-08 11:43:51 +01:00
github-actions[bot]
c065c0decb winapps: 0-unstable-2024-12-01 -> 0-unstable-2024-12-07
Diff: a2fb111506...3f44fc3b0f
2024-12-08 10:13:27 +00:00
Oskar Manhart
3f44fc3b0f doc: need to set a password on freerdp3.9+
Closes #305
2024-12-07 18:05:23 +01:00
Oskar Manhart
6be98c5224 feat: add /network:lan to default freerdp flags for increased perf
Closes #339
2024-12-07 09:42:44 +01:00
Oskar Manhart
220bd55964 Merge pull request #342 from winapps-org/chore/nix_update_actions
Packages: update
2024-12-01 12:25:49 +01:00
github-actions[bot]
f326126705 winapps: 0-unstable-2024-11-04 -> 0-unstable-2024-12-01
Diff: 5fb2c7b0fd...a2fb111506
2024-12-01 11:09:29 +00:00
Oskar Manhart
a2fb111506 feat: cache action runs 2024-12-01 12:07:49 +01:00
Oskar Manhart
43dc3c29f4 fix: update nix-update action 2024-12-01 11:54:28 +01:00
Oskar Manhart
1594b388c7 fix: use ghcr image for podman compat
Closes #337
2024-11-29 11:29:52 +01:00
Oskar Manhart
556095a684 Merge pull request #336 from mindset-tk/main
Fix logging to show correct date/times
2024-11-28 20:22:14 +01:00
Oskar Manhart
a061cf1ba2 doc: workaround for setting LIBVIRT_DEFAULT_URI
See #310
2024-11-28 15:04:22 +01:00
mindset-tk
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
Oskar Manhart
fe6fa6220b Merge pull request #335 from eylenburg/readme-fix
Fix docker.md and add OpenSUSE dependencies
2024-11-25 15:19:15 +01:00
eylenburg
122053a078 Add OpenSUSE dependencies 2024-11-25 14:13:25 +00:00
eylenburg
68b13b2da1 Update docker.md 2024-11-25 11:49:08 +00:00
Oskar Manhart
9073afa69d Merge pull request #321 from winapps-org/chore/nix_update_actions
Packages: update
2024-11-10 13:13:04 +01:00
github-actions[bot]
3779f507c9 winapps: 0-unstable-2024-11-01 -> 0-unstable-2024-11-04
Diff: dd89b2748a...5fb2c7b0fd
2024-11-10 10:11:35 +00:00
Oskar Manhart
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
github-actions[bot]
fca2618dee winapps: 0-unstable-2024-10-09 -> 0-unstable-2024-11-01
Diff: c8dcccad08...dd89b2748a
2024-11-01 12:57:56 +00:00
Oskar Manhart
dd89b2748a Merge branch 'main' of github.com:winapps-org/winapps 2024-11-01 13:56:27 +01:00
Oskar Manhart
6fb023a1c6 fix(ci): allow passing extra args to nix-update 2024-11-01 13:55:58 +01:00
Oskar Manhart
c330e29f27 fix(ci): allow passing extra args to nix-update 2024-11-01 13:46:45 +01:00
Oskar Manhart
3865e2abe7 fix(ci): update actions 2024-11-01 13:29:56 +01:00
Oskar Manhart
be5d020a04 fix(ci): ignore patches 2024-11-01 13:26:29 +01:00
Oskar Manhart
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
Oskar Manhart
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
Oskar Manhart
6dd5038c46 Merge branch 'main' into patch-1 2024-11-01 12:28:58 +01:00
Oskar Manhart
b9aa42856d Merge pull request #259 from itiligent/main
Clean up network profiles
2024-11-01 12:26:30 +01:00
Oskar Manhart
b18efc4497 fix: don't change mode for owner but for current user 2024-11-01 12:23:11 +01:00
Oskar Manhart
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
Oskar Manhart
df54d08955 feat: properly set versions 2024-10-22 21:07:29 +02:00
Oskar Manhart
7277f71b9c feat: auto-update flake weekly 2024-10-22 21:04:17 +02:00
Oskar Manhart
e630b5a898 feat: update packages 2024-10-22 21:03:55 +02:00
Oskar Manhart
e8fbc95e3e Merge branch 'feat-nix-packaging' of github.com:winapps-org/winapps into feat-nix-packaging 2024-10-22 20:50:45 +02:00
Oskar Manhart
9d455ba753 feat: flake-compat 2024-10-22 20:49:32 +02:00
whitewolf101
74f0624fad Delete apps/mirc/1
File not needed
2024-10-14 18:48:24 -05:00
whitewolf101
22032284fc Add files via upload 2024-10-14 18:47:34 -05:00
whitewolf101
993129af37 Create new app folder 2024-10-14 18:46:35 -05:00
Oskar Manhart
c8dcccad08 Merge pull request #291 from Username404-59/main
README.md: Update Gentoo dependencies list
2024-10-09 11:59:36 +02:00
Username404-59
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
Oskar Manhart
e8dc55a83a fix: typo 2024-10-05 09:55:56 +02:00
Oskar Manhart
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
Rainhard
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
Oskar Manhart
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
michel memeteau
0a7bf57a13 Merge pull request #263 from MopigamesYT/main
Fix netcat package typo for arch systems
2024-09-19 17:09:14 +02:00
michel memeteau
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
Margot
602aee2b9b Merge branch 'winapps-org:main' into main 2024-09-19 15:50:23 +02:00
Margot
39063a3fff Update README.md 2024-09-19 15:49:30 +02:00
Oskar Manhart
93bdf8856f fix: remove license header from reg file (closes #261) 2024-09-19 12:47:56 +02:00
Rohan Barar
7cbe3ff07c Merge pull request #262 from KernelGhost/main
Fixed #192 (Clarified ambiguous Debian package)
2024-09-19 18:49:31 +10:00
Rohan Barar
b4c32b09b9 Fixed #192 (Clarified ambiguous Debian package) 2024-09-19 18:38:12 +10:00
Oskar Manhart
86bfd8bdf1 fix: remove trailing spaces 2024-09-18 17:59:58 +02:00
Oskar Manhart
2a70f7f3a2 fucking WORK 2024-09-18 17:56:49 +02:00
Oskar Manhart
fd90dd837d fuck this honestly 2024-09-18 17:51:08 +02:00
Oskar Manhart
e6e1e26c14 Update lictool.yaml 2024-09-18 17:40:58 +02:00
Oskar Manhart
b854224cef fix(ci): run lictool without pre-commit 2024-09-18 17:37:06 +02:00
itiligent
cd2a73ff30 Cleanup network profiles 2024-09-18 23:11:49 +10:00
itiligent
4b22993e9c Merge branch 'winapps-org:main' into main 2024-09-18 18:02:55 +10:00
Oskar Manhart
0468d3b4cb doc: update readme in regards to #233 2024-09-18 09:51:38 +02:00
pre-commit-ci[bot]
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
itiligent
e839d1fdcd change script path to %windir% 2024-09-18 15:26:41 +10:00
pre-commit-ci[bot]
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
itiligent
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
Oskar Manhart
509a782a4a Merge branch 'main' into feat-nix-packaging 2024-09-14 17:50:30 +02:00
Oskar Manhart
7f3cdcee4d fix: fix malformed patch 2024-09-09 17:50:55 +02:00
Oskar Manhart
60b3e809fb Merge remote-tracking branch 'origin/main' into feat-nix-packaging 2024-09-09 17:22:48 +02:00
Oskar Manhart
b044cb41c7 fix: properly name patches & remove nixfmt pre-commit hook since it requires GHC & hackage 2024-09-09 16:13:15 +02:00
Oskar Manhart
28e958e600 feat: use patches 2024-09-09 11:09:42 +02:00
Oskar Manhart
7d5cce374c feat: use nixfmt 2024-09-09 10:31:41 +02:00
Oskar Manhart
b0f2830224 feat: bump version 2024-09-08 12:27:36 +02:00
Oskar Manhart
f4c0a454b7 fix: properly escape ${} 2024-09-08 11:46:48 +02:00
Oskar Manhart
b7b5b34b27 Merge branch 'main' into feat-nix-packaging 2024-09-08 11:42:44 +02:00
Oskar Manhart
26a2f13815 feat: bump version 2024-09-07 13:30:35 +02:00
Oskar Manhart
00141f1d54 fix: do not symlink binaries on nix 2024-09-07 13:05:09 +02:00
Oskar Manhart
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
124 changed files with 2580 additions and 819 deletions

59
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -0,0 +1,59 @@
# 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 Developer Certificate of Origin, agreeing to license their contribution under the AGPLv3. Historically, we used to require a CLA because we had to relicense the codebase from ARR to AGPLv3; however, this is being phased out. You can find a copy of the DCO below or under https://developercertificate.org/.
- 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.
## Guidelines for pre-defined applications
Some pre-defined applications contain a header like:
```
# Copyright (c) 2024 Fmstrat
# All rights reserved.
#
# SPDX-License-Identifier: Proprietary
```
This is for historic reasons, see [LICENSE.md](../LICENSE.md) and [COPYRIGHT.md](../COPYRIGHT.md).
When contributing new applications, please *do not* include such a header.
## Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

65
.github/ISSUE_TEMPLATE/1-bug.yml vendored Normal file
View File

@@ -0,0 +1,65 @@
name: Bug Report
description: File a bug report.
labels: ["triage"]
body:
- type: markdown
attributes:
value: |
We cannot fix nor support all bugs caused by FreeRDP, especially on Wayland.
If you experience visual bugs, please open a discussion instead.
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: input
id: freerdp
attributes:
label: Your FreeRDP version and where you got it from
placeholder: "FreeRDP 3.10 (Debian Backports)"
validations:
required: true
- type: input
id: distro
attributes:
label: Your Linux distribution and version
placeholder: "Debian Trixie"
validations:
required: true
- type: textarea
id: config
attributes:
label: Your `winapps.conf`
description: Please copy and paste your `winapps.conf`. Make sure to not include any sensible data. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
description: Give the output of WinApps, FreeRDP etc. where / if applicable.
render: shell
- type: checkboxes
id: terms
attributes:
label: Terms
options:
- label: I am running the latest version.
required: true
- label: To the best of my knowledge, this is a bug and not a setup nor a FreeRDP problem.
required: true
- label: I have checked for duplicate issues.
required: true
- label: I agree to follow this project's Code of Conduct.
required: true

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Community Support
url: https://github.com/winapps-org/winapps/discussions
about: Get help with non-bug issues here. Please use this instead of filing bug reports.

65
.github/cla-signatures.csv vendored Normal file
View File

@@ -0,0 +1,65 @@
User Name;Repository Owner;Repository Name;CLA Title;Gist URL;Gist Version;Signed At;Revoked At;Signed for Organization
sparky3387;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-31T12:31:32.643Z;2025-09-04T11:04:01.000Z;TRUE
matheusmelo18;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-30T15:57:01.072Z;2025-09-04T11:04:01.000Z;TRUE
Libadoxon;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-29T09:53:59.385Z;2025-09-04T11:04:01.000Z;TRUE
Dreamail;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-29T06:43:07.752Z;2025-09-04T11:04:01.000Z;TRUE
queenkjuul;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-27T16:19:30.937Z;2025-09-04T11:04:01.000Z;TRUE
DevZiaus;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-25T21:17:17.792Z;2025-09-04T11:04:01.000Z;TRUE
nlogozzo;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-24T15:25:25.197Z;2025-09-04T11:04:01.000Z;TRUE
osalbahr;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-24T15:09:01.053Z;2025-09-04T11:04:01.000Z;TRUE
9Morello;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-19T12:14:39.707Z;2025-09-04T11:04:01.000Z;TRUE
Sunrongguo2008;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-08-06T15:56:33.681Z;2025-09-04T11:04:01.000Z;TRUE
wovw;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-07-31T04:14:50.710Z;2025-09-04T11:04:01.000Z;TRUE
denisstrizhkin;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-07-07T14:43:28.482Z;2025-09-04T11:04:01.000Z;TRUE
joeshachaf;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-06-29T21:17:46.041Z;2025-09-04T11:04:01.000Z;TRUE
Aldo-f;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-06-19T19:26:32.522Z;2025-09-04T11:04:01.000Z;TRUE
Mr-MyDooM;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-06-10T03:01:36.680Z;2025-09-04T11:04:01.000Z;TRUE
Theowulf-dev;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-06-10T00:44:09.838Z;2025-09-04T11:04:01.000Z;TRUE
JoAllg;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-06-04T21:04:46.931Z;2025-09-04T11:04:01.000Z;TRUE
sears-s;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-05-24T02:56:00.518Z;2025-09-04T11:04:01.000Z;TRUE
egvrl;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-05-15T14:33:38.598Z;2025-09-04T11:04:01.000Z;TRUE
thefiredragon;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-04-19T19:06:36.941Z;2025-09-04T11:04:01.000Z;TRUE
arwarw;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-04-19T16:12:55.873Z;2025-09-04T11:04:01.000Z;TRUE
linull24;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-04-11T17:32:09.319Z;2025-09-04T11:04:01.000Z;TRUE
kroese;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-04-02T15:26:03.840Z;2025-09-04T11:04:01.000Z;TRUE
dasinking;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-03-25T00:54:49.660Z;2025-09-04T11:04:01.000Z;TRUE
tstormn3tw0rk;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-03-21T07:08:26.583Z;2025-09-04T11:04:01.000Z;TRUE
limemane;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-03-10T16:38:38.276Z;2025-09-04T11:04:01.000Z;TRUE
borekon;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-02-24T11:40:24.101Z;2025-09-04T11:04:01.000Z;TRUE
whitewolf101;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-02-23T03:29:22.061Z;2025-09-04T11:04:01.000Z;TRUE
raffaem;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-02-16T14:28:21.523Z;2025-09-04T11:04:01.000Z;TRUE
mbekkomo;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-02-02T11:40:36.462Z;2025-09-04T11:04:01.000Z;TRUE
toastedcrumpets;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-01-16T13:53:21.167Z;2025-09-04T11:04:01.000Z;TRUE
starbr3aker;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-01-12T17:30:37.473Z;2025-09-04T11:04:01.000Z;TRUE
Deluxe-7;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-01-11T01:48:33.638Z;2025-09-04T11:04:01.000Z;TRUE
stceum;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2025-01-03T07:14:43.695Z;2025-09-04T11:04:01.000Z;TRUE
molostovvs;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-12-13T07:48:02.950Z;2025-09-04T11:04:01.000Z;TRUE
mindset-tk;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-11-25T22:30:30.062Z;2025-09-04T11:04:01.000Z;TRUE
lunatic-gh;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-11-18T20:39:24.413Z;2025-09-04T11:04:01.000Z;TRUE
Username404-59;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-10-08T21:06:39.926Z;2025-09-04T11:04:01.000Z;TRUE
CHN-beta;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-10-05T06:12:56.133Z;2025-09-04T11:04:01.000Z;TRUE
eylenburg;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-10-02T13:49:45.131Z;2025-09-04T11:04:01.000Z;TRUE
tristanRW;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-09-23T14:48:15.158Z;2025-09-04T11:04:01.000Z;TRUE
MopigamesYT;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-09-19T14:54:16.014Z;2025-09-04T11:04:01.000Z;TRUE
queler;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-09-09T03:33:59.760Z;2025-09-04T11:04:01.000Z;TRUE
C0rn3j;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-09-01T22:30:46.600Z;2025-09-04T11:04:01.000Z;TRUE
FixeQyt;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-08-30T14:22:17.912Z;2025-09-04T11:04:01.000Z;TRUE
RheaBarar;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-08-19T07:36:53.003Z;2025-09-04T11:04:01.000Z;TRUE
Coruscant11;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-08-18T12:46:39.393Z;2025-09-04T11:04:01.000Z;TRUE
escapefreeg;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-08-11T03:04:17.227Z;2025-09-04T11:04:01.000Z;TRUE
itiligent;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-07-26T04:13:53.616Z;2025-09-04T11:04:01.000Z;TRUE
gordoncheong;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-07-25T11:14:28.928Z;2025-09-04T11:04:01.000Z;TRUE
bkanuka;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-07-08T19:31:49.299Z;2025-09-04T11:04:01.000Z;TRUE
Kazevic;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-07-02T06:46:56.451Z;2025-09-04T11:04:01.000Z;TRUE
KernelGhost;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-07-01T06:44:06.681Z;2025-09-04T11:04:01.000Z;TRUE
MrTumnis;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-06-13T00:24:25.715Z;2025-09-04T11:04:01.000Z;TRUE
Alchemi1963;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-05-30T21:48:08.692Z;2025-09-04T11:04:01.000Z;TRUE
GreatNovaDragon;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2024-04-20T20:34:17.381Z;2024-09-21T21:48:55.765Z;TRUE
Matt-M-3;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-12-04T17:31:44.383Z;2025-09-04T11:04:01.000Z;TRUE
Hyperspeed1313;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-11-10T18:19:32.080Z;2025-09-04T11:04:01.000Z;TRUE
notPlancha;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-09-04T18:07:58.859Z;2025-09-04T11:04:01.000Z;TRUE
freechelmi;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-07-16T08:31:50.083Z;2025-09-04T11:04:01.000Z;TRUE
LDprg;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-07-16T07:08:14.876Z;2025-09-04T11:04:01.000Z;TRUE
fbartels;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-07-15T19:49:07.019Z;2025-09-04T11:04:01.000Z;TRUE
oskardotglobal;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-07-15T15:09:49.368Z;2025-09-04T11:04:01.000Z;TRUE
Leonardo-DGS;winapps-org;;fcla.md;https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5;1f2d08888e405a91582607bf95176a5755363929;2023-07-15T15:07:40.778Z;2025-09-04T11:04:01.000Z;TRUE
1 User Name Repository Owner Repository Name CLA Title Gist URL Gist Version Signed At Revoked At Signed for Organization
2 sparky3387 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-31T12:31:32.643Z 2025-09-04T11:04:01.000Z TRUE
3 matheusmelo18 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-30T15:57:01.072Z 2025-09-04T11:04:01.000Z TRUE
4 Libadoxon winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-29T09:53:59.385Z 2025-09-04T11:04:01.000Z TRUE
5 Dreamail winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-29T06:43:07.752Z 2025-09-04T11:04:01.000Z TRUE
6 queenkjuul winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-27T16:19:30.937Z 2025-09-04T11:04:01.000Z TRUE
7 DevZiaus winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-25T21:17:17.792Z 2025-09-04T11:04:01.000Z TRUE
8 nlogozzo winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-24T15:25:25.197Z 2025-09-04T11:04:01.000Z TRUE
9 osalbahr winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-24T15:09:01.053Z 2025-09-04T11:04:01.000Z TRUE
10 9Morello winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-19T12:14:39.707Z 2025-09-04T11:04:01.000Z TRUE
11 Sunrongguo2008 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-08-06T15:56:33.681Z 2025-09-04T11:04:01.000Z TRUE
12 wovw winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-07-31T04:14:50.710Z 2025-09-04T11:04:01.000Z TRUE
13 denisstrizhkin winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-07-07T14:43:28.482Z 2025-09-04T11:04:01.000Z TRUE
14 joeshachaf winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-06-29T21:17:46.041Z 2025-09-04T11:04:01.000Z TRUE
15 Aldo-f winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-06-19T19:26:32.522Z 2025-09-04T11:04:01.000Z TRUE
16 Mr-MyDooM winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-06-10T03:01:36.680Z 2025-09-04T11:04:01.000Z TRUE
17 Theowulf-dev winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-06-10T00:44:09.838Z 2025-09-04T11:04:01.000Z TRUE
18 JoAllg winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-06-04T21:04:46.931Z 2025-09-04T11:04:01.000Z TRUE
19 sears-s winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-05-24T02:56:00.518Z 2025-09-04T11:04:01.000Z TRUE
20 egvrl winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-05-15T14:33:38.598Z 2025-09-04T11:04:01.000Z TRUE
21 thefiredragon winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-04-19T19:06:36.941Z 2025-09-04T11:04:01.000Z TRUE
22 arwarw winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-04-19T16:12:55.873Z 2025-09-04T11:04:01.000Z TRUE
23 linull24 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-04-11T17:32:09.319Z 2025-09-04T11:04:01.000Z TRUE
24 kroese winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-04-02T15:26:03.840Z 2025-09-04T11:04:01.000Z TRUE
25 dasinking winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-03-25T00:54:49.660Z 2025-09-04T11:04:01.000Z TRUE
26 tstormn3tw0rk winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-03-21T07:08:26.583Z 2025-09-04T11:04:01.000Z TRUE
27 limemane winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-03-10T16:38:38.276Z 2025-09-04T11:04:01.000Z TRUE
28 borekon winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-02-24T11:40:24.101Z 2025-09-04T11:04:01.000Z TRUE
29 whitewolf101 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-02-23T03:29:22.061Z 2025-09-04T11:04:01.000Z TRUE
30 raffaem winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-02-16T14:28:21.523Z 2025-09-04T11:04:01.000Z TRUE
31 mbekkomo winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-02-02T11:40:36.462Z 2025-09-04T11:04:01.000Z TRUE
32 toastedcrumpets winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-01-16T13:53:21.167Z 2025-09-04T11:04:01.000Z TRUE
33 starbr3aker winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-01-12T17:30:37.473Z 2025-09-04T11:04:01.000Z TRUE
34 Deluxe-7 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-01-11T01:48:33.638Z 2025-09-04T11:04:01.000Z TRUE
35 stceum winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2025-01-03T07:14:43.695Z 2025-09-04T11:04:01.000Z TRUE
36 molostovvs winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-12-13T07:48:02.950Z 2025-09-04T11:04:01.000Z TRUE
37 mindset-tk winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-11-25T22:30:30.062Z 2025-09-04T11:04:01.000Z TRUE
38 lunatic-gh winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-11-18T20:39:24.413Z 2025-09-04T11:04:01.000Z TRUE
39 Username404-59 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-10-08T21:06:39.926Z 2025-09-04T11:04:01.000Z TRUE
40 CHN-beta winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-10-05T06:12:56.133Z 2025-09-04T11:04:01.000Z TRUE
41 eylenburg winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-10-02T13:49:45.131Z 2025-09-04T11:04:01.000Z TRUE
42 tristanRW winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-09-23T14:48:15.158Z 2025-09-04T11:04:01.000Z TRUE
43 MopigamesYT winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-09-19T14:54:16.014Z 2025-09-04T11:04:01.000Z TRUE
44 queler winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-09-09T03:33:59.760Z 2025-09-04T11:04:01.000Z TRUE
45 C0rn3j winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-09-01T22:30:46.600Z 2025-09-04T11:04:01.000Z TRUE
46 FixeQyt winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-08-30T14:22:17.912Z 2025-09-04T11:04:01.000Z TRUE
47 RheaBarar winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-08-19T07:36:53.003Z 2025-09-04T11:04:01.000Z TRUE
48 Coruscant11 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-08-18T12:46:39.393Z 2025-09-04T11:04:01.000Z TRUE
49 escapefreeg winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-08-11T03:04:17.227Z 2025-09-04T11:04:01.000Z TRUE
50 itiligent winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-07-26T04:13:53.616Z 2025-09-04T11:04:01.000Z TRUE
51 gordoncheong winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-07-25T11:14:28.928Z 2025-09-04T11:04:01.000Z TRUE
52 bkanuka winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-07-08T19:31:49.299Z 2025-09-04T11:04:01.000Z TRUE
53 Kazevic winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-07-02T06:46:56.451Z 2025-09-04T11:04:01.000Z TRUE
54 KernelGhost winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-07-01T06:44:06.681Z 2025-09-04T11:04:01.000Z TRUE
55 MrTumnis winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-06-13T00:24:25.715Z 2025-09-04T11:04:01.000Z TRUE
56 Alchemi1963 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-05-30T21:48:08.692Z 2025-09-04T11:04:01.000Z TRUE
57 GreatNovaDragon winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2024-04-20T20:34:17.381Z 2024-09-21T21:48:55.765Z TRUE
58 Matt-M-3 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-12-04T17:31:44.383Z 2025-09-04T11:04:01.000Z TRUE
59 Hyperspeed1313 winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-11-10T18:19:32.080Z 2025-09-04T11:04:01.000Z TRUE
60 notPlancha winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-09-04T18:07:58.859Z 2025-09-04T11:04:01.000Z TRUE
61 freechelmi winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-07-16T08:31:50.083Z 2025-09-04T11:04:01.000Z TRUE
62 LDprg winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-07-16T07:08:14.876Z 2025-09-04T11:04:01.000Z TRUE
63 fbartels winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-07-15T19:49:07.019Z 2025-09-04T11:04:01.000Z TRUE
64 oskardotglobal winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-07-15T15:09:49.368Z 2025-09-04T11:04:01.000Z TRUE
65 Leonardo-DGS winapps-org fcla.md https://gist.github.com/oskardotglobal/35f0a72eb45fcc7087e535561383dbc5 1f2d08888e405a91582607bf95176a5755363929 2023-07-15T15:07:40.778Z 2025-09-04T11:04:01.000Z TRUE

View File

@@ -1,21 +0,0 @@
on:
pull_request:
push:
branches: [main]
jobs:
lictool:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: pre-commit/action@v3.0.1
with:
extra_args: license-tools
- uses: pre-commit-ci/lite-action@v1.0.2
if: always()

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

5
.gitignore vendored Normal file
View File

@@ -0,0 +1,5 @@
/.idea
/.vscode
/result
.DS_Store
**/.DS_Store

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "WinApps-Launcher"]
path = WinApps-Launcher
url = https://github.com/winapps-org/WinApps-Launcher.git

View File

@@ -1,70 +0,0 @@
{
"author": {
"from_git": true,
"latest_year_only": true
},
"title": false,
"style_override_for_suffix": {
".yaml": "POUND_STYLE",
".ps1": "POUND_STYLE",
".bat": "BATCH_STYLE",
"": "POUND_STYLE"
},
"exclude": [
"^\\.[^/]+",
"/\\.[^/]+",
"^(.+)\\.(md|svg|png|reg|gif)",
"^(fonts|WinApps-Launcher)(/.*)?",
"apps/access/info",
"apps/access-o365-x86/info",
"apps/access-x86/info",
"apps/acrobat-x-pro/info",
"apps/adobe-cc/info",
"apps/aftereffects-cc/info",
"apps/audition-cc/info",
"apps/bridge-cc/info",
"apps/bridge-cs6/info",
"apps/bridge-cs6-x86/info",
"apps/cmd/info",
"apps/excel/info",
"apps/excel-o365-x86/info",
"apps/excel-x86/info",
"apps/explorer/info",
"apps/iexplorer/info",
"apps/illustrator-cc/info",
"apps/indesign-cc/info",
"apps/lightroom-cc/info",
"apps/onenote/info",
"apps/onenote-o365-x86/info",
"apps/onenote-x86/info",
"apps/outlook/info",
"apps/outlook-o365-x86/info",
"apps/outlook-x86/info",
"apps/photoshop-cc/info",
"apps/photoshop-cs6/info",
"apps/photoshop-cs6-x86/info",
"apps/powerpoint/info",
"apps/powerpoint-o365-x86/info",
"apps/powerpoint-x86/info",
"apps/powershell/info",
"apps/publisher/info",
"apps/publisher-o365-x86/info",
"apps/publisher-x86/info",
"apps/word/info",
"apps/word-o365-x86/info",
"apps/word-x86/info",
"apps/access-o365/info",
"apps/excel-o365/info",
"apps/onenote-o365/info",
"apps/outlook-o365/info",
"apps/powerpoint-o365/info",
"apps/publisher-o365/info",
"apps/word-o365/info",
"install/inquirer.sh",
"oem/RDPApps.reg"
],
"license": false,
"force_author": false,
"force_license": true,
"custom_license": "SPDX-License-Identifier: AGPL-3.0-or-later"
}

View File

@@ -1,6 +1,4 @@
ci:
autoupdate_branch: "rewrite"
skip: [license-tools]
exclude: ^(.+)\.patch$
repos:
- repo: https://github.com/Lucas-C/pre-commit-hooks
@@ -49,8 +47,3 @@ repos:
rev: v0.10.0.1
hooks:
- id: shellcheck
- repo: https://github.com/emzeat/mz-lictools
rev: v2.7.0
hooks:
- id: license-tools

View File

@@ -1,11 +0,0 @@
# 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-assitant 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.
All source code files shall have a valid SPDX-Identifier. For more information, see <https://spdx.dev/learn/handling-license-info/>.
This identifier will be generated by a pre-commit hook most of the time.

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.

View File

@@ -1,12 +1,14 @@
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.
However, almost all parts of the codebase have been rewritten and all new contributions require signing a Developer Certificate of Origin (or historically, a CLA; see [CONTRIBUTING.md](./.github/CONTRIBUTING.md)), making most parts of the codebase AGPLv3.
Refer to a specific file for it's respective license.
Refer to a specific file for its respective license.
# GNU AFFERO GENERAL PUBLIC LICENSE

366
README.md
View File

@@ -1,10 +1,10 @@
<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="./docs/readme/banner_dark.svg#gh-dark-mode-only"/></p>
<p align="center"><img align="center" width="700" src="./docs/readme/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 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>
<p align="center"><img src="./docs/readme/demo.png" width=1000 alt="WinApps Demonstration."></p>
## Underlying Mechanism
WinApps works by:
@@ -17,21 +17,22 @@ 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 a [User Agent Switcher](https://github.com/ray-lothian/UserAgent-Switcher/) browser extension and set the User-Agent to Windows, as the Office webapps typically hide the "Open in Desktop App" option for Linux users.)
## Supported Applications
**WinApps supports <u>*ALL*</u> Windows applications.**
**WinApps supports <u>*ALL*</u> Windows applications.** Support does not, however, extend to kernel-level anti-cheat systems (e.g. Riot Vanguard).
Universal application support is achieved by:
1. Scanning Windows for any officially supported applications (list below).
1. Scanning Windows for any community tested applications (list below).
2. Scanning Windows for any other `.exe` files listed within the Windows Registry.
Officially supported applications benefit from high-resolution icons and pre-populated MIME types. This enables file managers to determine which Windows applications should open files based on file extensions. Icons for other detected applications are pulled from `.exe` files.
Community tested applications benefit from high-resolution icons and pre-populated MIME types. This enables file managers to determine which Windows applications should open files based on file extensions. Icons for other detected applications are pulled from `.exe` files.
Contributing to the list of supported applications is encouraged through submission of pull requests! Please help us grow the WinApps community.
*Please note that the provided list of officially supported applications is community-driven. As such, some applications may not be tested and verified by the WinApps team.*
*Please note that the provided list of community tested applications is community-driven. As such, some applications may not be tested and verified by the WinApps team.*
### Officially Supported Applications
### Community Tested Applications
<table cellpadding="10" cellspacing="0" border="0">
<tr>
<!-- Adobe Acrobat Pro -->
@@ -120,9 +121,19 @@ 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>
<!-- Autodesk Fusion 360 -->
<td>
<img src="apps/fusion-360/icon.svg" width="100">
</td>
<td>
<b>Autodesk Fusion 360</b><br>
<i><a href="https://commons.wikimedia.org/wiki/File:Fusion360_Logo.svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Command Prompt -->
<td>
<img src="apps/cmd/icon.svg" width="100">
@@ -132,8 +143,6 @@ Contributing to the list of supported applications is encouraged through submiss
(cmd.exe)<br>
<i><a href="https://github.com/microsoft/terminal/blob/main/res/terminal/Terminal.svg">Icon</a> under <a href="https://github.com/microsoft/terminal/blob/main/LICENSE">MIT license</a>.</i>
</td>
</tr>
<tr>
<!-- File Explorer -->
<td>
<img src="apps/explorer/icon.svg" width="100">
@@ -143,6 +152,8 @@ Contributing to the list of supported applications is encouraged through submiss
(Windows Explorer)<br>
<i><a href="https://commons.wikimedia.org/wiki/File:Windows_Explorer.svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Internet Explorer -->
<td>
<img src="apps/iexplorer/icon.svg" width="100">
@@ -152,8 +163,6 @@ Contributing to the list of supported applications is encouraged through submiss
(11)<br>
<i><a href="https://commons.wikimedia.org/wiki/File:Internet_Explorer_10%2B11_logo.svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Access -->
<td>
<img src="apps/access/icon.svg" width="100">
@@ -163,6 +172,8 @@ Contributing to the list of supported applications is encouraged through submiss
(2016, 2019, o365)<br>
<i><a href="https://commons.wikimedia.org/wiki/File:Microsoft_Office_Access_(2019-present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Excel -->
<td>
<img src="apps/excel/icon.svg" width="100">
@@ -172,8 +183,6 @@ Contributing to the list of supported applications is encouraged through submiss
(2016, 2019, o365)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Office_Excel_(2019%E2%80%93present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Word -->
<td>
<img src="apps/word/icon.svg" width="100">
@@ -183,6 +192,8 @@ Contributing to the list of supported applications is encouraged through submiss
(2016, 2019, o365)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Office_Word_(2019%E2%80%93present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft OneNote -->
<td>
<img src="apps/onenote/icon.svg" width="100">
@@ -192,8 +203,6 @@ Contributing to the list of supported applications is encouraged through submiss
(2016, 2019, o365)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Office_OneNote_(2019%E2%80%93present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Outlook -->
<td>
<img src="apps/outlook/icon.svg" width="100">
@@ -203,6 +212,8 @@ Contributing to the list of supported applications is encouraged through submiss
(2016, 2019, o365)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Office_Outlook_(2018%E2%80%93present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft PowerPoint -->
<td>
<img src="apps/powerpoint/icon.svg" width="100">
@@ -212,8 +223,6 @@ Contributing to the list of supported applications is encouraged through submiss
(2016, 2019, o365)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Office_PowerPoint_(2019%E2%80%93present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Publisher -->
<td>
<img src="apps/publisher/icon.svg" width="100">
@@ -223,6 +232,8 @@ Contributing to the list of supported applications is encouraged through submiss
(2016, 2019, o365)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Office_Publisher_(2019-present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Visio -->
<td>
<img src="apps/visio/icon.svg" width="100">
@@ -232,8 +243,6 @@ Contributing to the list of supported applications is encouraged through submiss
(Standard/Pro. 2021, Plan 2)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Office_Visio_(2019).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Project -->
<td>
<img src="apps/project/icon.svg" width="100">
@@ -243,6 +252,8 @@ Contributing to the list of supported applications is encouraged through submiss
(Standard/Pro. 2021, Plan 3/5)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Microsoft_Project_(2019present).svg">Icon</a> in the Public Domain.</i>
</td>
</tr>
<tr>
<!-- Microsoft Visual Studio -->
<td>
<img src="apps/visual-studio-pro/icon.svg" width="100">
@@ -252,6 +263,14 @@ Contributing to the list of supported applications is encouraged through submiss
(Comm./Pro./Ent. 2022)<br>
<i><a href="https://en.m.wikipedia.org/wiki/File:Visual_Studio_Icon_2022.svg">Icon</a> in the Public Domain.</i>
</td>
<!-- 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>
</tr>
<tr>
<!-- PowerShell -->
@@ -264,7 +283,7 @@ Contributing to the list of supported applications is encouraged through submiss
</td>
<!-- Windows -->
<td>
<img src="icons/windows.svg" width="100">
<img src="install/windows.svg" width="100">
</td>
<td>
<b>Windows</b><br>
@@ -282,35 +301,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 12 (_"bookworm"_), 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 +356,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 +371,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 +400,21 @@ WAFLAVOR="docker"
# - '180'
RDP_SCALE="100"
# [ADDITIONAL FREERDP FLAGS & ARGUMENTS]
# DEFAULT VALUE: '/cert:tofu /sound /microphone'
# VALID VALUES: See https://github.com/awakecoding/FreeRDP-Manuals/blob/master/User/FreeRDP-User-Manual.markdown
RDP_FLAGS="/cert:tofu /sound /microphone"
# [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.
# REFERENCE: 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:
@@ -389,8 +427,7 @@ DEBUG="true"
# [AUTOMATICALLY PAUSE WINDOWS]
# NOTES:
# - This is currently INCOMPATIBLE with 'docker' and 'manual'.
# - See https://github.com/dockur/windows/issues/674
# - This is currently INCOMPATIBLE with 'manual'.
# DEFAULT VALUE: 'off'
# VALID VALUES:
# - 'on'
@@ -414,12 +451,48 @@ 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"
# WINDOWS BOOT
# - The maximum time (in seconds) to wait for the Windows VM to boot if it is not running, before attempting to launch an application.
# DEFAULT VALUE: '120'
BOOT_TIMEOUT="120"
```
> [!NOTE]
> [!IMPORTANT]
> To safeguard your Windows password, ensure `~/.config/winapps/winapps.conf` is accessible only by your user account.
> ```bash
> chown $(whoami):$(whoami) ~/.config/winapps/winapps.conf
> chmod 600 ~/.config/winapps/winapps.conf
> ```
> [!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,26 +501,79 @@ 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.
- To enable non-English input and seamless language switching, you can try adding `/kbd:unicode` to `RDP_FLAGS`. This ensures client inputs are sent as Unicode sequences.
- 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.">
<img src="./docs/readme/installer.gif" width=1000 alt="WinApps Installer Animation.">
## Adding Additional Pre-defined Applications
Adding your own applications with custom icons and MIME types to the installer is easy. Simply copy one of the application configurations in the `apps` folder located within the WinApps repository, and:
1. Modify the name and variables to reflect the appropriate/desired values for your application.
2. Replace `icon.svg` with an SVG for your application (ensuring the icon is appropriately licensed).
3. Remove and reinstall WinApps.
4. Submit a pull request to add your application to WinApps as an officially supported application once you have tested and verified your configuration (optional, but encouraged).
4. Submit a pull request to add your application to WinApps as a community tested application once you have tested and verified your configuration (optional, but encouraged).
## Running Applications Manually
WinApps offers a manual mode for running applications that were not configured by the WinApps installer. This is completed with the `manual` flag. Executables that are in the Windows PATH do not require full path definition.
@@ -463,6 +589,116 @@ 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`.
## WinApps Launcher (Optional)
The [WinApps Launcher](https://github.com/winapps-org/winapps-launcher) provides a simple system tray menu that makes it easy to launch your installed Windows applications, open a full desktop RDP session, and control your Windows VM or container. You can start, stop, pause, reboot or hibernate Windows, as well as access your installed applications from a convenient list. This lightweight, optional tool helps streamline your overall WinApps experience.
<img src="./docs/readme/launcher.gif" width=1000 alt="WinApps Launcher Animation.">
## 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
```
```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,
...
}:
{
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>

Submodule WinApps-Launcher deleted from eaa660d39b

View File

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

View File

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

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Adam
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Acrobat 9"

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

@@ -0,0 +1 @@
<svg fill="none" height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg"><path d="m2 12.1333c0-3.54697 0-5.32047.69029-6.67524.6072-1.19169 1.57608-2.16057 2.76777-2.76777 1.35477-.69029 3.12827-.69029 6.67524-.69029h7.7334c3.547 0 5.3205 0 6.6752.69029 1.1917.6072 2.1606 1.57608 2.7678 2.76777.6903 1.35477.6903 3.12827.6903 6.67524v7.7334c0 3.547 0 5.3205-.6903 6.6752-.6072 1.1917-1.5761 2.1606-2.7678 2.7678-1.3547.6903-3.1282.6903-6.6752.6903h-7.7334c-3.54697 0-5.32047 0-6.67524-.6903-1.19169-.6072-2.16057-1.5761-2.76777-2.7678-.69029-1.3547-.69029-3.1282-.69029-6.6752z" fill="#00005b"/><g fill="#99f"><path d="m13.7893 19.5638h-4.3389l-.88281 2.8181c-.02451.1045-.12074.1785-.22541.1734h-2.19764c-.12532 0-.16915-.0706-.13148-.2119l3.75663-11.0508c.0376-.1155.07514-.2285.11274-.3763.04913-.2571.07429-.5183.07513-.7802-.01076-.0774.05604-.14596.13144-.1349h2.9866c.0875 0 .1375.0321.1502.0963l4.2639 12.2651c.0375.1286-.0001.1928-.1127.1927h-2.4419c-.0856.0097-.1674-.049-.1878-.1349zm-3.6627-2.3761h2.9678c-.4876-1.6662-1.0379-3.3104-1.4839-4.9896-.5054 1.7418-.9721 3.3572-1.4839 4.9896z"/><path d="m20.6608 18.4757c.1727 1.4309 1.3743 2.1131 2.7048 2.084.7503-.0147 1.5521-.1312 2.2532-.4149.0624-.0511.0939-.0192.0939.0964v1.8301c.0059.0952-.0339.1803-.1127.2312-.8714.3958-1.8716.5152-2.8167.5-2.8178 0-4.7529-1.9854-4.7521-4.874-.0074-2.7374 1.7685-5.0468 4.5267-5.0468 2.3381-.0606 3.9568 1.8113 3.9633 4.1414 0 .4243-.0237.8502-.0751 1.2714-.01.0868-.0839.1542-.1691.1542-1.8673 0-3.7437.027-5.6162.027zm0-1.755c1.0407 0 2.0874.0368 3.1274-.0096.1563-.016.2724-.0457.2724-.2082-.0217-.8638-.7507-1.5743-1.5966-1.5412-1.022-.0634-1.6761.7994-1.8032 1.759z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="After Effects 2024"
# Used for descriptions and window class
FULL_NAME="Adobe After Effects 2024"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\Adobe\Adobe After Effects 2024\Support Files\AfterFX.exe"
# GNOME categories
CATEGORIES="WinApps;Adobe"
# GNOME mimetypes
MIME_TYPES="application/vnd.adobe.aftereffects.project;application/vnd.adobe.aftereffects.template;"
# System Icon
ICON="AdobeAfterEffects"

View File

@@ -0,0 +1,39 @@
<?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="Layer_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 256.4 250"
enable-background="new 0 0 256.4 250" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds bottomLeftOrigin="true" height="250" width="256.4" x="-8.2" y="-8"></sliceSourceBounds>
</sfw>
</metadata>
<g>
<path fill="#00005B" d="M45.4,0H211c25.1,0,45.4,20.3,45.4,45.4v159.2c0,25.1-20.3,45.4-45.4,45.4H45.4C20.3,250,0,229.7,0,204.6
V45.4C0,20.3,20.3,0,45.4,0z"/>
<g>
<path fill="#9999FF" d="M100.7,149.6H61l-8.1,25.2c-0.2,1-1.1,1.6-2,1.5H30.8c-1.2,0-1.5-0.6-1.2-1.9L64,75.6
c0.3-1.1,0.6-2.2,1.1-3.5c0.5-2.2,0.9-4.5,0.9-6.8c-0.1-0.5,0.3-1.1,0.9-1.2c0.1,0,0.2,0,0.3,0h27.4c0.7,0,1.3,0.3,1.4,0.9
l38.8,109.6c0.3,1.2,0,1.7-1.1,1.7h-22.3c-0.7,0.1-1.5-0.4-1.7-1.2L100.7,149.6z M67.2,128.3h27.1c-0.6-2.2-1.5-4.9-2.5-7.7
c-1-2.9-1.9-6-2.9-9.2c-1.1-3.3-2-6.5-3.1-9.8s-2-6.4-2.9-9.5c-0.9-3-1.6-5.8-2.4-8.3h-0.2c-1,4.6-2.1,9.2-3.6,13.8
c-1.6,5.1-3.2,10.5-4.9,15.8C70.5,118.8,68.8,123.8,67.2,128.3L67.2,128.3z"/>
<path fill="#9999FF" d="M216.7,92.1v65.5c0,2.9,0,5.4,0.1,7.7c0.1,2.2,0.2,4.2,0.3,5.9c0.2,1.7,0.3,2.7,0.4,3.8
c0.1,1-0.3,1.4-1.2,1.4H198c-0.9,0.1-1.7-0.4-2-1.2c-0.2-0.9-0.4-1.8-0.6-2.7c-0.2-0.7-0.2-1.5-0.2-2.2c-3.4,3.1-7.6,5.3-12.1,6.6
c-3.8,1.1-7.9,1.6-11.9,1.6c-4,0-7.9-0.5-11.6-1.8c-3.4-1.2-6.6-3.2-9.1-5.9c-2.8-3-4.8-6.5-6-10.4c-1.5-4.9-2.2-10-2.1-15.2v-53
c-0.1-0.6,0.3-1.3,1.1-1.4c0.1,0,0.2,0,0.3,0h20.4c0.6-0.1,1.3,0.3,1.4,1.1c0,0.1,0,0.2,0,0.3v50.2c0,4.7,1.1,8.4,3.1,11.1
c2,2.7,6.2,4.1,11,4.1c2.5,0,4.9-0.4,7.3-1.3c2.5-0.9,4.7-2,6.7-3.5V92.1c0-0.7,0.5-1.2,1.5-1.2h20.4c0.5-0.1,1.2,0.3,1.2,0.9
C216.7,91.9,216.7,92,216.7,92.1z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

17
apps/audition-2024/info Normal file
View File

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

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"

9
apps/emclient/icon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

17
apps/emclient/info Normal file
View File

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

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Adam
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Excel"

90
apps/fusion-360/icon.svg Normal file
View File

@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="256pt"
height="256pt"
viewBox="0 0 256 256"
version="1.1"
id="svg7"
sodipodi:docname="Fusion360-82.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
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">
<defs
id="defs7" />
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="pt"
showgrid="false"
inkscape:zoom="1.4142136"
inkscape:cx="228.74904"
inkscape:cy="139.30004"
inkscape:window-width="1418"
inkscape:window-height="892"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g8" />
<g
id="g8">
<path
style="fill:#ff9548;stroke-width:0.75;fill-opacity:1"
d="M 46.79097,-0.00247339 7.8151404,23.849982 8.0231482,23.990607 15.67377,23.310848 45.733663,5.9498164 Z"
id="path8"
sodipodi:nodetypes="cccccc" />
<path
fill="#ff9548"
opacity="1"
d="M 46.398594,0.36621094 46.78,0 C 46.69,59.94 46.65,119.88 46.8,179.82 40.173599,183.81384 12.241533,200.6415 7.83,203.25 7.82,143.45 7.84,83.65 7.82,23.85 16.708712,15.663236 38.795821,8.8363876 46.398594,0.36621094 Z"
id="path1"
sodipodi:nodetypes="cccccc" />
</g>
<g
id="#ff6b00ff"
style="display:inline">
<path
fill="#ff6b00"
opacity="1"
d="m 46.78,0 h 171.61 c 6.13,1.02 11.96,5.71 12.23,12.27 0.19,9.33 0.01,18.66 0.07,28 0.01,46.5 -0.01,93.01 0.01,139.51 -61.3,0.1 -122.6,0.02 -183.9,0.04 C 46.65,119.88 46.69,59.94 46.78,0 m 64.99,40.53 c 0.03,33.12 0,66.25 0.02,99.37 8.3,-0.02 16.6,0.05 24.9,-0.04 -0.06,-13.36 -0.02,-26.73 -0.03,-40.1 10.87,0.02 21.74,-0.07 32.62,0.04 0.1,-5.89 0.16,-11.8 -0.04,-17.69 -10.86,0.12 -21.71,0.03 -32.57,0.05 -0.06,-7.88 0.07,-15.76 -0.08,-23.65 12.91,-0.24 25.83,-0.03 38.74,-0.1 -0.01,-5.96 -0.01,-11.93 0,-17.89 -21.18,-0.01 -42.37,-0.02 -63.56,0.01 z"
id="path2" />
</g>
<g
id="#933c00ff">
<path
fill="#933c00"
opacity="1.00"
d=" M 230.69 40.27 C 236.63 40.33 242.56 40.12 248.50 40.40 C 248.26 112.26 248.46 184.13 248.40 256.00 L 40.90 256.00 C 35.09 254.75 29.45 250.32 29.18 243.98 C 29.00 226.15 29.15 208.31 29.11 190.47 C 35.01 186.93 40.91 183.37 46.80 179.82 C 108.10 179.80 169.40 179.88 230.70 179.78 C 230.68 133.28 230.70 86.77 230.69 40.27 M 163.04 199.06 C 157.06 202.24 156.37 212.16 162.15 215.83 C 166.41 218.38 171.48 218.99 175.96 221.04 C 178.76 222.05 179.00 226.25 176.91 228.06 C 172.76 230.53 165.86 228.94 165.73 223.33 C 162.83 223.33 159.94 223.34 157.04 223.33 C 157.25 226.60 158.35 229.96 160.90 232.17 C 164.97 235.91 170.93 236.24 176.16 235.69 C 181.07 235.18 186.33 232.16 187.38 226.99 C 187.94 223.28 187.75 218.80 184.56 216.28 C 180.18 212.67 174.15 212.48 169.26 209.85 C 167.07 208.83 166.95 205.27 168.99 204.06 C 172.69 201.92 178.42 203.55 178.83 208.32 C 181.69 208.34 184.56 208.34 187.42 208.32 C 187.18 204.06 184.77 199.89 180.69 198.28 C 175.11 196.05 168.36 196.14 163.04 199.06 M 92.12 197.62 C 92.29 210.14 92.16 222.67 92.19 235.19 C 95.27 235.19 98.35 235.19 101.43 235.28 C 101.77 230.14 101.46 225.00 101.60 219.86 C 105.70 219.87 109.80 219.87 113.90 219.86 C 113.90 217.65 113.90 215.45 113.89 213.25 C 109.78 213.26 105.68 213.26 101.57 213.26 C 101.60 210.33 101.59 207.39 101.49 204.47 C 106.40 204.20 111.32 204.41 116.24 204.34 C 116.24 202.07 116.24 199.80 116.25 197.54 C 108.20 197.58 100.16 197.42 92.12 197.62 M 121.04 197.58 C 121.38 207.36 120.57 217.21 121.49 226.96 C 123.25 236.40 136.36 238.70 142.71 232.48 C 142.97 233.38 143.24 234.28 143.53 235.18 C 146.16 235.19 148.79 235.19 151.42 235.30 C 151.84 222.72 151.56 210.10 151.55 197.51 C 148.42 197.54 145.29 197.53 142.16 197.62 C 142.32 206.42 142.16 215.22 142.25 224.03 C 143.08 230.29 130.91 231.38 130.55 224.88 C 130.27 215.78 130.50 206.66 130.44 197.56 C 127.31 197.53 124.18 197.53 121.04 197.58 Z"
id="path3" />
</g>
<g
id="#ffffffff">
<path
fill="#ffffff"
opacity="1.00"
d=" M 111.77 40.53 C 132.96 40.50 154.15 40.51 175.33 40.52 C 175.32 46.48 175.32 52.45 175.33 58.41 C 162.42 58.48 149.50 58.27 136.59 58.51 C 136.74 66.40 136.61 74.28 136.67 82.16 C 147.53 82.14 158.38 82.23 169.24 82.11 C 169.44 88.00 169.38 93.91 169.28 99.80 C 158.40 99.69 147.53 99.78 136.66 99.76 C 136.67 113.13 136.63 126.50 136.69 139.86 C 128.39 139.95 120.09 139.88 111.79 139.90 C 111.77 106.78 111.80 73.65 111.77 40.53 Z"
id="path4" />
<path
fill="#ffffff"
opacity="1.00"
d=" M 163.04 199.06 C 168.36 196.14 175.11 196.05 180.69 198.28 C 184.77 199.89 187.18 204.06 187.42 208.32 C 184.56 208.34 181.69 208.34 178.83 208.32 C 178.42 203.55 172.69 201.92 168.99 204.06 C 166.95 205.27 167.07 208.83 169.26 209.85 C 174.15 212.48 180.18 212.67 184.56 216.28 C 187.75 218.80 187.94 223.28 187.38 226.99 C 186.33 232.16 181.07 235.18 176.16 235.69 C 170.93 236.24 164.97 235.91 160.90 232.17 C 158.35 229.96 157.25 226.60 157.04 223.33 C 159.94 223.34 162.83 223.33 165.73 223.33 C 165.86 228.94 172.76 230.53 176.91 228.06 C 179.00 226.25 178.76 222.05 175.96 221.04 C 171.48 218.99 166.41 218.38 162.15 215.83 C 156.37 212.16 157.06 202.24 163.04 199.06 Z"
id="path5" />
<path
fill="#ffffff"
opacity="1.00"
d=" M 92.12 197.62 C 100.16 197.42 108.20 197.58 116.25 197.54 C 116.24 199.80 116.24 202.07 116.24 204.34 C 111.32 204.41 106.40 204.20 101.49 204.47 C 101.59 207.39 101.60 210.33 101.57 213.26 C 105.68 213.26 109.78 213.26 113.89 213.25 C 113.90 215.45 113.90 217.65 113.90 219.86 C 109.80 219.87 105.70 219.87 101.60 219.86 C 101.46 225.00 101.77 230.14 101.43 235.28 C 98.35 235.19 95.27 235.19 92.19 235.19 C 92.16 222.67 92.29 210.14 92.12 197.62 Z"
id="path6" />
<path
fill="#ffffff"
opacity="1.00"
d=" M 121.04 197.58 C 124.18 197.53 127.31 197.53 130.44 197.56 C 130.50 206.66 130.27 215.78 130.55 224.88 C 130.91 231.38 143.08 230.29 142.25 224.03 C 142.16 215.22 142.32 206.42 142.16 197.62 C 145.29 197.53 148.42 197.54 151.55 197.51 C 151.56 210.10 151.84 222.72 151.42 235.30 C 148.79 235.19 146.16 235.19 143.53 235.18 C 143.24 234.28 142.97 233.38 142.71 232.48 C 136.36 238.70 123.25 236.40 121.49 226.96 C 120.57 217.21 121.38 207.36 121.04 197.58 Z"
id="path7" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

14
apps/fusion-360/info Normal file
View File

@@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="Fusion 360"
# Used for descriptions and window class
FULL_NAME="Autodesk Fusion 360"
# The executable inside windows
WIN_EXECUTABLE="C:\Users\%USERNAME%\AppData\Local\Autodesk\webdeploy\production\6a0c9611291d45bb9226980209917c3d\FusionLauncher.exe"
# GNOME categories
CATEGORIES="WinApps;Graphics;3DGraphics"
# GNOME mimetypes
MIME_TYPES="application/fusion"

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" viewBox="0 0 240 234">
<path fill="#300" 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-149C0 19 19 0 42.5 0z"/>
<path fill="#ff9a00" d="M116 140H78.8l-7.6 23.5c-.2.9-1 1.5-1.9 1.4H50.5c-1.1 0-1.4-.6-1.1-1.8l32.2-92.7c.3-1 .6-2.1 1-3.3.4-2.1.6-4.3.6-6.5-.1-.5.3-1 .8-1.1h25.9c.8 0 1.2.3 1.3.8l36.5 103c.3 1.1 0 1.6-1 1.6h-20.9c-.7.1-1.4-.4-1.6-1.1L116 140zm-31.4-20.3H110c-.6-2.1-1.4-4.6-2.3-7.2-.9-2.7-1.8-5.6-2.7-8.6-1-3.1-1.9-6.1-2.9-9.2s-1.9-6-2.7-8.9c-.8-2.8-1.5-5.4-2.2-7.8H97c-.9 4.3-2 8.6-3.4 12.9-1.5 4.8-3 9.8-4.6 14.8-1.4 5.1-2.9 9.8-4.4 14zM170 77c-3.3.1-6.5-1.2-8.9-3.5-2.3-2.5-3.5-5.8-3.4-9.2-.1-3.4 1.2-6.6 3.6-8.9s5.6-3.5 8.9-3.5c3.9 0 6.9 1.2 9.1 3.5 2.2 2.4 3.4 5.6 3.3 8.9.1 3.4-1.1 6.7-3.5 9.2-2.3 2.4-5.7 3.7-9.1 3.5zm-11.2 86.8v-77c0-1 .4-1.4 1.3-1.4h19.8c.9 0 1.3.5 1.3 1.4v77c0 1.1-.4 1.6-1.3 1.6h-19.6c-1 0-1.5-.6-1.5-1.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 1008 B

View File

@@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="Illustrator 2024"
# Used for descriptions and window class
FULL_NAME="Adobe Illustrator 2024"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\Adobe\Adobe Illustrator 2024\Support Files\Contents\Windows\Illustrator.exe"
# GNOME categories
CATEGORIES="WinApps;Adobe"
# GNOME mimetypes
MIME_TYPES="application/illustrator;"
# System Icon
ICON="AdobeIllustrator"

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg style="enable-background:new 0 0 240 234" version="1.1" viewBox="0 0 240 234" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<title>Adobe InDesign CC logo</title>
<style type="text/css">
.st0{fill:#49021F;}
.st1{fill:#FF3366;}
</style>
<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 id="vlpa">
<g id="vlpb">
<path class="st1" d="m87.2 61.2v103c0 1.1-0.5 1.6-1.4 1.6h-19.6c-0.9 0-1.3-0.5-1.3-1.6v-103c0-0.9 0.5-1.3 1.4-1.3h19.5c0.6-0.1 1.2 0.3 1.3 1 0.1 0.1 0.1 0.2 0.1 0.3z"/>
<path class="st1" d="m145 167c-7.4 0.1-14.8-1.4-21.5-4.5-6.3-2.9-11.5-7.7-15.1-13.6-3.7-6.1-5.5-13.7-5.5-22.8-0.1-7.4 1.8-14.7 5.5-21.1 3.8-6.5 9.3-11.9 15.9-15.5 7-3.9 15.4-5.8 25.3-5.8 0.5 0 1.2 0 2.1 0.1s1.9 0.1 3.1 0.2v-31.6c0-0.7 0.3-1.1 1-1.1h20.3c0.5-0.1 0.9 0.3 1 0.7v0.2 95.2c0 1.8 0.1 3.8 0.2 6 0.2 2.1 0.3 4.1 0.4 5.8 0 0.7-0.3 1.3-1 1.6-5.2 2.2-10.7 3.8-16.3 4.8-5 0.9-10.2 1.4-15.4 1.4zm9.8-20v-44c-0.9-0.2-1.8-0.4-2.7-0.5-1.1-0.1-2.2-0.2-3.3-0.2-3.9 0-7.8 0.8-11.3 2.6-3.4 1.7-6.3 4.2-8.5 7.4s-3.3 7.5-3.3 12.7c-0.1 3.5 0.5 7 1.7 10.3 1 2.7 2.5 5.1 4.5 7.1 1.9 1.8 4.2 3.2 6.8 4 2.7 0.9 5.5 1.3 8.3 1.3 1.5 0 2.9-0.1 4.2-0.2 1.3 0.1 2.5-0.1 3.6-0.5z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

17
apps/indesign-2024/info Normal file
View File

@@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="InDesign 2024"
# Used for descriptions and window class
FULL_NAME="Adobe InDesign 2024"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\Adobe\Adobe InDesign 2024\InDesign.exe"
# GNOME categories
CATEGORIES="WinApps;Adobe"
# GNOME mimetypes
MIME_TYPES="application/x-adobe-indesign-interchange;application/x-adobe-indesign;"
# System Icon
ICON="AdobeIndesign"

View File

@@ -0,0 +1,42 @@
<?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="Layer_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 256.4 250"
enable-background="new 0 0 256.4 250" xml:space="preserve">
<metadata>
<sfw xmlns="&ns_sfw;">
<slices></slices>
<sliceSourceBounds bottomLeftOrigin="true" height="250" width="256.4" x="-8.2" y="-8"></sliceSourceBounds>
</sfw>
</metadata>
<g id="Layer_2_1_">
<path fill="#001E36" d="M45.4,0H211c25.1,0,45.4,20.3,45.4,45.4v159.2c0,25.1-20.3,45.4-45.4,45.4H45.4C20.3,250,0,229.7,0,204.6
V45.4C0,20.3,20.3,0,45.4,0z"/>
<g id="LrC">
<path fill="#31A8FF" d="M90,176.7H29c-1.1,0-1.5-0.6-1.5-1.9V65.6c0-1.1,0.4-1.5,1.4-1.5h18.9c0.7,0,1.1,0.4,1.1,1.2V155h44.4
c1,0,1.3,0.5,1.1,1.5l-2.8,18.6c-0.1,0.6-0.3,1.1-0.6,1.3S90.3,176.7,90,176.7z"/>
<path fill="#31A8FF" d="M105.2,91.2h16.9c1,0,1.6,0.5,2,1.7c0.3,0.7,0.6,1.6,0.7,2.5c0.2,1.1,0.3,2.2,0.4,3.3
c0.1,1.2,0.1,2.5,0.1,3.8c2.8-3.6,6.3-6.8,10.3-9.2c4.3-2.6,9.3-4,14.3-3.8c1,0,1.4,0.5,1.4,1.5v20.8c0,0.9-0.5,1.2-1.5,1.2
c-3.4-0.2-6.8,0-10.1,0.7c-2.8,0.6-5.4,1.6-8,2.9c-1.9,1-3.7,2.4-5.2,4v54.5c0,1.1-0.4,1.5-1.3,1.5h-18.6c-1.1,0-1.5-0.5-1.5-1.7
v-59.2c0-2.6,0-5.2-0.1-8c0-2.8-0.1-5.6-0.2-8.3c-0.1-2.4-0.3-4.7-0.6-7.1c0-0.3,0-0.6,0.2-1C104.7,91.2,104.9,91.1,105.2,91.2z"
/>
<path fill="#31A8FF" d="M227.1,75.4c-2.2-1-4.7-1.5-7.2-1.8c-3.6-0.4-7.3-0.6-10.9-0.6c-10.5,0-19.7,2.2-27.2,6.6
s-13.7,10.9-17.7,18.7c-4.2,7.9-6.2,17.3-6.2,27.8c-0.1,6.3,0.7,12.6,2.4,18.8c1.5,5.2,3.7,10.1,6.8,14.6
c2.9,4.2,6.4,7.7,10.5,10.6s8.7,5.1,13.6,6.4c5,1.4,10.4,2.1,15.6,2.1c3.7,0,7.4-0.2,11-0.7c3-0.3,5.9-1.1,8.7-2.1
c1.1-0.5,1.7-1.6,1.6-2.9v-15.9c0.1-0.5-0.1-1.2-0.5-1.6c-0.3-0.2-0.9-0.5-1.7,0.1c-2.4,0.9-4.9,1.5-7.5,1.8
c-3.1,0.3-6.2,0.4-9.3,0.4c-2.8,0-5.7-0.4-8.3-1.2c-2.9-0.7-5.6-1.9-8.1-3.4c-2.7-1.6-4.9-3.7-6.7-6.2c-2-2.8-3.6-5.9-4.7-9.2
c-1.2-4.1-1.8-8.2-1.7-12.5c-0.1-5.9,1.1-11.8,3.5-17.1c2.2-4.6,5.7-8.5,10-11.2c4.7-2.8,10.1-4.2,15.6-4.1c3.3,0,6.7,0.2,10,0.9
c2.7,0.4,5.2,1.3,7.7,2.6c0.4,0.2,1,0.2,1.4,0c0.4-0.4,0.7-1,0.6-1.6V78C228.4,76.9,228,76,227.1,75.4z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

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

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"

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 240 234"><path fill="#00005B" 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-149C0,19,19,0,42.5,0z"/><path fill="#9999FF" d="M33.8,60.9c0.1-0.6,0.6-1,1.2-1c0,0,0,0,0,0h28.1c0.8-0.1,1.5,0.4,1.7,1.1c0.7,2.8,1.6,6.1,2.6,10.1c1,3.9,2.1,8.2,3.3,13c1.2,4.7,2.4,9.6,3.6,14.5c1.2,4.9,2.4,9.7,3.6,14.4c1.2,4.7,2.2,9,3,12.9c0.8,3.9,1.5,7.2,2,9.7h0.2c0.4-2.3,1.1-5.3,2.1-9c1-3.8,2.2-8,3.5-12.6c1.3-4.7,2.7-9.5,4.1-14.4c1.4-4.9,2.7-9.8,4.1-14.7c1.3-4.8,2.6-9.3,3.7-13.4c1.2-4.1,2.1-7.6,2.8-10.4c0.1-0.7,0.7-1.2,1.4-1.1h27.4c0.7-0.1,1.3,0.4,1.4,1c0,0,0,0.1,0,0.1l3.7,102.9c0.1,0.4,0,0.8-0.2,1c-0.3,0.3-0.6,0.4-1,0.4h-19.9c-0.3,0-0.5-0.1-0.8-0.2c-0.2-0.2-0.3-0.6-0.3-0.9c0-5.5,0-11.2-0.1-17.2c-0.1-6-0.1-12-0.2-18.1c-0.1-6.1-0.1-11.9,0-17.5c0.1-5.6,0.2-10.7,0.2-15.5c0-4.7,0-8.8,0.1-12.3c0.1-3.5,0.1-6.1,0.1-7.8h-0.2c-0.6,2.7-1.4,6.2-2.4,10.5c-1,4.3-2.2,9.2-3.6,14.7c-1.4,5.4-2.9,11-4.4,16.8c-1.6,5.8-3.1,11.5-4.6,17.2c-1.5,5.7-2.9,11-4.3,15.9c-1.4,4.9-2.5,9.3-3.4,13c-0.2,0.8-0.9,1.3-1.7,1.3H73.1c-0.9,0.1-1.7-0.4-1.8-1.3c-0.9-3.8-2-8.1-3.1-13c-1.2-4.9-2.4-10.1-3.6-15.5c-1.2-5.4-2.5-10.9-3.9-16.5c-1.4-5.6-2.7-11.1-3.9-16.3c-1.2-5.3-2.3-10.2-3.3-14.8c-1-4.6-1.9-8.7-2.7-12.2h-0.3v12.7c0,4.9-0.1,10.4-0.2,16.3c-0.2,6-0.3,12.2-0.5,18.7c-0.2,6.5-0.3,13.2-0.5,20.1c-0.2,6.9-0.5,13.8-0.8,20.5c0,0.9-0.4,1.3-1.2,1.3H29.6c-0.3,0-0.7-0.1-1-0.2c-0.3-0.2-0.3-0.6-0.2-1.2L33.8,60.9zM196.7,130.3H165c0.4,3,1.4,5.9,3.1,8.5c1.8,2.7,4.3,4.8,7.3,6c3.3,1.5,7.5,2.3,12.8,2.3c3.5,0,7-0.3,10.4-0.9c3.2-0.6,6.4-1.5,9.4-2.8c0.5-0.4,0.8-0.2,0.8,0.8v15.3c0,0.4-0.1,0.8-0.2,1.2c-0.2,0.3-0.4,0.5-0.7,0.7c-3.3,1.6-6.8,2.7-10.5,3.5c-4.7,0.9-9.4,1.3-14.2,1.2c-7.6,0-14-1.2-19.2-3.5c-4.9-2.1-9.2-5.4-12.6-9.5c-3.2-3.9-5.5-8.3-6.9-13.1c-1.4-4.7-2.1-9.6-2.1-14.6c0-5.4,0.8-10.7,2.5-15.9c1.6-5,4.1-9.6,7.5-13.7c3.3-4,7.4-7.2,12.1-9.5c5.2-2.4,11-3.6,16.7-3.5c5.3-0.1,10.6,0.9,15.5,3.1c4.1,1.9,7.8,4.7,10.5,8.3c2.6,3.4,4.7,7.2,6,11.4c1.3,4,1.9,8.1,1.9,12.2c0,2.4-0.1,4.5-0.2,6.4c-0.2,1.9-0.3,3.3-0.4,4.2c-0.1,0.7-0.7,1.3-1.4,1.3c-0.6,0-1.7,0.1-3.3,0.2c-1.6,0.2-3.5,0.3-5.8,0.3C201.7,130.2,199.2,130.3,196.7,130.3z M165,114.6H186c2.6,0,4.5,0,5.7-0.1c0.8,0,1.6-0.1,2.3-0.2v-1c0-1.3-0.2-2.5-0.6-3.7c-1.8-5.6-7.1-9.4-13-9.2c-5.5-0.3-10.7,2.6-13.3,7.6C166,110.1,165.3,112.3,165,114.6z"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

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

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;

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Adam
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Paint"

1
apps/paint.net/icon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 46 KiB

17
apps/paint.net/info Normal file
View File

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

1
apps/pdfgear/icon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 60 KiB

14
apps/pdfgear/info Normal file
View File

@@ -0,0 +1,14 @@
# GNOME shortcut name
NAME="pdfgear"
# Used for descriptions and window class
FULL_NAME="PDF Gear"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\PDFgear\PDFLauncher.exe"
# GNOME categories
CATEGORIES="Office;Viewer;Graphics;pdf"
# GNOME mimetypes
MIME_TYPES="application/pdf;"

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

@@ -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-2024/info Normal file
View File

@@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="Photoshop 2024"
# Used for descriptions and window class
FULL_NAME="Adobe Photoshop 2024"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\Adobe\Adobe Photoshop 2024\Photoshop.exe"
# GNOME categories
CATEGORIES="WinApps;Adobe"
# GNOME mimetypes
MIME_TYPES="image/vnd.adobe.photoshop;"
# System Icon
ICON="AdobePhotoshop"

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<title>Power BI Logo</title>
<defs>
<linearGradient id="gradient1" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#F2C94C"/>
<stop offset="100%" style="stop-color:#F2994A"/>
</linearGradient>
</defs>
<rect x="10" y="30" width="15" height="60" fill="url(#gradient1)" rx="2"/>
<rect x="30" y="20" width="15" height="70" fill="url(#gradient1)" rx="2"/>
<rect x="50" y="10" width="15" height="80" fill="url(#gradient1)" rx="2"/>
<rect x="70" y="25" width="15" height="65" fill="url(#gradient1)" rx="2"/>
</svg>

After

Width:  |  Height:  |  Size: 694 B

17
apps/powerbi-store/info Normal file
View File

@@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="Power BI Desktop (Microsoft Store)"
# Used for descriptions and window class
FULL_NAME="Microsoft Power BI Desktop (Store Version)"
# The executable inside windows
WIN_EXECUTABLE="C:\Users\%USERNAME%\AppData\Local\Microsoft\WindowsApps\PBIDesktop.exe"
# GNOME categories
CATEGORIES="WinApps;Office"
# GNOME mimetypes
MIME_TYPES="application/x-powerbi;application/vnd.ms-powerbi;application/powerbi;application/x-pbix;application/vnd.powerbi.pbix"
# System Icon
ICON="ms-powerbi"

14
apps/powerbi/icon.svg Normal file
View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<title>Power BI Logo</title>
<defs>
<linearGradient id="gradient1" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" style="stop-color:#F2C94C"/>
<stop offset="100%" style="stop-color:#F2994A"/>
</linearGradient>
</defs>
<rect x="10" y="30" width="15" height="60" fill="url(#gradient1)" rx="2"/>
<rect x="30" y="20" width="15" height="70" fill="url(#gradient1)" rx="2"/>
<rect x="50" y="10" width="15" height="80" fill="url(#gradient1)" rx="2"/>
<rect x="70" y="25" width="15" height="65" fill="url(#gradient1)" rx="2"/>
</svg>

After

Width:  |  Height:  |  Size: 694 B

17
apps/powerbi/info Normal file
View File

@@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="Power BI Desktop (Traditional)"
# Used for descriptions and window class
FULL_NAME="Microsoft Power BI Desktop"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\Microsoft Power BI Desktop\bin\PBIDesktop.exe"
# GNOME categories
CATEGORIES="WinApps;Office"
# GNOME mimetypes
MIME_TYPES="application/x-powerbi;application/vnd.ms-powerbi;application/powerbi;application/x-pbix;application/vnd.powerbi.pbix"
# System Icon
ICON="ms-powerbi"

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Adam
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Powershell"

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg style="enable-background:new 0 0 240 234" version="1.1" viewBox="0 0 240 234" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<title>Adobe Premiere Pro CC logo</title>
<style type="text/css">
.st0{fill:#00005B;}
.st1{fill:#9999FF;}
</style>
<g id="vlpa">
<g id="vlpb">
<g id="vlpc">
<g id="vlpd">
<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="vlpe">
<g id="vlpf">
<path class="st1" d="m57 164v-103c0-0.7 0.3-1.1 1-1.1 1.7 0 3.3 0 5.6-0.1 2.4-0.1 4.9-0.1 7.6-0.2s5.6-0.1 8.7-0.2 6.1-0.1 9.1-0.1c8.2 0 15 1 20.6 3.1 5 1.7 9.6 4.5 13.4 8.2 3.2 3.2 5.7 7.1 7.3 11.4 1.5 4.2 2.3 8.5 2.3 13 0 8.6-2 15.7-6 21.3s-9.6 9.8-16.1 12.2c-6.8 2.5-14.3 3.4-22.5 3.4-2.4 0-4 0-5-0.1s-2.4-0.1-4.3-0.1v32.1c0.1 0.7-0.4 1.3-1.1 1.4h-0.4-19c-0.8 0-1.2-0.4-1.2-1.3zm21.8-84.7v33.6c1.4 0.1 2.7 0.2 3.9 0.2h5.3c3.9 0 7.8-0.6 11.5-1.8 3.2-0.9 6-2.8 8.2-5.3 2.1-2.5 3.1-5.9 3.1-10.3 0.1-3.1-0.7-6.2-2.3-8.9-1.7-2.6-4.1-4.6-7-5.7-3.7-1.5-7.7-2.1-11.8-2-2.6 0-4.9 0-6.8 0.1-2-0.1-3.4 0-4.1 0.1z"/>
<path class="st1" d="m147 85.2h17.5c1 0 1.8 0.7 2.1 1.6 0.3 0.8 0.5 1.6 0.6 2.5 0.2 1 0.4 2.1 0.5 3.1 0.1 1.1 0.2 2.3 0.2 3.6 3-3.5 6.6-6.4 10.7-8.6 4.6-2.6 9.9-3.9 15.2-3.9 0.7-0.1 1.3 0.4 1.4 1.1v0.4 19.5c0 0.8-0.5 1.1-1.6 1.1-3.6-0.1-7.3 0.2-10.8 1-2.9 0.6-5.7 1.5-8.4 2.7-1.9 0.9-3.7 2.1-5.1 3.7v51c0 1-0.4 1.4-1.3 1.4h-19.7c-0.8 0.1-1.5-0.4-1.6-1.2v-0.4-55.4c0-2.4 0-4.9-0.1-7.5s-0.1-5.2-0.2-7.8c0-2.3-0.2-4.5-0.4-6.8-0.1-0.5 0.2-1 0.7-1.1 0-0.1 0.2-0.1 0.3 0z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,17 @@
# GNOME shortcut name
NAME="Premiere Pro 2024"
# Used for descriptions and window class
FULL_NAME="Adobe Premiere Pro 2024"
# The executable inside windows
WIN_EXECUTABLE="C:\Program Files\Adobe\Adobe Premiere Pro 2024\Adobe Premiere Pro.exe"
# GNOME categories
CATEGORIES="WinApps;Adobe"
# GNOME mimetypes
MIME_TYPES="image/vnd.adobe.premierepro.project;"
# System Icon
ICON="AdobePremierePro"

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Project"
# Used for descriptions and window class

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Gordon Cheong
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Project"

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,9 +1,3 @@
# Copyright (c) 2024 Gordon Cheong
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Visio"

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Gordon Cheong
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Visio"

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Gordon Cheong
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Visual Studio Community"

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Gordon Cheong
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Visual Studio Enterprise"

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Gordon Cheong
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Visual Studio Professional"

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Adam
# Copyright (c) 2024 Oskar Manhart
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# GNOME shortcut name
NAME="Word"

View File

@@ -1,12 +1,4 @@
#!/usr/bin/env bash
# Copyright (c) 2024 Felix Bartels
# Copyright (c) 2024 Rhea Barar
# Copyright (c) 2024 Rohan Barar
# Copyright (c) 2024 Oskar Manhart
# Copyright (c) 2024 escapefreeg
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
### GLOBAL CONSTANTS ###
# ERROR CODES
@@ -37,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
@@ -50,18 +41,20 @@ 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=""
BOOT_TIMEOUT=120
# OTHER
FREERDP_PID=-1
NEEDED_BOOT=false
### TRAPS ###
# Catch SIGINT (CTRL+C) to call 'waCleanUp'.
@@ -114,15 +107,15 @@ Please run:
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Windows failed to resume."
;;
"$EC_FAIL_DESTROY")
dprint "ERROR: WINDOWS FAILED TO IMMEDIATELY UNGRACEFULLY SHUT DOWN WINDOWS. EXITING."
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Failed to ungracefully shut down Windows."
dprint "ERROR: FAILED TO FORCE STOP WINDOWS. EXITING."
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Failed to forcibly stop Windows."
;;
"$EC_SD_TIMEOUT")
dprint "ERROR: WINDOWS TOOK TOO LONG TO SHUT DOWN. EXITING."
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Windows took too long to shut down."
;;
"$EC_DIE_TIMEOUT")
dprint "ERROR: WINDOWS TOOK TOO LONG TO SHUT DOWN. EXITING."
dprint "ERROR: WINDOWS TOOK TOO LONG TO DIE. EXITING."
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Windows took too long to die."
;;
"$EC_RESTART_TIMEOUT")
@@ -131,7 +124,7 @@ Please run:
;;
"$EC_NOT_EXIST")
dprint "ERROR: WINDOWS NONEXISTENT. EXITING."
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Windows does not exist."
notify-send --expire-time=8000 --icon="dialog-error" --app-name="WinApps" --urgency="low" "WinApps" "Windows VM named '${VM_NAME}' does not exist."
;;
"$EC_UNKNOWN")
dprint "ERROR: UNKNOWN CONTAINER ERROR. EXITING."
@@ -162,9 +155,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 REMOVABLE_MEDIA is empty, default to /run/media (udisks default) and show a 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() {
@@ -210,12 +212,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.
@@ -301,9 +301,10 @@ function waGetFreeRDPCommand() {
function waCheckGroupMembership() {
# Identify groups the current user belongs to.
# shellcheck disable=SC2155 # Silence warnings regarding masking return values through simultaneous declaration and assignment.
local USER_GROUPS=$(groups "$(whoami)")
local USER_GROUPS=$(id -nG "$(whoami)")
if ! (echo "$USER_GROUPS" | grep -q -E "\blibvirt\b") || ! (echo "$USER_GROUPS" | grep -q -E "\bkvm\b"); then
if ! echo "$USER_GROUPS" | grep -qE '\b(libvirt|libvirtd)\b' || \
! echo "$USER_GROUPS" | grep -qE '\bkvm\b'; then
waThrowExit "$EC_NOT_IN_GROUP"
fi
}
@@ -321,37 +322,39 @@ function waCheckVMRunning() {
# Attempt to run the Windows virtual machine.
# Note: States 'running' and 'idle' do not require intervention, and are not checked for.
if (virsh list --all --name | xargs | grep -wq "$VM_NAME"); then
if (virsh list --state-shutoff --name | xargs | grep -wq "$VM_NAME"); then
if (virsh list --all --name | grep -Fxq -- "$VM_NAME"); then
if (virsh list --state-shutoff --name | grep -Fxq -- "$VM_NAME"); then
dprint "WINDOWS SHUT OFF. BOOTING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Booting Windows."
NEEDED_BOOT=true
virsh start "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_START
if (virsh list --state-paused --name | xargs | grep -wq "$VM_NAME"); then
if (virsh list --state-paused --name | grep -Fxq -- "$VM_NAME"); then
dprint "WINDOWS PAUSED. RESUMING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Resuming Windows."
virsh resume "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_RESUME
fi
elif (virsh list --state-paused --name | xargs | grep -wq "$VM_NAME"); then
elif (virsh list --state-paused --name | grep -Fxq -- "$VM_NAME"); then
dprint "WINDOWS PAUSED. RESUMING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Resuming Windows."
virsh resume "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_RESUME
elif (virsh list --state-other --name | xargs | grep -wq "$VM_NAME"); then
if (virsh domstate "$VM_NAME" | xargs | grep -wq "shutdown"); then
elif (virsh list --state-other --name | grep -Fxq -- "$VM_NAME"); then
if (virsh domstate "$VM_NAME" | grep -Fxq "in shutdown"); then
dprint "WINDOWS SHUTTING DOWN. WAITING."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Windows is currently shutting down.\nIt will automatically restart once the shutdown process is complete."
EXIT_STATUS=$EC_SD_TIMEOUT
while (( TIME_ELAPSED < TIME_LIMIT )); do
if (virsh list --state-shutoff --name | xargs | grep -wq "$VM_NAME"); then
if (virsh list --state-shutoff --name | grep -Fxq -- "$VM_NAME"); then
EXIT_STATUS=0
dprint "WINDOWS SHUT OFF. BOOTING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Booting Windows."
virsh start "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_START
NEEDED_BOOT=true
break
fi
sleep $TIME_INTERVAL
TIME_ELAPSED=$((TIME_ELAPSED + TIME_INTERVAL))
done
elif (virsh domstate "$VM_NAME" | xargs | grep -wq "crashed"); then
elif (virsh domstate "$VM_NAME" | grep -Fxq "crashed"); then
dprint "WINDOWS CRASHED. DESTROYING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Windows experienced an unexpected crash.\nAttempting to restart Windows."
virsh destroy "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_DESTROY
@@ -359,13 +362,14 @@ function waCheckVMRunning() {
dprint "WINDOWS DESTROYED. BOOTING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Booting Windows."
virsh start "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_START
NEEDED_BOOT=true
fi
elif (virsh domstate "$VM_NAME" | xargs | grep -wq "dying"); then
elif (virsh domstate "$VM_NAME" | grep -Fxq "dying"); then
dprint "WINDOWS DYING. WAITING."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Windows is currently shutting down unexpectedly.\nIt will try to restart once the shutdown process finishes."
EXIT_STATUS=$EC_DIE_TIMEOUT
while (( TIME_ELAPSED < TIME_LIMIT )); do
if (virsh domstate "$VM_NAME" | xargs | grep -wq "crashed"); then
if (virsh domstate "$VM_NAME" | grep -Fxq "crashed"); then
EXIT_STATUS=0
dprint "WINDOWS CRASHED. DESTROYING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Windows experienced an unexpected crash.\nAttempting to restart Windows."
@@ -374,19 +378,21 @@ function waCheckVMRunning() {
dprint "WINDOWS DESTROYED. BOOTING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Booting Windows."
virsh start "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_START
NEEDED_BOOT=true
fi
break
elif (virsh list --state-shutoff --name | xargs | grep -wq "$VM_NAME"); then
elif (virsh list --state-shutoff --name | grep -Fxq -- "$VM_NAME"); then
EXIT_STATUS=0
dprint "WINDOWS SHUT OFF. BOOTING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Booting Windows."
virsh start "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_START
NEEDED_BOOT=true
break
fi
sleep $TIME_INTERVAL
TIME_ELAPSED=$((TIME_ELAPSED + TIME_INTERVAL))
done
elif (virsh domstate "$VM_NAME" | xargs | grep -wq "pmsuspended" ); then
elif (virsh domstate "$VM_NAME" | grep -Fxq "pmsuspended" ); then
dprint "WINDOWS SUSPENDED. RESUMING WINDOWS."
virsh resume "$VM_NAME" &>/dev/null || EXIT_STATUS=$EC_FAIL_RESUME
fi
@@ -397,6 +403,45 @@ function waCheckVMRunning() {
# Handle non-zero exit statuses.
[ "$EXIT_STATUS" -ne 0 ] && waThrowExit "$EXIT_STATUS"
# Wait for VM to be fully ready
if [[ "$NEEDED_BOOT" == "true" ]]; then
dprint "WAITING FOR VM TO BE FULLY READY..."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Waiting for Windows to be ready..."
TIME_ELAPSED=0
while (( TIME_ELAPSED < BOOT_TIMEOUT )); do
# Check if VM is running
if (virsh list --state-running --name | grep -Fxq -- "$VM_NAME"); then
# Try to connect to RDP port to verify it's ready
if timeout 1 bash -c ">/dev/tcp/$RDP_IP/$RDP_PORT" 2>/dev/null; then
dprint "VM IS READY"
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Windows is ready."
# Add a delay after Windows is ready
if [ "$NEEDED_BOOT" = "true" ]; then
sleep 10
fi
break
fi
fi
sleep 5
TIME_ELAPSED=$((TIME_ELAPSED + 5))
# Show progress every 30 seconds
if (( TIME_ELAPSED % 30 == 0 )); then
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Still waiting for Windows to be ready... ($TIME_ELAPSED seconds elapsed)"
fi
done
# If we timed out waiting for the VM
if (( TIME_ELAPSED >= BOOT_TIMEOUT )); then
dprint "TIMEOUT WAITING FOR VM TO BE READY"
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Timeout waiting for Windows to be ready. Please try again."
waThrowExit $EC_FAIL_START
fi
fi
}
# Name: 'waCheckContainerRunning'
@@ -428,6 +473,7 @@ function waCheckContainerRunning() {
dprint "WINDOWS CREATED. BOOTING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Booting Windows."
$COMPOSE_COMMAND --file "$COMPOSE_PATH" start &>/dev/null
NEEDED_BOOT=true
;;
"restarting")
dprint "WINDOWS RESTARTING. WAITING."
@@ -438,6 +484,7 @@ function waCheckContainerRunning() {
EXIT_STATUS=0
dprint "WINDOWS RESTARTED."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Restarted Windows."
NEEDED_BOOT=true
break
fi
sleep $TIME_INTERVAL
@@ -453,11 +500,13 @@ function waCheckContainerRunning() {
dprint "WINDOWS SHUT OFF. BOOTING WINDOWS."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Booting Windows."
$COMPOSE_COMMAND --file "$COMPOSE_PATH" start &>/dev/null
NEEDED_BOOT=true
;;
"dead")
dprint "WINDOWS DEAD. RECREATING WINDOWS CONTAINER."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Re-creating and booting Windows."
$COMPOSE_COMMAND --file "$COMPOSE_PATH" down &>/dev/null && $COMPOSE_COMMAND --file "$COMPOSE_PATH" up -d &>/dev/null
NEEDED_BOOT=true
;;
"unknown")
EXIT_STATUS=$EC_UNKNOWN
@@ -466,6 +515,45 @@ function waCheckContainerRunning() {
# Handle non-zero exit statuses.
[ "$EXIT_STATUS" -ne 0 ] && waThrowExit "$EXIT_STATUS"
# Wait for container to be fully ready
if [[ "$CONTAINER_STATE" == "created" || "$CONTAINER_STATE" == "exited" || "$CONTAINER_STATE" == "dead" || "$CONTAINER_STATE" == "restarting" ]]; then
dprint "WAITING FOR CONTAINER TO BE FULLY READY..."
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Waiting for Windows to be ready..."
TIME_ELAPSED=0
while (( TIME_ELAPSED < BOOT_TIMEOUT )); do
# Check if container is running
if [[ $("$WAFLAVOR" inspect --format='{{.State.Status}}' "$CONTAINER_NAME") == "running" ]]; then
# Try to connect to RDP port to verify it's ready
if timeout 1 bash -c ">/dev/tcp/$RDP_IP/$RDP_PORT" 2>/dev/null; then
dprint "CONTAINER IS READY"
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Windows is ready."
# Add a delay after Windows is ready
if [ "$NEEDED_BOOT" = "true" ]; then
sleep 10
fi
break
fi
fi
sleep 5
TIME_ELAPSED=$((TIME_ELAPSED + 5))
# Show progress every 30 seconds
if (( TIME_ELAPSED % 30 == 0 )); then
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Still waiting for Windows to be ready... ($TIME_ELAPSED seconds elapsed)"
fi
done
# If we timed out waiting for the container
if (( TIME_ELAPSED >= BOOT_TIMEOUT )); then
dprint "TIMEOUT WAITING FOR CONTAINER TO BE READY"
notify-send --expire-time=4000 --icon="dialog-info" --app-name="WinApps" --urgency="low" "WinApps" "Timeout waiting for Windows to be ready. Please try again."
waThrowExit $EC_FAIL_START
fi
fi
}
# Name: 'waCheckPortOpen'
@@ -518,11 +606,8 @@ function waRunCommand() {
/u:"$RDP_USER" \
/p:"$RDP_PASS" \
/scale:"$RDP_SCALE" \
+dynamic-resolution \
+auto-reconnect \
+home-drive \
+clipboard \
-wallpaper \
+dynamic-resolution \
/wm-class:"Microsoft Windows" \
/t:"Windows RDP Session [$RDP_IP]" \
/v:"$RDP_IP" &>/dev/null &
@@ -537,12 +622,7 @@ function waRunCommand() {
/u:"$RDP_USER" \
/p:"$RDP_PASS" \
/scale:"$RDP_SCALE" \
+dynamic-resolution \
+auto-reconnect \
+home-drive \
+clipboard \
-wallpaper \
"$MULTI_FLAG" \
/app:program:"$2" \
/v:"$RDP_IP" &>/dev/null &
@@ -574,12 +654,7 @@ function waRunCommand() {
/u:"$RDP_USER" \
/p:"$RDP_PASS" \
/scale:"$RDP_SCALE" \
+dynamic-resolution \
+auto-reconnect \
+home-drive \
+clipboard \
-wallpaper \
"$MULTI_FLAG" \
/wm-class:"$FULL_NAME" \
/app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME" \
/v:"$RDP_IP" &>/dev/null &
@@ -589,7 +664,8 @@ function waRunCommand() {
else
# Convert path from UNIX to Windows style.
FILE_PATH=$(echo "$2" | sed \
-e 's|'"${HOME}"'|\\\\tsclient\\home|' \
-e 's|^'"${HOME}"'|\\\\tsclient\\home|' \
-e 's|^'"${REMOVABLE_MEDIA}"'|\\\\tsclient\\media|' \
-e 's|/|\\|g')
dprint "UNIX_FILE_PATH: ${2}"
dprint "WINDOWS_FILE_PATH: ${FILE_PATH}"
@@ -599,14 +675,10 @@ function waRunCommand() {
/u:"$RDP_USER" \
/p:"$RDP_PASS" \
/scale:"$RDP_SCALE" \
+dynamic-resolution \
+auto-reconnect \
+home-drive \
+clipboard \
-wallpaper \
"$MULTI_FLAG" \
/drive:media,"$REMOVABLE_MEDIA" \
/wm-class:"$FULL_NAME" \
/app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:$"FULL_NAME",cmd:\""$FILE_PATH"\" \
/app:program:"$WIN_EXECUTABLE",icon:"$ICON",name:"$FULL_NAME",cmd:\""$FILE_PATH"\" \
/v:"$RDP_IP" &>/dev/null &
# Capture the process ID.
@@ -635,7 +707,7 @@ function waCheckIdle() {
local SUSPEND_WINDOWS=0
# Prevent 'autopause' functionality with unsupported Windows backends.
if [ "$WAFLAVOR" != "manual" ] && [ "$WAFLAVOR" != "docker" ]; then
if [ "$WAFLAVOR" != "manual" ]; then
# Check if there are no WinApps-related FreeRDP processes running.
if ! ls "$APPDATA_PATH"/FreeRDP_Process_*.cproc &>/dev/null; then
SUSPEND_WINDOWS=1

View File

@@ -1,9 +1,3 @@
# Copyright (c) 2024 Oskar Manhart
# Copyright (c) 2024 Rohan Barar
# All rights reserved.
#
# SPDX-License-Identifier: AGPL-3.0-or-later
# For documentation, FAQ, additional configuration options and technical help, visit: https://github.com/dockur/windows
name: "winapps" # Docker Compose Project Name.
@@ -14,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 commands 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

@@ -1,6 +1,8 @@
# Creating a `libvirt` Windows VM
## Understanding The Virtualisation Stack
This method of configuring a Windows virtual machine for use with WinApps is significantly more involved than utilising `Docker` or `Podman`. Nevertheless, expert users may prefer this method due to its greater flexibility and wider range of customisation options.
This method of configuring a Windows virtual machine for use with WinApps is significantly more involved than utilising `Docker` or `Podman`. Nevertheless, expert users may prefer this method due to its greater flexibility and wider range of customisation options (e.g. GPU passthrough).
<details>
<summary><strong>Understanding The Virtualisation Stack</strong></summary>
Before beginning, it is important to have a basic understanding of the various components involved in this particular method.
@@ -15,6 +17,8 @@ Together, these components form a powerful and flexible virtualization stack, wi
<img src="./libvirt_images/Virtualisation_Stack.svg" width="500px"/>
</p>
</details>
## Prerequisites
1. Ensure your CPU supports hardware virtualisation extensions by [reading this article](https://wiki.archlinux.org/title/KVM).
@@ -28,30 +32,26 @@ 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.
```
Note: On NixOS, the group name for libvirt is `libvirtd` and not `libvirt`. In addition, user and group management on NixOS is handled through the Nix configuration files and not via traditional tools like `usermod`. Please see "Adding User to a group" on [this NixOS Wiki page](https://wiki.nixos.org/wiki/User_management).
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:
@@ -65,7 +65,7 @@ Together, these components form a powerful and flexible virtualization stack, wi
3. Reboot your system to ensure that the user is correctly added to the relevant groups.
6. If relevant to your distribution, disable `AppArmor` for the `libvirt` daemon.
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.
```
@@ -73,12 +73,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.
@@ -138,6 +138,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]
@@ -147,113 +150,7 @@ Together, these components form a powerful and flexible virtualization stack, wi
<img src="./libvirt_images/08.png" width="700px"/>
</p>
10. (Optional) Assign specific physical CPU cores to the virtual machine. This can improve performance by reducing context switching and ensuring that the virtual machine's workload consistently uses the same cores, leading to better CPU cache utilisation.
1. Run `lscpu -e` to determine which L1, L2 and L3 caches are associated with which CPU cores.
Example 1 (Intel 11th Gen Core i7-1185G7):
```
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4800.0000 400.0000
1 0 0 1 1:1:1:0 yes 4800.0000 400.0000
2 0 0 2 2:2:2:0 yes 4800.0000 400.0000
3 0 0 3 3:3:3:0 yes 4800.0000 400.0000
4 0 0 0 0:0:0:0 yes 4800.0000 400.0000
5 0 0 1 1:1:1:0 yes 4800.0000 400.0000
6 0 0 2 2:2:2:0 yes 4800.0000 400.0000
7 0 0 3 3:3:3:0 yes 4800.0000 400.0000
```
- C<sub>0</sub> = T<sub>0</sub>+T<sub>4</sub> &rarr; L1<sub>0</sub>+L2<sub>0</sub>+L3<sub>0</sub>
- C<sub>1</sub> = T<sub>1</sub>+T<sub>5</sub> &rarr; L1<sub>1</sub>+L2<sub>1</sub>+L3<sub>0</sub>
- C<sub>2</sub> = T<sub>2</sub>+T<sub>6</sub> &rarr; L1<sub>2</sub>+L2<sub>2</sub>+L3<sub>0</sub>
- C<sub>3</sub> = T<sub>3</sub>+T<sub>7</sub> &rarr; L1<sub>3</sub>+L2<sub>3</sub>+L3<sub>0</sub>
Example 2 (AMD Ryzen 5 1600):
```
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 3800.0000 1550.0000
1 0 0 0 0:0:0:0 yes 3800.0000 1550.0000
2 0 0 1 1:1:1:0 yes 3800.0000 1550.0000
3 0 0 1 1:1:1:0 yes 3800.0000 1550.0000
4 0 0 2 2:2:2:0 yes 3800.0000 1550.0000
5 0 0 2 2:2:2:0 yes 3800.0000 1550.0000
6 0 0 3 3:3:3:1 yes 3800.0000 1550.0000
7 0 0 3 3:3:3:1 yes 3800.0000 1550.0000
8 0 0 4 4:4:4:1 yes 3800.0000 1550.0000
9 0 0 4 4:4:4:1 yes 3800.0000 1550.0000
10 0 0 5 5:5:5:1 yes 3800.0000 1550.0000
11 0 0 5 5:5:5:1 yes 3800.0000 1550.0000
```
- C<sub>0</sub> = T<sub>0</sub>+T<sub>1</sub> &rarr; L1<sub>0</sub>+L2<sub>0</sub>+L3<sub>0</sub>
- C<sub>1</sub> = T<sub>2</sub>+T<sub>3</sub> &rarr; L1<sub>1</sub>+L2<sub>1</sub>+L3<sub>0</sub>
- C<sub>2</sub> = T<sub>4</sub>+T<sub>5</sub> &rarr; L1<sub>2</sub>+L2<sub>2</sub>+L3<sub>0</sub>
- C<sub>3</sub> = T<sub>6</sub>+T<sub>7</sub> &rarr; L1<sub>3</sub>+L2<sub>3</sub>+L3<sub>1</sub>
- C<sub>4</sub> = T<sub>8</sub>+T<sub>9</sub> &rarr; L1<sub>4</sub>+L2<sub>4</sub>+L3<sub>1</sub>
- C<sub>5</sub> = T<sub>10</sub>+T<sub>11</sub> &rarr; L1<sub>5</sub>+L2<sub>5</sub>+L3<sub>1</sub>
2. Select which CPU cores to 'pin'. You should aim to select a combination of CPU cores that minimises sharing of caches between Windows and GNU/Linux.
Example 1:
- CPU cores share the same singular L3 cache, so this cannot be optimised.
- CPU cores utilise different L1 and L2 caches, so isolatng corresponding thread pairs will help improve performance.
- Thus, if limiting the virtual machine to a maximum of 4 threads, there are 10 possible optimal configurations:
- T<sub>0</sub>+T<sub>4</sub>
- T<sub>1</sub>+T<sub>5</sub>
- T<sub>2</sub>+T<sub>6</sub>
- T<sub>3</sub>+T<sub>7</sub>
- T<sub>0</sub>+T<sub>4</sub>+T<sub>1</sub>+T<sub>5</sub>
- T<sub>0</sub>+T<sub>4</sub>+T<sub>2</sub>+T<sub>6</sub>
- T<sub>0</sub>+T<sub>4</sub>+T<sub>3</sub>+T<sub>7</sub>
- T<sub>1</sub>+T<sub>5</sub>+T<sub>2</sub>+T<sub>6</sub>
- T<sub>1</sub>+T<sub>5</sub>+T<sub>3</sub>+T<sub>7</sub>
- T<sub>2</sub>+T<sub>6</sub>+T<sub>3</sub>+T<sub>7</sub>
Example 2:
- Threads 0-5 utilise one L3 cache whereas threads 6-11 utilise a different L3 cache. Thus, one of these two sets of threads should be pinned to the virtual machine.
- Pinning and isolating fewer than these (e.g. threads 8-11) would result in the host system making use of the L3 cache in threads 6 and 7, resulting in cache evictions and therefore bad performance.
- Thus, there are only two possible optimal configurations:
- T<sub>0</sub>+T<sub>1</sub>+T<sub>2</sub>+T<sub>3</sub>+T<sub>4</sub>+T<sub>5</sub>
- T<sub>6</sub>+T<sub>7</sub>+T<sub>8</sub>+T<sub>9</sub>+T<sub>10</sub>+T<sub>11</sub>
3. Prepare and add/modify the following to the `<vcpu>`, `<cputune>` and `<cpu>` sections, adjusting the values to match your selected threads.
Example 1: The following selects 'T<sub>2</sub>+T<sub>6</sub>+T<sub>3</sub>+T<sub>7</sub>'.
```xml
<vcpu placement="static">4</vcpu>
<cputune>
<vcpupin vcpu="0" cpuset="2"/>
<vcpupin vcpu="1" cpuset="6"/>
<vcpupin vcpu="2" cpuset="3"/>
<vcpupin vcpu="3" cpuset="7"/>
</cputune>
<cpu mode="host-passthrough" check="none" migratable="on">
<topology sockets="1" dies="1" clusters="1" cores="2" threads="2"/>
</cpu>
```
Example 2: The following selects 'T<sub>6</sub>+T<sub>7</sub>+T<sub>8</sub>+T<sub>9</sub>+T<sub>10</sub>+T<sub>11</sub>'.
```xml
<vcpu placement="static">6</vcpu>
<cputune>
<vcpupin vcpu="0" cpuset="6"/>
<vcpupin vcpu="1" cpuset="7"/>
<vcpupin vcpu="2" cpuset="8"/>
<vcpupin vcpu="3" cpuset="9"/>
<vcpupin vcpu="4" cpuset="10"/>
<vcpupin vcpu="5" cpuset="11"/>
</cputune>
<cpu mode="host-passthrough" check="none" migratable="on">
<topology sockets="1" dies="1" clusters="1" cores="3" threads="2"/>
</cpu>
```
> [!NOTE]
> More information on configuring CPU pinning can be found in [this excellent guide](https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#CPU_pinning).
11. Navigate to the `XML` tab, and edit the `<clock>` section to disable all timers except for the hypervclock, thereby drastically reducing idle CPU usage. Once changed, click `Apply`.
10. Navigate to the `XML` tab, and edit the `<clock>` section to disable all timers except for the hypervclock, thereby drastically reducing idle CPU usage. Once changed, click `Apply`.
```xml
<clock offset='localtime'>
<timer name='rtc' present='no' tickpolicy='catchup'/>
@@ -268,7 +165,7 @@ Together, these components form a powerful and flexible virtualization stack, wi
<img src="./libvirt_images/09.png" width="700px"/>
</p>
12. Enable Hyper-V enlightenments by adding the following to the `<hyperv>` section. Once changed, click `Apply`.
11. Enable Hyper-V enlightenments by adding the following to the `<hyperv>` section. Once changed, click `Apply`.
```xml
<hyperv>
@@ -291,7 +188,7 @@ Together, these components form a powerful and flexible virtualization stack, wi
> [!NOTE]
> Hyper-V enlightenments make Windows (and other Hyper-V guests) think they are running on top of a Hyper-V compatible hypervisor. This enables use of Hyper-V specific features, allowing `KVM` to implement paravirtualised interfaces for improved virtual machine performance.
13. Add the following XML snippet within the `<devices>` section to enable the GNU/Linux host to communicate with Windows using `QEMU Guest Agent`.
12. Add the following XML snippet within the `<devices>` section to enable the GNU/Linux host to communicate with Windows using `QEMU Guest Agent`.
```xml
<channel type='unix'>
@@ -301,31 +198,31 @@ Together, these components form a powerful and flexible virtualization stack, wi
</channel>
```
14. In the 'Memory' section, set the `Current allocation` to the minimum amount of memory you want the virtual machine to use, with a recommended value of `1024MB`.
13. In the 'Memory' section, set the `Current allocation` to the minimum amount of memory you want the virtual machine to use, with a recommended value of `1024MB`.
<p align="center">
<img src="./libvirt_images/10.png" width="500px"/>
</p>
15. (Optional) Under `Boot Options`, enable `Start virtual machine on host boot up`.
14. (Optional) Under `Boot Options`, enable `Start virtual machine on host boot up`.
<p align="center">
<img src="./libvirt_images/11.png" width="500px"/>
</p>
16. Navigate to 'SATA Disk 1' and set the `Disk bus` type to `VirtIO`. This allows disk access to be paravirtualised, improving virtual machine performance.
15. Navigate to 'SATA Disk 1' and set the `Disk bus` type to `VirtIO`. This allows disk access to be paravirtualised, improving virtual machine performance.
<p align="center">
<img src="./libvirt_images/12.png" width="500px"/>
</p>
17. Navigate to 'NIC' and set the `Device model` type to `virtio` to enable paravirtualised networking.
16. Navigate to 'NIC' and set the `Device model` type to `virtio` to enable paravirtualised networking.
<p align="center">
<img src="./libvirt_images/13.png" width="500px"/>
</p>
18. Click the `Add Hardware` button in the lower left, and choose `Storage`. For `Device type`, select `CDROM device` and choose the VirtIO driver `.ISO` you downloaded earlier. Click `Finish` to add the new CD-ROM device.
17. Click the `Add Hardware` button in the lower left, and choose `Storage`. For `Device type`, select `CDROM device` and choose the VirtIO driver `.ISO` you downloaded earlier. Click `Finish` to add the new CD-ROM device.
> [!IMPORTANT]
> If you skip this step, the Windows installer will fail to recognise and list the virtual hard drive you created earlier.
@@ -334,14 +231,121 @@ Together, these components form a powerful and flexible virtualization stack, wi
<img src="./libvirt_images/14.png" width="500px"/>
</p>
19. Click `Begin Installation` in the top left.
<details>
<summary><strong>(Optional) Assign Specific Physical CPU Cores</strong></summary>
<p align="center">
<img src="./libvirt_images/15.png" width="700px"/>
</p>
Assigning specific physical CPU cores to the virtual machine can improve performance by reducing context switching and ensuring that the virtual machine's workload consistently uses the same cores, leading to better CPU cache utilisation. This is an optional step.
1. Run `lscpu -e` to determine which L1, L2 and L3 caches are associated with which CPU cores.
Example 1 (Intel 11th Gen Core i7-1185G7):
```
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 4800.0000 400.0000
1 0 0 1 1:1:1:0 yes 4800.0000 400.0000
2 0 0 2 2:2:2:0 yes 4800.0000 400.0000
3 0 0 3 3:3:3:0 yes 4800.0000 400.0000
4 0 0 0 0:0:0:0 yes 4800.0000 400.0000
5 0 0 1 1:1:1:0 yes 4800.0000 400.0000
6 0 0 2 2:2:2:0 yes 4800.0000 400.0000
7 0 0 3 3:3:3:0 yes 4800.0000 400.0000
```
- C<sub>0</sub> = T<sub>0</sub>+T<sub>4</sub> &rarr; L1<sub>0</sub>+L2<sub>0</sub>+L3<sub>0</sub>
- C<sub>1</sub> = T<sub>1</sub>+T<sub>5</sub> &rarr; L1<sub>1</sub>+L2<sub>1</sub>+L3<sub>0</sub>
- C<sub>2</sub> = T<sub>2</sub>+T<sub>6</sub> &rarr; L1<sub>2</sub>+L2<sub>2</sub>+L3<sub>0</sub>
- C<sub>3</sub> = T<sub>3</sub>+T<sub>7</sub> &rarr; L1<sub>3</sub>+L2<sub>3</sub>+L3<sub>0</sub>
Example 2 (AMD Ryzen 5 1600):
```
CPU NODE SOCKET CORE L1d:L1i:L2:L3 ONLINE MAXMHZ MINMHZ
0 0 0 0 0:0:0:0 yes 3800.0000 1550.0000
1 0 0 0 0:0:0:0 yes 3800.0000 1550.0000
2 0 0 1 1:1:1:0 yes 3800.0000 1550.0000
3 0 0 1 1:1:1:0 yes 3800.0000 1550.0000
4 0 0 2 2:2:2:0 yes 3800.0000 1550.0000
5 0 0 2 2:2:2:0 yes 3800.0000 1550.0000
6 0 0 3 3:3:3:1 yes 3800.0000 1550.0000
7 0 0 3 3:3:3:1 yes 3800.0000 1550.0000
8 0 0 4 4:4:4:1 yes 3800.0000 1550.0000
9 0 0 4 4:4:4:1 yes 3800.0000 1550.0000
10 0 0 5 5:5:5:1 yes 3800.0000 1550.0000
11 0 0 5 5:5:5:1 yes 3800.0000 1550.0000
```
- C<sub>0</sub> = T<sub>0</sub>+T<sub>1</sub> &rarr; L1<sub>0</sub>+L2<sub>0</sub>+L3<sub>0</sub>
- C<sub>1</sub> = T<sub>2</sub>+T<sub>3</sub> &rarr; L1<sub>1</sub>+L2<sub>1</sub>+L3<sub>0</sub>
- C<sub>2</sub> = T<sub>4</sub>+T<sub>5</sub> &rarr; L1<sub>2</sub>+L2<sub>2</sub>+L3<sub>0</sub>
- C<sub>3</sub> = T<sub>6</sub>+T<sub>7</sub> &rarr; L1<sub>3</sub>+L2<sub>3</sub>+L3<sub>1</sub>
- C<sub>4</sub> = T<sub>8</sub>+T<sub>9</sub> &rarr; L1<sub>4</sub>+L2<sub>4</sub>+L3<sub>1</sub>
- C<sub>5</sub> = T<sub>10</sub>+T<sub>11</sub> &rarr; L1<sub>5</sub>+L2<sub>5</sub>+L3<sub>1</sub>
2. Select which CPU cores to 'pin'. You should aim to select a combination of CPU cores that minimises sharing of caches between Windows and GNU/Linux.
Example 1:
- CPU cores share the same singular L3 cache, so this cannot be optimised.
- CPU cores utilise different L1 and L2 caches, so isolating corresponding thread pairs will help improve performance.
- Thus, if limiting the virtual machine to a maximum of 4 threads, there are 10 possible optimal configurations:
- T<sub>0</sub>+T<sub>4</sub>
- T<sub>1</sub>+T<sub>5</sub>
- T<sub>2</sub>+T<sub>6</sub>
- T<sub>3</sub>+T<sub>7</sub>
- T<sub>0</sub>+T<sub>4</sub>+T<sub>1</sub>+T<sub>5</sub>
- T<sub>0</sub>+T<sub>4</sub>+T<sub>2</sub>+T<sub>6</sub>
- T<sub>0</sub>+T<sub>4</sub>+T<sub>3</sub>+T<sub>7</sub>
- T<sub>1</sub>+T<sub>5</sub>+T<sub>2</sub>+T<sub>6</sub>
- T<sub>1</sub>+T<sub>5</sub>+T<sub>3</sub>+T<sub>7</sub>
- T<sub>2</sub>+T<sub>6</sub>+T<sub>3</sub>+T<sub>7</sub>
Example 2:
- Threads 0-5 utilise one L3 cache whereas threads 6-11 utilise a different L3 cache. Thus, one of these two sets of threads should be pinned to the virtual machine.
- Pinning and isolating fewer than these (e.g. threads 8-11) would result in the host system making use of the L3 cache in threads 6 and 7, resulting in cache evictions and therefore bad performance.
- Thus, there are only two possible optimal configurations:
- T<sub>0</sub>+T<sub>1</sub>+T<sub>2</sub>+T<sub>3</sub>+T<sub>4</sub>+T<sub>5</sub>
- T<sub>6</sub>+T<sub>7</sub>+T<sub>8</sub>+T<sub>9</sub>+T<sub>10</sub>+T<sub>11</sub>
3. Prepare and add/modify the following to the `<vcpu>`, `<cputune>` and `<cpu>` sections, adjusting the values to match your selected threads.
Example 1: The following selects 'T<sub>2</sub>+T<sub>6</sub>+T<sub>3</sub>+T<sub>7</sub>'.
```xml
<vcpu placement="static">4</vcpu>
<cputune>
<vcpupin vcpu="0" cpuset="2"/>
<vcpupin vcpu="1" cpuset="6"/>
<vcpupin vcpu="2" cpuset="3"/>
<vcpupin vcpu="3" cpuset="7"/>
</cputune>
<cpu mode="host-passthrough" check="none" migratable="on">
<topology sockets="1" dies="1" clusters="1" cores="2" threads="2"/>
</cpu>
```
Example 2: The following selects 'T<sub>6</sub>+T<sub>7</sub>+T<sub>8</sub>+T<sub>9</sub>+T<sub>10</sub>+T<sub>11</sub>'.
```xml
<vcpu placement="static">6</vcpu>
<cputune>
<vcpupin vcpu="0" cpuset="6"/>
<vcpupin vcpu="1" cpuset="7"/>
<vcpupin vcpu="2" cpuset="8"/>
<vcpupin vcpu="3" cpuset="9"/>
<vcpupin vcpu="4" cpuset="10"/>
<vcpupin vcpu="5" cpuset="11"/>
</cputune>
<cpu mode="host-passthrough" check="none" migratable="on">
<topology sockets="1" dies="1" clusters="1" cores="3" threads="2"/>
</cpu>
```
> [!NOTE]
> More information on configuring CPU pinning can be found in [this excellent guide](https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#CPU_pinning).
</details>
### Example `.XML` File
Below is an example `.XML` file that describes a Windows 11 virtual machine.
<details>
<summary><strong>Example .XML File</strong></summary>
```xml
<domain type="kvm">
@@ -564,14 +568,21 @@ Below is an example `.XML` file that describes a Windows 11 virtual machine.
</domain>
```
</details>
## Install Windows
Install Windows as you would on any other machine.
Click `Begin Installation` in the top left.
<p align="center">
<img src="./libvirt_images/15.png" width="700px"/>
</p>
<p align="center">
<img src="./libvirt_images/16.png" width="700px"/>
</p>
Once you get to the point of selecting the location for installation, you will see there are no disks available. This is because the `VirtIO driver` needs to be specified manually.
1. Select `Load driver`.
<p align="center">
@@ -616,19 +627,17 @@ Following the above, choose to "Continue with limited setup".
</p>
## Final Configuration Steps
Open `File Explorer` and navigate to the drive where the `VirtIO` driver `.ISO` is mounted. Run `virtio-win-gt-x64.exe` to launch the `VirtIO` driver installer.
Open `File Explorer` and navigate to the drive where the "virtio-win" `.iso` is mounted. Run `virtio-win-guest-tools.exe` to install all necessary drivers as well as `QEMU Guest Agent`. Leave everything as default and click `Next` through the installer.
<p align="center">
<img src="./libvirt_images/24.png" width="700px"/>
</p>
Leave everything as default and click `Next` through the installer. This will install all required device drivers as well as the 'Memory Ballooning' service.
<p align="center">
<img src="./libvirt_images/25.png" width="700px"/>
</p>
Next, install the `QEMU Guest Agent` within Windows. This agent allows the GNU/Linux host to request a graceful shutdown of the Windows system. To do this, either run `virtio-win-guest-tools.exe` or `guest-agent\qemu-ga-x86_64.msi`. You can confirm the guest agent was successfully installed by running `Get-Service QEMU-GA` within a PowerShell window. The output should resemble:
Confirm `QEMU Guest Agent` was successfully installed by running `Get-Service QEMU-GA` within a PowerShell window. The output should resemble:
```
Status Name DisplayName
@@ -636,51 +645,42 @@ 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 'Container.reg'** - this file is only required for users using docker or podman.
<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"/>
</p>
Rename the Windows virtual machine so that WinApps can locate it by navigating to the start menu and typing `About` to bring up the `About your PC` settings.
Once this is complete, restart the Windows virtual machine.
<p align="center">
<img src="./libvirt_images/28.png" width="700px"/>
</p>
<details>
<summary><strong>(Optional) Configuring a Fallback Shared Folder</strong></summary>
Scroll down and click on `Rename this PC`.
<p align="center">
<img src="./libvirt_images/29.png" width="700px"/>
</p>
Rename the PC to `RDPWindows`, but **DO NOT** restart the virtual machine.
<p align="center">
<img src="./libvirt_images/30.png" width="700px"/>
</p>
Scroll down to `Remote Desktop`, and enable `Enable Remote Desktop`.
<p align="center">
<img src="./libvirt_images/31.png" width="700px"/>
</p>
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".
@@ -697,7 +697,11 @@ When connecting to Windows through FreeRDP, your home folder will be shared auto
5. Reboot Windows.
## (Optional) Configuring a Static IP Address
</details>
<details>
<summary><strong>(Optional) Configuring a Static IP Address</strong></summary>
1. Identify the Windows MAC address.
```bash
virsh dumpxml "RDPWindows" | grep "mac address"
@@ -732,12 +736,18 @@ When connecting to Windows through FreeRDP, your home folder will be shared auto
5. Reboot Windows.
</details>
<details>
<summary><strong>(Optional) Installing Spice Guest Tools</strong></summary>
You may also wish to install [Spice Guest Tools](https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe) inside the virtual machine, which enables features like auto-desktop resize and cut-and-paste when accessing the virtual machine through `virt-manager`. Since WinApps uses RDP, however, this is unnecessary if you don't plan to access the virtual machine via `virt-manager`.
</details>
## 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]
> You may also wish to install [Spice Guest Tools](https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe) inside the virtual machine, which enables features like auto-desktop resize and cut-and-paste when accessing the virtual machine through `virt-manager`. Since WinApps uses RDP, however, this is unnecessary if you don't plan to access the virtual machine via `virt-manager`.
> [!IMPORTANT]
> Ensure `WAFLAVOR` is set to `"libvirt"` in your `~/.config/winapps/winapps.conf` to prevent WinApps looking for a `Docker` installation instead.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 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

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View File

Before

Width:  |  Height:  |  Size: 184 KiB

After

Width:  |  Height:  |  Size: 184 KiB

View File

Before

Width:  |  Height:  |  Size: 5.4 MiB

After

Width:  |  Height:  |  Size: 5.4 MiB

BIN
docs/readme/launcher.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 MiB

View File

Before

Width:  |  Height:  |  Size: 872 B

After

Width:  |  Height:  |  Size: 872 B

92
flake.lock generated Normal file
View File

@@ -0,0 +1,92 @@
{
"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"
}
},
"nix-filter": {
"locked": {
"lastModified": 1731533336,
"narHash": "sha256-oRam5PS1vcrr5UPgALW0eo1m/5/pls27Z/pabHNy2Ms=",
"owner": "numtide",
"repo": "nix-filter",
"rev": "f7653272fd234696ae94229839a99b73c9ab7de0",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "nix-filter",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1751984180,
"narHash": "sha256-LwWRsENAZJKUdD3SpLluwDmdXY9F45ZEgCb0X+xgOL0=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9807714d6944a957c2e036f84b0ff8caf9930bc0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nix-filter": "nix-filter",
"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
}

43
flake.nix Normal file
View File

@@ -0,0 +1,43 @@
{
description = "WinApps Nix packages";
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";
nix-filter.url = "github:numtide/nix-filter";
};
nixConfig = {
extra-substituters = [
"https://cache.garnix.io"
];
extra-trusted-public-keys = [
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
];
};
outputs =
{
nixpkgs,
flake-utils,
nix-filter,
...
}:
flake-utils.lib.eachDefaultSystem (
system:
let
pkgs = import nixpkgs { inherit system; };
in
rec {
formatter = pkgs.nixfmt-rfc-style;
packages.winapps = pkgs.callPackage ./packages/winapps { inherit nix-filter; };
packages.winapps-launcher = pkgs.callPackage ./packages/winapps-launcher {
inherit (packages) winapps;
};
}
);
}

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