[kde-linux/package-compatibility-helper] /: Revert app_db.json configure time download, update

Thomas Duckworth <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit cd394f4e232a70bb565466fe1b4449a22313ce68 by Thomas Duckworth.
Committed on 26/07/2026 at 01:37.
Pushed by tduck into branch 'master'.

Revert app_db.json configure time download, update

Doesn't work with buildstream or distro packaging, so, put it back.

A  +117  -0    LICENSES/GPL-2.0-or-later.txt
M  +1    -13   src/CMakeLists.txt
A  +2199 -0    src/app_db.json

https://invent.kde.org/kde-linux/package-compatibility-helper/-/commit/cd394f4e232a70bb565466fe1b4449a22313ce68

diff --git a/LICENSES/GPL-2.0-or-later.txt b/LICENSES/GPL-2.0-or-later.txt
new file mode 100644
index 0000000..17cb286
--- /dev/null
+++ b/LICENSES/GPL-2.0-or-later.txt
@@ -0,0 +1,117 @@
+GNU GENERAL PUBLIC LICENSE
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
+
+Preamble
+
[suppressed due to size limit]
+
+When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
+
+Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
[suppressed due to size limit]
+
+Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
+
+     a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
+
+     b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
+
[suppressed due to size limit]
+
[suppressed due to size limit]
+
+Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
+
+     a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+     b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
+
+     c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
+
[suppressed due to size limit]
+
+If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
+
[suppressed due to size limit]
+
+6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
[suppressed due to size limit]
+
+If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
[suppressed due to size limit]
+
+This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
+
+NO WARRANTY
+
[suppressed due to size limit]
+
[suppressed due to size limit]
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
+
+     one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author
+
+     This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
+
+     This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+     You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
+
+     Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
+
+     Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 11013c4..3bf3584 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -41,22 +41,10 @@ target_link_libraries(packagecompatibilityhelper_static PUBLIC
 )
 target_include_directories(packagecompatibilityhelper_static PUBLIC ${CMAKE_BINARY_DIR})
 
-# Download app_db.json from ZorinOS
-message(STATUS "Fetching latest app_db.json from ZorinOS GitHub...")
-file(DOWNLOAD
-    "https://raw.githubusercontent.com/ZorinOS/zorin-exec-guard-app-db/refs/heads/master/app_db.json"
-    "${CMAKE_CURRENT_BINARY_DIR}/app_db.json"
-    STATUS download_status
-)
-list(GET download_status 0 status_code)
-if(NOT status_code EQUAL 0)
-    message(FATAL_ERROR "Failed to download app_db.json: ${download_status}")
-endif()
-
 # Target: main executable
 add_executable(package-compatibility-helper main.cpp)
 target_link_libraries(package-compatibility-helper PUBLIC packagecompatibilityhelper_static packagecompatibilityhelper_staticplugin)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/app_db.json DESTINATION ${KDE_INSTALL_DATADIR}/${PROJECT_NAME})
+install(FILES app_db.json DESTINATION ${KDE_INSTALL_DATADIR}/${PROJECT_NAME})
 install(FILES ${CMAKE_SOURCE_DIR}/data/apps/wine.conf
               ${CMAKE_SOURCE_DIR}/data/apps/dosbox.conf
         DESTINATION ${KDE_INSTALL_DATADIR}/${PROJECT_NAME}/apps)
diff --git a/src/app_db.json b/src/app_db.json
new file mode 100644
index 0000000..8314353
--- /dev/null
+++ b/src/app_db.json
@@ -0,0 +1,2199 @@
+[
+    {
+        "regex": {
+            "windows": "firefox\\s+setup.*.(exe|msi)",
+            "linux": "firefox.*"
+        },
+        "name": "Mozilla Firefox",
+        "flatpak": { "remote": "flathub", "id": "org.mozilla.firefox" },
+        "desktopLauncher": "firefox.desktop"
+    },
+    {
+        "regex": {
+            "windows": "(eie11|ie11).*.(exe|msi)"
+        },
+        "name": "Internet Explorer",
+        "flatpak": { "remote": "flathub", "id": "com.microsoft.Edge" },
+        "desktopLauncher": "microsoft-edge.desktop",
+        "alternative": {
+            "name": "Microsoft Edge"
+        }
+    },
+    {
+        "regex": {
+            "windows": "chrome.*.exe"
+        },
+        "name": "Google Chrome website",
+        "webLink": { "href": "https://www.google.com/chrome/" },
+        "mainMessage": "You can download Google Chrome (.deb package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "googleearthprowin.*.exe"
+        },
+        "name": "Google Earth website",
+        "webLink": { "href": "https://www.google.com/earth/about/versions/#download-pro" },
+        "mainMessage": "You can download Google Earth Pro (.deb package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+             "windows": "bravebrowsersetup.*.exe"
+        },
+        "name": "Brave Browser",
+        "flatpak": { "remote": "flathub", "id": "com.brave.Browser" },
+        "desktopLauncher": "brave-browser.desktop"
+    },
+    {
+        "regex": {
+             "windows": "microsoftedgesetup.*.(exe|msi)"
+        },
+        "name": "Microsoft Edge",
+        "flatpak": { "remote": "flathub", "id": "com.microsoft.Edge" },
+        "desktopLauncher": "microsoft-edge.desktop"
+    },
+    {
+        "regex": {
+             "windows": "operagxsetup.*.exe"
+        },
+        "name": "Opera GX",
+        "flatpak": { "remote": "flathub", "id": "com.opera.opera-gx" },
+        "desktopLauncher": "opera-gx.desktop"
+    },
+    {
+        "regex": {
+             "windows": "opera(.*.|)setup.*.(exe|msi)"
+        },
+        "name": "Opera",
+        "flatpak": { "remote": "flathub", "id": "com.opera.Opera" },
+        "desktopLauncher": "opera.desktop"
+    },
+    {
+        "regex": {
+             "windows": "vivaldi.*.exe"
+        },
+        "name": "Vivaldi Browser",
+        "flatpak": { "remote": "flathub", "id": "com.vivaldi.Vivaldi" },
+        "desktopLauncher": "vivaldi-stable.desktop"
+    },
+    {
+        "regex": {
+             "windows": "librewolf.*.exe"
+        },
+        "name": "LibreWolf",
+        "flatpak": { "remote": "flathub", "id": "io.gitlab.librewolf-community" },
+        "desktopLauncher": "librewolf.desktop"
+    },
+    {
+        "regex": {
+             "windows": "zen.installer.*.exe"
+        },
+        "name": "Zen Browser",
+        "flatpak": { "remote": "flathub", "id": "app.zen_browser.zen" }
+    },
+    {
+        "regex": {
+            "windows": "arcinstaller.*.exe"
+        },
+        "name": "Arc Browser",
+        "flatpak": { "remote": "flathub", "id": "app.zen_browser.zen" },
+        "alternative": {
+            "name": "Zen Browser"
+        }
+    },
+    {
+        "regex": {
+            "windows": ".*.samsungbrowsersetup.*.exe"
+        },
+        "name": "Samsung Browser",
+        "flatpak": { "remote": "flathub", "id": "com.brave.Browser" },
+        "desktopLauncher": "brave-browser.desktop",
+        "alternative": {
+            "name": "Brave Browser"
+        }
+    },
+    {
+        "regex": {
+            "windows": "comet_installer_latest.*.exe"
+        },
+        "name": "Comet Browser",
+        "flatpak": { "remote": "flathub", "id": "com.brave.Browser" },
+        "desktopLauncher": "brave-browser.desktop",
+        "alternative": {
+            "name": "Brave Browser"
+        }
+    },
+    {
+        "regex": {
+             "windows": "waterfox.*.setup.*.exe"
+        },
+        "name": "Waterfox",
+        "flatpak": { "remote": "flathub", "id": "net.waterfox.waterfox" }
+    },
+    {
+        "regex": {
+             "windows": "ungoogled-chromium.*.installer.*.exe"
+        },
+        "name": "Ungoogled Chromium",
+        "flatpak": { "remote": "flathub", "id": "io.github.ungoogled_software.ungoogled_chromium" }
+    },
+    {
+        "regex": {
+             "windows": "floorp.*.installer.*.exe"
+        },
+        "name": "Floorp",
+        "flatpak": { "remote": "flathub", "id": "one.ablaze.floorp" },
+        "desktopLauncher": "floorp.desktop"
+    },
+    {
+        "regex": {
+             "windows": "mullvad-browser-windows.*.exe"
+        },
+        "name": "Mullvad Browser",
+        "flatpak": { "remote": "flathub", "id": "net.mullvad.MullvadBrowser" },
+        "desktopLauncher": "mullvad-browser.desktop"
+    },
+    {
+        "regex": {
+            "windows": "thunderbird\\s+setup.*.(exe|msi)"
+        },
+        "name": "Thunderbird Mail",
+        "desktopLauncher": "thunderbird.desktop"
+    },
+    {
+        "regex": {
+            "windows": "outlook.*.for.*.windows.*.installer.*.exe"
+        },
+        "name": "Outlook for Windows",
+        "desktopLauncher": "org.gnome.Evolution.desktop",
+        "apt": "evolution",
+        "alternative": {
+            "name": "Evolution"
+        }
+    },
+    {
+        "regex": {
+            "windows": "mailspringsetup.*.exe"
+        },
+        "name": "Mailspring",
+        "flatpak": { "remote": "flathub", "id": "com.getmailspring.Mailspring" },
+        "desktopLauncher": "Mailspring.desktop"
+    },
+    {
+        "regex": {
+             "windows": "nextcloud.*.msi"
+        },
+        "name": "Nextcloud",
+        "flatpak": { "remote": "flathub", "id": "com.nextcloud.desktopclient.nextcloud" },
+        "desktopLauncher": "com.nextcloud.desktopclient.nextcloud.desktop"
+    },
+    {
+        "regex": {
+            "windows": "dropbox.*.exe"
+        },
+        "name": "Dropbox website",
+        "webLink": { "href": "https://www.dropbox.com/install?os=lnx" },
+        "mainMessage": "You can download Dropbox (Ubuntu package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+             "windows": "skype.*.exe",
+             "linux": "skype.*"
+        },
+        "name": "Skype",
+        "flatpak": { "remote": "flathub", "id": "com.skype.Client" },
+        "desktopLauncher": "skype_skypeforlinux.desktop"
+    },
+    {
+        "regex": {
+            "windows": "googledrivesetup.*.exe"
+        },
+        "name": "Google Drive",
+        "desktopLauncher": "gnome-online-accounts-panel.desktop",
+        "alternative": {
+            "name": "Online Accounts"
+        }
+    },
+    {
+        "regex": {
+            "windows": "flux-setup.*.exe"
+        },
+        "name": "f.lux",
+        "desktopLauncher": "gnome-display-panel.desktop",
+        "alternative": {
+            "name": "Night Light"
+        }
+    },
+    {
+        "regex": {
+            "windows": "mpc-hc.*.exe"
+        },
+        "name": "MPC-HC",
+        "desktopLauncher": "org.gnome.Totem.desktop",
+        "alternative": {
+            "name": "Videos"
+        }
+    },
+    {
+        "regex": {
+            "windows": "reader.*.exe"
+        },
+        "name": "Adobe Reader",
+        "desktopLauncher": "org.gnome.Evince.desktop",
+        "alternative": {
+            "name": "Document Viewer"
+        }
+    },
+    {
+        "regex": {
+            "windows": "acrordr.*.exe"
+        },
+        "name": "Adobe Acrobat Reader",
+        "desktopLauncher": "org.gnome.Evince.desktop",
+        "alternative": {
+            "name": "Document Viewer"
+        }
+    },
+    {
+        "regex": {
+            "windows": "sumatrapdf.*.install.*.exe"
+        },
+        "name": "Sumatra PDF",
+        "desktopLauncher": "org.gnome.Evince.desktop",
+        "alternative": {
+            "name": "Document Viewer"
+        }
+    },
+    {
+        "regex": {
+            "windows": "foxit-pdf-reader.*.exe"
+        },
+        "name": "Foxit PDF Reader",
+        "desktopLauncher": "org.gnome.Evince.desktop",
+        "alternative": {
+            "name": "Document Viewer"
+        }
+    },
+    {
+        "regex": {
+            "windows": "nitro_pro.*.(exe|msi)"
+        },
+        "name": "Nitro PDF",
+        "desktopLauncher": "libreoffice-draw.desktop",
+        "alternative": {
+            "name": "LibreOffice Draw"
+        }
+    },
+    {
+        "regex": {
+            "windows": "abbyy_finereader_pdf.*.(exe|msi)"
+        },
+        "name": "ABBYY FineReader PDF",
+        "webLink": { "href": "https://www.naps2.com/download" },
+        "mainMessage": "You can download NAPS2 (Linux .deb installer) for Zorin OS from the web",
+        "alternative": {
+            "name": "NAPS2"
+        }
+    },
+    {
+        "regex": {
+            "windows": "foobar2000.*.exe"
+        },
+        "name": "foobar2000",
+        "flatpak": { "remote": "flathub", "id": "org.strawberrymusicplayer.strawberry" },
+        "desktopLauncher": "org.strawberrymusicplayer.strawberry.desktop",
+        "alternative": {
+            "name": "Strawberry Music Player"
+        }
+    },
+    {
+        "regex": {
+            "windows": "winamp.*.exe"
+        },
+        "name": "Winamp",
+        "flatpak": { "remote": "flathub", "id": "org.atheme.audacious" },
+        "desktopLauncher": "audacious.desktop",
+        "alternative": {
+            "name": "Audacious"
+        }
+    },
+    {
+        "regex": {
+            "windows": "(spotifysetup|spotify.*.installer).*.exe"
+        },
+        "name": "Spotify",
+        "flatpak": { "remote": "flathub", "id": "com.spotify.Client" },
+        "desktopLauncher": "spotify_spotify.desktop"
+    },
+    {
+        "regex": {
+            "windows": "apple.*.music.*.installer.*.exe"
+        },
+        "name": "Apple Music",
+        "webLink": { "href": "https://music.apple.com/" },
+        "mainMessage": "You can use Apple Music on the web"
+    },
+    {
+        "regex": {
+            "windows": "(itunes.*setup|itunes.*.installer).*.exe"
+        },
+        "name": "Apple iTunes",
+        "webLink": { "href": "https://music.apple.com/" },
+        "mainMessage": "You can use Apple Music on the web",
+        "alternative": {
+            "name": "Apple Music"
+        }
+    },
+    {
+        "regex": {
+            "windows": "amazonmusicinstaller.*.exe"
+        },
+        "name": "Amazon Music",
+        "webLink": { "href": "https://music.amazon.com/" },
+        "mainMessage": "You can use Amazon Music on the web"
+    },
+    {
+        "regex": {
+            "windows": "picard-setup.*.exe"
+        },
+        "name": " MusicBrainz Picard",
+        "flatpak": { "remote": "flathub", "id": "org.musicbrainz.Picard" },
+        "desktopLauncher": "org.musicbrainz.Picard.desktop"
+    },
+    {
+        "regex": {
+            "windows": "(plexmediaserver|plex.*.media.*.server.*.installer).*.exe"
+        },
+        "name": "Plex Media Server download page",
+        "webLink": { "href": "https://www.plex.tv/media-server-downloads/?cat=computer&plat=linux#plex-media-server" },
+        "mainMessage": "You can download Pled Media Server (Ubuntu .deb package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "(plex|plex.*.for.*.windows.*.installer).*.exe"
+        },
+        "name": "Plex",
+        "flatpak": { "remote": "flathub", "id": "tv.plex.PlexDesktop" },
+        "desktopLauncher": "plex-desktop_plex-desktop.desktop"
+    },
+    {
+        "regex": {
+            "windows": "jellyfin-desktop.*.exe"
+        },
+        "name": "Jellyfin Desktop",
+        "flatpak": { "remote": "flathub", "id": "org.jellyfin.JellyfinDesktop" }
+    },
+    {
+        "regex": {
+            "windows": "jellyfin.*.windows.*.exe"
+        },
+        "name": "Jellyfin Server",
+        "flatpak": { "remote": "flathub", "id": "org.jellyfin.JellyfinServer" }
+    },
+    {
+        "regex": {
+            "windows": "paint.net.*.exe"
+        },
+        "name": "Paint.NET",
+        "flatpak": { "remote": "flathub", "id": "com.github.PintaProject.Pinta" },
+        "desktopLauncher": "pinta.desktop",
+        "alternative": {
+            "name": "Pinta"
+        }
+    },
+    {
+        "regex": {
+            "windows": "krita.*.setup.*.exe"
+        },
+        "name": "Krita",
+        "flatpak": { "remote": "flathub", "id": "org.kde.krita" },
+        "desktopLauncher": "org.kde.krita.desktop"
+    },
+    {
+        "regex": {
+            "windows": "sketchbook.*.exe"
+        },
+        "name": "Autodesk SketchBook",
+        "flatpak": { "remote": "flathub", "id": "org.kde.krita" },
+        "desktopLauncher": "org.kde.krita.desktop",
+        "alternative": {
+            "name": "Krita"
+        }
+    },
+    {
+        "regex": {
+            "windows": "flstudio.*.exe"
+        },
+        "name": "FL Studio",
+        "flatpak": { "remote": "flathub", "id": "org.ardour.Ardour" },
+        "desktopLauncher": "ardour.desktop",
+        "alternative": {
+            "name": "Ardour"
+        }
+    },
+    {
+        "regex": {
+            "windows": "ableton\\s+live.*.exe"
+        },
+        "name": "Ableton Live",
+        "flatpak": { "remote": "flathub", "id": "com.bitwig.BitwigStudio" },
+        "desktopLauncher": "bitwig-studio.desktop",
+        "alternative": {
+            "name": "Bitwig Studio"
+        }
+    },
+    {
+        "regex": {
+            "windows": "bitwig\\s+studio.*.(exe|msi)",
+            "linux": "bitwig-studio.*"
+        },
+        "name": "Bitwig Studio",
+        "flatpak": { "remote": "flathub", "id": "com.bitwig.BitwigStudio" },
+        "desktopLauncher": "bitwig-studio.desktop"
+    },
+    {
+        "regex": {
+            "windows": "epicinstaller.*.msi"
+        },
+        "name": "Epic Games Store",
+        "flatpak": { "remote": "flathub", "id": "com.heroicgameslauncher.hgl" },
+        "desktopLauncher": "com.heroicgameslauncher.hgl.desktop",
+        "alternative": {
+            "name": "Heroic Games Launcher"
+        }
+    },
+    {
+        "regex": {
+            "windows": "gog_galaxy.*.exe"
+        },
+        "name": "GOG Galaxy",
+        "flatpak": { "remote": "flathub", "id": "com.heroicgameslauncher.hgl" },
+        "desktopLauncher": "com.heroicgameslauncher.hgl.desktop",
+        "alternative": {
+            "name": "Heroic Games Launcher"
+        }
+    },
+    {
+        "regex": {
+            "windows": "battle.net.*.exe"
+        },
+        "name": "Battle.net",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "bethesdanetlauncher_setup.*.exe"
+        },
+        "name": "Bethesda Launcher",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "originthinsetup.*.exe"
+        },
+        "name": "Origin",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "ubisoftconnectinstaller.*.exe"
+        },
+        "name": "Ubisoft Connect",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "itch-setup.*.exe"
+        },
+        "name": "Itch website",
+        "webLink": { "href": "https://itch.io/app/" },
+        "mainMessage": "You can download Itch (Linux package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+             "windows": "geforcenow-release.*.exe"
+        },
+        "name": "GeForce NOW website",
+        "webLink": { "href": "https://www.nvidia.com/en-us/geforce-now/download/" },
+        "mainMessage": "You can download NVIDIA GeForce NOW (Linux installer) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "antimicro.*.win64.*.msi"
+        },
+        "name": "AntiMicro",
+        "desktopLauncher": "qjoypad.desktop",
+        "alternative": {
+            "name": "QJoypad"
+        }
+    },
+    {
+        "regex": {
+            "windows": "xpadder.*.exe"
+        },
+        "name": "Xpadder",
+        "desktopLauncher": "qjoypad.desktop",
+        "alternative": {
+            "name": "QJoypad"
+        }
+    },
+    {
+        "regex": {
+            "windows": "gimp.*.setup.*.(exe|msi)",
+            "linux": "gimp.*"
+        },
+        "name": "GNU Image Manipulation Program",
+        "apt": "gimp",
+        "flatpak": { "remote": "flathub", "id": "org.gimp.GIMP" },
+        "desktopLauncher": "gimp.desktop"
+    },
+    {
+        "regex": {
+            "windows": "(creative.*.cloud.*.set-up|adobe.*.creative.*.cloud.*.installer).*.(exe|msi)"
+        },
+        "name": "Adobe Creative Cloud",
+        "webLink": { "href": "https://www.adobe.com/apps/all/web" },
+        "mainMessage": "You can use some Adobe apps on the web",
+        "alternative": {
+            "name": "Adobe Creative Cloud on the web"
+        }
+    },
+    {
+        "regex": {
+            "windows": "adobe.*.photoshop.*.installer.*.exe"
+        },
+        "name": "Adobe Photoshop",
+        "webLink": { "href": "https://www.adobe.com/apps/all/web" },
+        "mainMessage": "You can use Adobe Photoshop on the web",
+        "alternative": {
+            "name": "Adobe Creative Cloud on the web"
+        }
+    },
+    {
+        "regex": {
+            "windows": "adobe.*.lightroom.*.installer.*.exe"
+        },
+        "name": "Adobe Lightroom",
+        "webLink": { "href": "https://www.adobe.com/apps/all/web" },
+        "mainMessage": "You can use Adobe Lightroom on the web",
+        "alternative": {
+            "name": "Adobe Creative Cloud on the web"
+        }
+    },
+    {
+        "regex": {
+            "windows": "adobe.*.illustrator.*.installer.*.exe"
+        },
+        "name": "Adobe Illustrator",
+        "webLink": { "href": "https://www.adobe.com/apps/all/web" },
+        "mainMessage": "You can use Adobe Illustrator on the web",
+        "alternative": {
+            "name": "Adobe Creative Cloud on the web"
+        }
+    },
+    {
+        "regex": {
+            "windows": "adobe.*.premiere.*.installer.*.exe"
+        },
+        "name": "Adobe Premiere",
+        "flatpak": { "remote": "flathub", "id": "org.kde.kdenlive" },
+        "desktopLauncher": "org.kde.kdenlive.desktop",
+        "alternative": {
+            "name": "Kdenlive"
+        }
+    },
+    {
+        "regex": {
+            "windows": "vegas.*.pro.*.exe"
+        },
+        "name": "VEGAS Pro",
+        "flatpak": { "remote": "flathub", "id": "org.kde.kdenlive" },
+        "desktopLauncher": "org.kde.kdenlive.desktop",
+        "alternative": {
+            "name": "Kdenlive"
+        }
+    },
+    {
+        "regex": {
+            "windows": "capcut.*.installer.*.exe"
+        },
+        "name": "CapCut",
+        "webLink": { "href": "https://www.capcut.com/login" },
+        "mainMessage": "You can use CapCut on the web"
+    },
+    {
+        "regex": {
+            "windows": "lightworks_windows.*.exe"
+        },
+        "name": "Lightworks",
+        "webLink": { "href": "https://lwks.com/pricing" },
+        "mainMessage": "You can download Lightworks (Linux .deb package) for Zorin OS from the web",
+        "alternative": {
+            "name": "Lightworks website"
+        }
+    },
+    {
+        "regex": {
+            "windows": "davinci.*.resolve.*.windows.*.exe"
+        },
+        "name": "DaVinci Resolve",
+        "webLink": { "href": "https://help.zorin.com/docs/apps-games/install-davinci-resolve/" },
+        "mainMessage": "Learn how to install DaVinci Resolve for Linux in Zorin OS",
+        "alternative": {
+            "name": "DaVinci Resolve installation instructions"
+        }
+    },
+    {
+        "regex": {
+            "windows": "photoscape.*.exe"
+        },
+        "name": "Photoscape",
+        "flatpak": { "remote": "flathub", "id": "org.gimp.GIMP" },
+        "desktopLauncher": "gimp.desktop",
+        "alternative": {
+            "name": "GNU Image Manipulation Program"
+        }
+    },
+    {
+        "regex": {
+            "windows": "inkscape.*.(exe|msi)"
+        },
+        "name": "Inkscape",
+        "flatpak": { "remote": "flathub", "id": "org.inkscape.Inkscape" },
+        "desktopLauncher": "org.inkscape.Inkscape.desktop"
+    },
+    {
+        "regex": {
+            "windows": "affinity.*.(msix|exe)"
+        },
+        "name": "Affinity",
+        "webLink": { "href": "https://github.com/ryzendew/Linux-Affinity-Installer/releases" },
+        "mainMessage": "You can download the unofficial Linux Affinity Installer (AppImage package) for Zorin OS from the web",
+        "alternative": {
+            "name": "Linux Affinity Installer"
+        }
+    },
+    {
+        "regex": {
+            "windows": "figmasetup.*.exe"
+        },
+        "name": "Figma",
+        "webLink": { "href": "https://www.figma.com/login" },
+        "mainMessage": "You can use Figma on the web"
+    },
+    {
+        "regex": {
+            "windows": "iview.*.setup.*.exe"
+        },
+        "name": "IrfanView",
+        "flatpak": { "remote": "flathub", "id": "com.xnview.XnViewMP" },
+        "desktopLauncher": "XnView.desktop",
+        "alternative": {
+            "name": "XnView MP"
+        }
+    },
+    {
+        "regex": {
+            "windows": "xnviewmp-win.*.exe"
+        },
+        "name": "XnView MP",
+        "flatpak": { "remote": "flathub", "id": "com.xnview.XnViewMP" },
+        "desktopLauncher": "XnView.desktop"
+    },
+    {
+        "regex": {
+            "windows": "xnview-win.*.exe"
+        },
+        "name": "XnView MP",
+        "flatpak": { "remote": "flathub", "id": "com.xnview.XnViewMP" },
+        "desktopLauncher": "XnView.desktop",
+        "alternative": {
+            "name": "XnView MP"
+        }
+    },
+    {
+        "regex": {
+            "windows": "cinema4d.*.exe"
+        },
+        "name": "Cinema 4D",
+        "flatpak": { "remote": "flathub", "id": "org.blender.Blender" },
+        "desktopLauncher": "blender.desktop",
+        "alternative": {
+            "name": "Blender"
+        }
+    },
+    {
+        "regex": {
+             "windows": "steamsetup.*.exe",
+             "linux": "steam.*"
+        },
+        "name": "Steam",
+        "apt": "steam-installer"
+    },
+    {
+        "regex": {
+            "windows": "whatsapp.*.exe"
+        },
+        "name": "WhatsApp",
+        "webLink": { "href": "https://web.whatsapp.com/" },
+        "mainMessage": "You can use WhatsApp on the web"
+    },
+    {
+        "regex": {
+            "windows": "vibersetup.*.exe"
+        },
+        "name": "Viber",
+        "flatpak": { "remote": "flathub", "id": "com.viber.Viber" },
+        "desktopLauncher": "viber.desktop"
+    },
+    {
+        "regex": {
+            "windows": "lineinst.*.exe"
+        },
+        "name": "LINE",
+        "webLink": { "href": "https://chrome.google.com/webstore/detail/line/ophjlpahpchlmihnnnihgmmeilfjmjjc" },
+        "mainMessage": "You can use LINE as a web browser extension"
+    },
+    {
+        "regex": {
+            "windows": "notion.*.setup.*.exe"
+        },
+        "name": "Notion",
+        "webLink": { "href": "https://www.notion.so/login" },
+        "mainMessage": "You can use Notion on the web"
+    },
+    {
+        "regex": {
+            "windows": "grammarlyinstaller.*.exe"
+        },
+        "name": "Grammarly",
+        "webLink": { "href": "https://www.grammarly.com/" },
+        "mainMessage": "You can use Grammarly on the web"
+    },
+    {
+        "regex": {
+            "windows": "trello.*.installer.*.exe"
+        },
+        "name": "Trello",
+        "webLink": { "href": "https://trello.com/" },
+        "mainMessage": "You can use Trello on the web"
+    },
+    {
+        "regex": {
+            "windows": "evernote-latest.*.exe"
+        },
+        "name": "Evernote",
+        "webLink": { "href": "https://accounts.evernote.com/login" },
+        "mainMessage": "You can use Evernote on the web"
+    },
+    {
+        "regex": {
+            "windows": "standard-notes.*.exe"
+        },
+        "name": "Standard Notes",
+        "flatpak": { "remote": "flathub", "id": "org.standardnotes.standardnotes" },
+        "desktopLauncher": "org.standardnotes.standardnotes.desktop"
+    },
+    {
+        "regex": {
+            "windows": "simplenote.*.(win|installer).*.exe"
+        },
+        "name": "Simplenote",
+        "flatpak": { "remote": "flathub", "id": "com.simplenote.Simplenote" },
+        "desktopLauncher": "simplenote.desktop"
+    },
+    {
+        "regex": {
+            "windows": "xmind-for-windows.*.exe"
+        },
+        "name": "Xmind",
+        "flatpak": { "remote": "flathub", "id": "net.xmind.XMind" },
+        "desktopLauncher": "xmind.desktop"
+    },
+    {
+        "regex": {
+            "windows": "canva.*.setup.*.exe"
+        },
+        "name": "Canva",
+        "webLink": { "href": "https://www.canva.com/" },
+        "mainMessage": "You can use Canva on the web"
+    },
+    {
+        "regex": {
+             "windows": "kindleforpc.*.exe"
+        },
+        "name": "Amazon Kindle",
+        "webLink": { "href": "https://read.amazon.com/" },
+        "mainMessage": "You can use Amazon Kindle on the web"
+    },
+    {
+        "regex": {
+            "windows": "vlc.*.(exe|msi)",
+            "linux": "vlc.*"
+        },
+        "name": "VLC",
+        "apt": "vlc",
+        "flatpak": { "remote": "flathub", "id": "org.videolan.VLC" },
+        "desktopLauncher": "vlc.desktop"
+    },
+    {
+        "regex": {
+            "windows": "1passwordsetup.*.exe"
+        },
+        "name": "1Password website",
+        "webLink": { "href": "https://1password.com/downloads/linux/" },
+        "mainMessage": "You can download 1Password (.deb package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "lastpassinstaller.*.exe"
+        },
+        "name": "LastPass website",
+        "webLink": { "href": "https://lastpass.com/lplinux.php" },
+        "mainMessage": "You can install LastPass (Linux installer) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "bitwarden.*.exe",
+            "linux": "bitwarden.*"
+        },
+        "name": "Bitwarden",
+        "flatpak": { "remote": "flathub", "id": "com.bitwarden.desktop" },
+        "desktopLauncher": "bitwarden.desktop"
+    },
+    {
+        "regex": {
+            "windows": "keepassxc.*.msi"
+        },
+        "name": "KeePassXC",
+        "apt": "keepassxc",
+        "flatpak": { "remote": "flathub", "id": "org.keepassxc.KeePassXC" },
+        "desktopLauncher": "org.keepassxc.KeePassXC.desktop"
+    },
+    {
+        "regex": {
+            "windows": "keepass.*.setup.*.exe"
+        },
+        "name": "KeePass",
+        "apt": "keepassxc",
+        "flatpak": { "remote": "flathub", "id": "org.keepassxc.KeePassXC" },
+        "desktopLauncher": "org.keepassxc.KeePassXC.desktop",
+        "alternative": {
+            "name": "KeePassXC"
+        }
+    },
+    {
+        "regex": {
+            "windows": "anytype.*.setup.*.exe"
+        },
+        "name": "Anytype",
+        "flatpak": { "remote": "flathub", "id": "io.anytype.anytype" },
+        "desktopLauncher": "anytype.desktop"
+    },
+    {
+        "regex": {
+            "windows": "filezilla.*.exe"
+        },
+        "name": "FileZilla",
+        "apt": "filezilla",
+        "flatpak": { "remote": "flathub", "id": "org.filezillaproject.Filezilla" },
+        "desktopLauncher": "filezilla.desktop"
+    },
+    {
+        "regex": {
+            "windows": "winscp.*.setup.*.exe"
+        },
+        "name": "WinSCP",
+        "apt": "filezilla",
+        "flatpak": { "remote": "flathub", "id": "org.filezillaproject.Filezilla" },
+        "desktopLauncher": "filezilla.desktop",
+        "alternative": {
+            "name": "FileZilla"
+        }
+    },
+    {
+        "regex": {
+            "windows": "bcompare.*.(exe|msi)"
+        },
+        "name": "Beyond Compare website",
+        "webLink": { "href": "https://www.scootersoftware.com/download" },
+        "mainMessage": "You can download Beyond Compare (Linux Debian installer) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "winmerge.*.setup.*.exe"
+        },
+        "name": "WinMerge",
+        "apt": "meld",
+        "flatpak": { "remote": "flathub", "id": "org.gnome.meld" },
+        "desktopLauncher": "org.gnome.Meld.desktop",
+        "alternative": {
+            "name": "Meld"
+        }
+    },
+    {
+        "regex": {
+            "windows": "kodi.*.exe"
+        },
+        "name": "Kodi",
+        "flatpak": { "remote": "flathub", "id": "tv.kodi.Kodi" },
+        "desktopLauncher": "kodi.desktop"
+    },
+    {
+        "regex": {
+            "windows": "stremiosetup.*.exe",
+            "linux": "stremio.*"
+        },
+        "name": "Stremio",
+        "flatpak": { "remote": "flathub", "id": "com.stremio.Stremio" },
+        "desktopLauncher": "smartcode-stremio.desktop"
+    },
+    {
+        "regex": {
+            "windows": "draw.io.*.windows-installer.*.exe"
+        },
+        "name": "draw.io",
+        "flatpak": { "remote": "flathub", "id": "com.jgraph.drawio.desktop" },
+        "desktopLauncher": "drawio.desktop"
+    },
+    {
+        "regex": {
+            "windows": "(utorrent|utweb).*.exe"
+        },
+        "name": "µTorrent",
+        "flatpak": { "remote": "flathub", "id": "com.transmissionbt.Transmission" },
+        "apt": "transmission-gtk",
+        "desktopLauncher": "transmission-gtk.desktop",
+        "alternative": {
+            "name": "Transmission"
+        }
+    },
+    {
+        "regex": {
+            "windows": "(bittorrent|btweb).*.exe"
+        },
+        "name": "BitTorrent",
+        "flatpak": { "remote": "flathub", "id": "com.transmissionbt.Transmission" },
+        "apt": "transmission-gtk",
+        "desktopLauncher": "transmission-gtk.desktop",
+        "alternative": {
+            "name": "Transmission"
+        }
+    },
+    {
+        "regex": {
+            "windows": "qbittorrent.*.setup.*.exe"
+        },
+        "name": "qBittorrent",
+        "flatpak": { "remote": "flathub", "id": "org.qbittorrent.qBittorrent" },
+        "desktopLauncher": "org.qbittorrent.qBittorrent.desktop"
+    },
+    {
+        "regex": {
+            "windows": "calibre.*.msi"
+        },
+        "name": "Calibre",
+        "flatpak": { "remote": "flathub", "id": "com.calibre_ebook.calibre" },
+        "desktopLauncher": "calibre-gui.desktop"
+    },
+    {
+        "regex": {
+            "windows": "obsidian.*.exe"
+        },
+        "name": "Obsidian",
+        "flatpak": { "remote": "flathub", "id": "md.obsidian.Obsidian" },
+        "desktopLauncher": "obsidian.desktop"
+    },
+    {
+        "regex": {
+            "windows": "joplin-setup.*.exe"
+        },
+        "name": "Joplin",
+        "flatpak": { "remote": "flathub", "id": "net.cozic.joplin_desktop" }
+    },
+    {
+        "regex": {
+            "windows": "(tsetup|telegram).*.exe"
+        },
+        "name": "Telegram",
+        "flatpak": { "remote": "flathub", "id": "org.telegram.desktop" },
+        "desktopLauncher": "telegramdesktop.desktop"
+    },
+    {
+        "regex": {
+            "windows": "signalsetup.*.exe"
+        },
+        "name": "Signal",
+        "flatpak": { "remote": "flathub", "id": "org.signal.Signal" },
+        "desktopLauncher": "signal-desktop.desktop"
+    },
+    {
+        "regex": {
+            "windows": "discordsetup.*.exe",
+            "linux": "discord.*"
+        },
+        "name": "Discord",
+        "flatpak": { "remote": "flathub", "id": "com.discordapp.Discord" },
+        "desktopLauncher": "discord.desktop"
+    },
+    {
+        "regex": {
+            "windows": "element.*.setup.*.exe"
+        },
+        "name": "Element",
+        "flatpak": { "remote": "flathub", "id": "im.riot.Riot" },
+        "desktopLauncher": "element-desktop.desktop"
+    },
+    {
+        "regex": {
+            "windows": "teamviewer_setup.*.exe"
+        },
+        "name": "TeamViewer website",
+        "webLink": { "href": "https://www.teamviewer.com/download/linux/" },
+        "mainMessage": "You can download TeamViewer (.deb package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+             "windows": "zoom.*.(exe|msi)",
+             "linux": "zoom.*"
+        },
+        "name": "Zoom",
+        "flatpak": { "remote": "flathub", "id": "us.zoom.Zoom" },
+        "desktopLauncher": "us.zoom.Zoom.desktop"
+    },
+    {
+        "regex": {
+            "windows": "slacksetup.*.exe",
+            "linux": "slack-desktop.*"
+        },
+        "name": "Slack",
+        "flatpak": { "remote": "flathub", "id": "com.slack.Slack" },
+        "desktopLauncher": "slack.desktop"
+    },
+    {
+        "regex": {
+             "windows": "anydesk.*.(exe|msi)",
+             "linux": "anydesk.*"
+        },
+        "name": "AnyDesk",
+        "flatpak": { "remote": "flathub", "id": "com.anydesk.Anydesk" },
+        "desktopLauncher": "anydesk.desktop"
+    },
+    {
+        "regex": {
+             "windows": "npp.*.(exe|msi)"
+        },
+        "name": "Notepad++",       
+        "flatpak": { "remote": "flathub", "id": "com.github.dail8859.NotepadNext" },
+        "desktopLauncher": "com.github.dail8859.NotepadNext.desktop",
+        "alternative": {
+            "name": "Notepad Next"
+        }
+    },
+    {
+        "regex": {
+            "windows": "geany.*.setup.*.exe"
+        },
+        "name": "Geany",
+        "apt": "geany"
+    },
+    {
+        "regex": {
+            "windows": "winrar.*.exe"
+        },
+        "name": "WinRAR",
+        "apt": "p7zip-rar",
+        "alternative": {
+            "name": ".rar file support"
+        }
+    },
+    {
+        "regex": {
+            "windows": "winzip.*.(exe|msi)"
+        },
+        "name": "WinZip",
+        "desktopLauncher": "org.gnome.FileRoller.desktop",
+        "alternative": {
+            "name": "Archive Manager"
+        }
+    },
+    {
+        "regex": {
+            "windows": "7z.*.(exe|msi)"
+        },
+        "name": "7-Zip",
+        "apt": "p7zip-full",
+        "alternative": {
+            "name": ".7z file support"
+        }
+    },
+    {
+        "regex": {
+            "windows": "putty(.*.installer|).*.(exe|msi)"
+        },
+        "name": "PuTTY",
+        "flatpak": { "remote": "flathub", "id": "uk.org.greenend.chiark.sgtatham.putty" },
+        "desktopLauncher": "uk.org.greenend.chiark.sgtatham.putty.desktop"
+    },
+    {
+        "regex": {
+            "windows": "bvsshclient-inst.*.(exe|msi)"
+        },
+        "name": "Bitvise",
+        "flatpak": { "remote": "flathub", "id": "uk.org.greenend.chiark.sgtatham.putty" },
+        "desktopLauncher": "uk.org.greenend.chiark.sgtatham.putty.desktop",
+        "alternative": {
+            "name": "PuTTY"
+        }
+    },
+    {
+        "regex": {
+            "windows": "xampp-windows(.*.installer|).*.(exe|msi)"
+        },
+        "name": "XAMPP website",
+        "webLink": { "href": "https://www.apachefriends.org/download.html" },
+        "mainMessage": "You can download XAMPP (Linux .run package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "wireshark.*.(exe|msi)"
+        },
+        "name": "Wireshark",
+        "desktopLauncher": "org.wireshark.Wireshark.desktop",
+        "apt": "wireshark"
+    },
+    {
+        "regex": {
+            "windows": "nmap.*.setup.*.(exe|msi)"
+        },
+        "name": "Nmap",
+        "apt": "nmap"
+    },
+    {
+        "regex": {
+             "windows": "minecraft.*.(exe|msi)",
+             "linux": "minecraft.*"
+        },
+        "name": "Minecraft",
+        "flatpak": { "remote": "flathub", "id": "com.mojang.Minecraft" },
+        "desktopLauncher": "minecraft-launcher.desktop"
+    },
+    {
+        "regex": {
+             "windows": "bleachbit.*.setup.*.exe"
+        },
+        "name": "BleachBit",
+        "apt": "bleachbit",
+        "flatpak": { "remote": "flathub", "id": "org.bleachbit.BleachBit" },
+        "desktopLauncher": "org.bleachbit.BleachBit.desktop"
+    },
+    {
+        "regex": {
+            "windows": "ccsetup.*.exe"
+        },
+        "name": "CCleaner",
+        "apt": "bleachbit",
+        "flatpak": { "remote": "flathub", "id": "org.bleachbit.BleachBit" },
+        "desktopLauncher": "org.bleachbit.BleachBit.desktop",
+        "alternative": {
+            "name": "BleachBit"
+        }
+    },
+    {
+        "regex": {
+            "windows": "cpu-z.*.exe"
+        },
+        "name": "CPU-Z",
+        "flatpak": { "remote": "flathub", "id": "io.github.thetumultuousunicornofdarkness.cpu-x" },
+        "desktopLauncher": "io.github.thetumultuousunicornofdarkness.cpu-x.desktop",
+        "alternative": {
+            "name": "CPU-X"
+        }
+    },
+    {
+        "regex": {
+            "windows": "gpu-z.*.exe"
+        },
+        "name": "GPU-Z",
+        "flatpak": { "remote": "flathub", "id": "io.github.thetumultuousunicornofdarkness.cpu-x" },
+        "desktopLauncher": "io.github.thetumultuousunicornofdarkness.cpu-x.desktop",
+        "alternative": {
+            "name": "CPU-X"
+        }
+    },
+    {
+        "regex": {
+            "windows": "spsetup.*.exe"
+        },
+        "name": "Speccy",
+        "flatpak": { "remote": "flathub", "id": "io.github.thetumultuousunicornofdarkness.cpu-x" },
+        "desktopLauncher": "io.github.thetumultuousunicornofdarkness.cpu-x.desktop",
+        "alternative": {
+            "name": "CPU-X"
+        }
+    },
+    {
+        "regex": {
+            "windows": "windirstat.*.msi"
+        },
+        "name": "WinDirStat",
+        "desktopLauncher": "org.gnome.baobab.desktop",
+        "alternative": {
+            "name": "Disk Usage Analyzer"
+        }
+    },
+    {
+        "regex": {
+            "windows": "treesize.*.setup.*.exe"
+        },
+        "name": "TreeSize",
+        "desktopLauncher": "org.gnome.baobab.desktop",
+        "alternative": {
+            "name": "Disk Usage Analyzer"
+        }
+    },
+    {
+        "regex": {
+             "windows": "sharex.*.exe"
+        },
+        "name": "ShareX",
+        "flatpak": { "remote": "flathub", "id": "org.flameshot.Flameshot" },
+        "desktopLauncher": "org.flameshot.Flameshot.desktop",
+        "alternative": {
+            "name": "Flameshot"
+        }
+    },
+    {
+        "regex": {
+             "windows": "greenshot-installer.*.release.*.exe"
+        },
+        "name": "Greenshot",
+        "flatpak": { "remote": "flathub", "id": "org.flameshot.Flameshot" },
+        "desktopLauncher": "org.flameshot.Flameshot.desktop",
+        "alternative": {
+            "name": "Flameshot"
+        }
+    },
+    {
+        "regex": {
+            "windows": "bluestacks.*.exe"
+        },
+        "name": "BlueStacks",
+        "webLink": { "href": "https://www.genymotion.com/product-desktop/download/" },
+        "mainMessage": "You can download Genymotion (Ubuntu package) for Zorin OS from the web",
+        "alternative": {
+            "name": "Genymotion Desktop"
+        }
+    },
+    {
+        "regex": {
+             "windows": "scratch.*.setup.*.(exe|msi)"
+        },
+        "name": "Scratch",
+        "flatpak": { "remote": "flathub", "id": "org.turbowarp.TurboWarp" },
+        "desktopLauncher": "turbowarp-desktop.desktop",
+        "alternative": {
+            "name": "TurboWarp"
+        }
+    },
+    {
+        "regex": {
+            "windows": ".*distance.*windows_setup.*.exe"
+        },
+        "name": "Distance",
+        "steam": "233610",
+        "desktopLauncher": "steam.desktop",
+        "alternative": {
+            "name": "on Steam"
+        }
+    },
+    {
+        "regex": {
+            "windows": ".*league\\s+of\\s+legends.*.exe"
+        },
+        "name": "the League of Legends installer",
+        "mainMessage": "League of Legends is available on Lutris",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "overwatch.*.exe"
+        },
+        "name": "the Overwatch installer",
+        "mainMessage": "Overwatch is available on Lutris",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "warframe.*.msi"
+        },
+        "name": "the Warframe installer",
+        "mainMessage": "Warframe is available on Lutris",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "world-of-warcraft.*.exe"
+        },
+        "name": "the World of Warcraft installer",
+        "mainMessage": "World of Warcraft is available on Lutris",
+        "desktopLauncher": "net.lutris.Lutris.desktop",
+        "alternative": {
+            "name": "Lutris"
+        }
+    },
+    {
+        "regex": {
+            "windows": "robloxplayerlauncher.*.exe"
+        },
+        "name": "Roblox Player Launcher",
+        "flatpak": { "remote": "flathub", "id": "org.vinegarhq.Sober" },
+        "alternative": {
+            "name": "Sober"
+        }
+    },
+    {
+        "regex": {
+            "windows": "robloxstudiolauncher.*.exe"
+        },
+        "name": "Roblox Studio Launcher",
+        "flatpak": { "remote": "flathub", "id": "org.vinegarhq.Vinegar" },
+        "alternative": {
+            "name": "Vinegar"
+        }
+    },
+    {
+        "regex": {
+            "windows": "razersynapseinstaller.*.exe"
+        },
+        "name": "Razer Synapse",
+        "flatpak": { "remote": "flathub", "id": "xyz.z3ntu.razergenie" },
+        "desktopLauncher": "xyz.z3ntu.razergenie.desktop",
+        "alternative": {
+            "name": "RazerGenie"
+        }
+    },
+    {
+        "regex": {
+             "windows": "todoist.*.exe"
+        },
+        "name": "Todoist",
+        "flatpak": { "remote": "flathub", "id": "com.todoist.Todoist" },
+        "desktopLauncher": "todoist_todoist.desktop"
+    },
+    {
+        "regex": {
+             "windows": "brackets.*.exe"
+        },
+        "name": "Brackets",
+        "flatpak": { "remote": "flathub", "id": "io.brackets.Brackets" },
+        "desktopLauncher": "io.brackets.Brackets.desktop"
+    },
+    {
+        "regex": {
+            "windows": "visualstudiosetup.*.exe"
+        },
+        "name": "Visual Studio",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.Rider" },
+        "desktopLauncher": "rider_rider.desktop",
+        "alternative": {
+            "name": "JetBrains Rider"
+        }
+    },
+    {
+        "regex": {
+             "windows": "idea-20.*.exe"
+        },
+        "name": "JetBrains IntelliJ IDEA",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.IntelliJ-IDEA-Ultimate" },
+        "desktopLauncher": "intellij-idea_intellij-idea.desktop"
+    },
+    {
+        "regex": {
+             "windows": "pycharm-20.*.exe"
+        },
+        "name": "JetBrains PyCharm",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.PyCharm-Professional" },
+        "desktopLauncher": "pycharm_pycharm.desktop"
+    },
+    {
+        "regex": {
+             "windows": "phpstorm-20.*.exe"
+        },
+        "name": "JetBrains PhpStorm",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.PhpStorm" },
+        "desktopLauncher": "phpstorm_phpstorm.desktop"
+    },
+    {
+        "regex": {
+             "windows": "goland-20.*.exe"
+        },
+        "name": "JetBrains GoLand",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.GoLand" },
+        "desktopLauncher": "goland_goland.desktop"
+    },
+    {
+        "regex": {
+             "windows": "jetbrains.rider-20.*.exe"
+        },
+        "name": "JetBrains Rider",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.Rider" },
+        "desktopLauncher": "rider_rider.desktop"
+    },
+    {
+        "regex": {
+             "windows": "clion-20.*.exe"
+        },
+        "name": "JetBrains CLion",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.CLion" },
+        "desktopLauncher": "clion_clion.desktop"
+    },
+    {
+        "regex": {
+             "windows": "rustrover-20.*.exe"
+        },
+        "name": "JetBrains RustRover",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.RustRover" },
+        "desktopLauncher": "rustrover_rustrover.desktop"
+    },
+    {
+        "regex": {
+             "windows": "webstorm-20.*.exe"
+        },
+        "name": "JetBrains WebStorm",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.WebStorm" },
+        "desktopLauncher": "webstorm_webstorm.desktop"
+    },
+    {
+        "regex": {
+             "windows": "rubymine-20.*.exe"
+        },
+        "name": "JetBrains RubyMine",
+        "desktopLauncher": "rubymine_rubymine.desktop"
+    },
+    {
+        "regex": {
+             "windows": "datagrip-20.*.exe"
+        },
+        "name": "JetBrains DataGrip",
+        "flatpak": { "remote": "flathub", "id": "com.jetbrains.DataGrip" },
+        "desktopLauncher": "datagrip_datagrip.desktop"
+    },
+    {
+        "regex": {
+             "windows": "dataspell-20.*.exe"
+        },
+        "name": "JetBrains DataSpell",
+        "desktopLauncher": "dataspell_dataspell.desktop"
+    },
+    {
+        "regex": {
+             "windows": "postman.*.exe"
+        },
+        "name": "Postman",
+        "flatpak": { "remote": "flathub", "id": "com.getpostman.Postman" },
+        "desktopLauncher": "postman_postman.desktop"
+    },
+    {
+        "regex": {
+             "windows": "insomnia.core.*.exe"
+        },
+        "name": "Insomnia",
+        "flatpak": { "remote": "flathub", "id": "rest.insomnia.Insomnia" },
+        "desktopLauncher": "insomnia_insomnia.desktop"
+    },
+    {
+        "regex": {
+            "windows": "docker.*.desktop.*.installer.*.exe"
+        },
+        "name": "Docker Desktop",
+        "webLink": { "href": "https://docs.docker.com/desktop/setup/install/linux/ubuntu/" },
+        "mainMessage": "You can download Docker Desktop (Ubuntu package) for Zorin OS from the web",
+        "alternative": {
+            "name": "Docker Desktop website"
+        }
+    },
+    {
+        "regex": {
+            "windows": "cursorusersetup.*.exe"
+        },
+        "name": "Cursor",
+        "webLink": { "href": "https://cursor.com/" },
+        "mainMessage": "You can download Cursor (Linux .deb package) for Zorin OS from the web",
+        "alternative": {
+            "name": "Cursor website"
+        }
+    },
+    {
+        "regex": {
+            "windows": "windsurfusersetup.*.exe"
+        },
+        "name": "Windsurf",
+        "webLink": { "href": "https://windsurf.com/download/editor" },
+        "mainMessage": "Learn how to install Windsurf for Ubuntu in Zorin OS",
+        "alternative": {
+            "name": "Windsurf installation instructions"
+        }
+    },
+    {
+        "regex": {
+            "windows": "antigravity.*.exe"
+        },
+        "name": "Google Antigravity",
+        "webLink": { "href": "https://antigravity.google/download/linux" },
+        "mainMessage": "Learn how to install Google Antigravity for Ubuntu in Zorin OS",
+        "alternative": {
+            "name": "Antigravity installation instructions"
+        }
+    },
+    {
+        "regex": {
+            "windows": "ollamasetup.*.exe"
+        },
+        "name": "Ollama",
+        "webLink": { "href": "https://ollama.com/download/linux" },
+        "mainMessage": "Learn how to install Ollama for Linux in Zorin OS",
+        "alternative": {
+            "name": "Ollama installation instructions"
+        }
+    },
+    {
+        "regex": {
+            "windows": "syncthing-windows-setup.*.exe"
+        },
+        "name": "Syncthing",
+        "webLink": { "href": "https://apt.syncthing.net/" },
+        "mainMessage": "Learn how to install Syncthing for Ubuntu in Zorin OS",
+        "alternative": {
+            "name": "Syncthing installation instructions"
+        }
+    },
+    {
+        "regex": {
+             "windows": "obs-studio-.*.exe"
+        },
+        "name": "OBS Studio",
+        "flatpak": { "remote": "flathub", "id": "com.obsproject.Studio" },
+        "desktopLauncher": "com.obsproject.Studio.desktop"
+    },
+    {
+        "regex": {
+             "windows": "bdcamsetup.*.exe"
+        },
+        "name": "Bandicam",
+        "flatpak": { "remote": "flathub", "id": "com.obsproject.Studio" },
+        "desktopLauncher": "com.obsproject.Studio.desktop",
+        "alternative": {
+            "name": "OBS Studio"
+        }
+    },
+    {
+        "regex": {
+             "windows": "android-studio-.*.exe"
+        },
+        "name": "Android Studio",
+        "flatpak": { "remote": "flathub", "id": "com.google.AndroidStudio" },
+        "desktopLauncher": "android-studio.desktop"
+    },
+    {
+        "regex": {
+             "windows": "arduino-ide.*.(exe|msi)"
+        },
+        "name": "Arduino IDE",
+        "flatpak": { "remote": "flathub", "id": "cc.arduino.IDE2" },
+        "desktopLauncher": "arduino.desktop"
+    },
+    {
+        "regex": {
+             "windows": "blender-.*.msi"
+        },
+        "name": "Blender",
+        "flatpak": { "remote": "flathub", "id": "org.blender.Blender" },
+        "desktopLauncher": "blender.desktop"
+    },
+    {
+        "regex": {
+             "windows": "handbrake.*.exe"
+        },
+        "name": "HandBrake",
+        "flatpak": { "remote": "flathub", "id": "fr.handbrake.ghb" },
+        "desktopLauncher": "fr.handbrake.ghb.desktop"
+    },
+    {
+        "regex": {
+             "windows": "bitcoin-.*.-setup.*.exe"
+        },
+        "name": "Bitcoin Core",
+        "flatpak": { "remote": "flathub", "id": "org.bitcoincore.bitcoin-qt" },
+        "desktopLauncher": "bitcoin-core_bitcoin-qt.desktop"
+    },
+    {
+        "regex": {
+             "windows": "audacity-win-.*.exe"
+        },
+        "name": "Audacity",
+        "flatpak": { "remote": "flathub", "id": "org.audacityteam.Audacity" },
+        "desktopLauncher": "audacity.desktop"
+    },
+    {
+        "regex": {
+            "windows": ".*\\b(avast|avg|avira|kaspersky|mcaffe|malwarebytes|norton|sophos).*.(exe|msi)"
+        },
+        "mainMessage": "Zorin OS is already resistant to Windows viruses and malware",
+        "noButton": true
+    },
+    {
+        "regex": {
+            "windows": ".*flash.*player.*.exe",
+            "linux": "flash-player.*"
+        },
+        "name": "Adobe Flash Player",
+        "flatpak": { "remote": "flathub", "id": "rs.ruffle.Ruffle" },
+        "alternative": {
+            "name": "Ruffle"
+        }
+    },
+    {
+        "regex": {
+            "windows": "retroarch-.*.-setup.*.exe"
+        },
+        "name": "RetroArch",
+        "flatpak": { "remote": "flathub", "id": "org.libretro.RetroArch" },
+        "desktopLauncher": "retroarch.desktop"
+    },
+    {
+        "regex": {
+             "windows": "pcsx2.*.exe"
+        },
+        "name": "PCSX2",
+        "flatpak": { "remote": "flathub", "id": "net.pcsx2.PCSX2" },
+        "desktopLauncher": "PCSX2.desktop"
+    },
+    {
+        "regex": {
+            "windows": "yuzu.*.exe"
+        },
+        "name": "yuzu",
+        "flatpak": { "remote": "flathub", "id": "org.yuzu_emu.yuzu" },
+        "desktopLauncher": "org.yuzu_emu.yuzu.desktop"
+    },
+    {
+        "regex": {
+            "windows": "dolphin.*.exe"
+        },
+        "name": "Dolphin Emulator",
+        "flatpak": { "remote": "flathub", "id": "org.DolphinEmu.dolphin-emu" },
+        "desktopLauncher": "dolphin-emu.desktop"
+    },
+    {
+        "regex": {
+            "windows": "ppsspp.*.exe"
+        },
+        "name": "PPSSPP",
+        "flatpak": { "remote": "flathub", "id": "org.ppsspp.PPSSPP" },
+        "desktopLauncher": "ppsspp.desktop"
+    },
+    {
+        "regex": {
+            "windows": "rpcs3.*.exe"
+        },
+        "name": "RPCS3",
+        "flatpak": { "remote": "flathub", "id": "net.rpcs3.RPCS3" },
+        "desktopLauncher": "rpcs3-emu_rpcs3.desktop"
+    },
+    {
+        "regex": {
+            "windows": "citra-setup-windows.*.exe"
+        },
+        "name": "Citra",
+        "flatpak": { "remote": "flathub", "id": "org.citra_emu.citra" },
+        "desktopLauncher": "citra.desktop"
+    },
+    {
+        "regex": {
+            "windows": "duckstation-qt.*.exe"
+        },
+        "name": "DuckStation",
+        "flatpak": { "remote": "flathub", "id": "org.duckstation.DuckStation" },
+        "desktopLauncher": "duckstation.desktop"
+    },
+    {
+        "regex": {
+            "windows": "mame.*.exe"
+        },
+        "name": "MAME",
+        "flatpak": { "remote": "flathub", "id": "org.mamedev.MAME" },
+        "desktopLauncher": "mame.desktop"
+    },
+    {
+        "regex": {
+            "windows": "snes9x.*.exe"
+        },
+        "name": "Snes9x",
+        "flatpak": { "remote": "flathub", "id": "com.snes9x.Snes9x" },
+        "desktopLauncher": "snes9x-gtk.desktop"
+    },
+    {
+        "regex": {
+            "windows": "xemu.*.exe",
+            "linux": "xemu.*"
+        },
+        "name": "Xemu",
+        "flatpak": { "remote": "flathub", "id": "app.xemu.xemu" },
+        "desktopLauncher": "xemu.desktop"
+    },
+    {
+        "regex": {
+            "windows": "Setup Project64.*.exe"
+        },
+        "name": "Project64",
+        "flatpak": { "remote": "flathub", "id": "io.github.simple64.simple64" },
+        "desktopLauncher": "simple64.desktop",
+        "alternative": {
+            "name": "Simple64"
+        }
+    },
+    {
+        "regex": {
+            "windows": "(vscodesetup|vscodeusersetup).*.exe",
+            "linux": "code.*"
+        },
+        "name": "Visual Studio Code",
+        "flatpak": { "remote": "flathub", "id": "com.visualstudio.code." },
+        "desktopLauncher": "code.desktop"
+    },
+    {
+        "regex": {
+            "windows": "(vscodiumsetup|vscodiumusersetup).*.exe",
+            "linux": "codium.*"
+        },
+        "name": "VSCodium",
+        "flatpak": { "remote": "flathub", "id": "com.vscodium.codium." },
+        "desktopLauncher": "codium.desktop"
+    },
+    {
+        "regex": {
+            "windows": "sublime_text.*.setup.*.exe"
+        },
+        "name": "Sublime Text",
+        "flatpak": { "remote": "flathub", "id": "com.sublimetext.three" },
+        "desktopLauncher": "sublime_text.desktop"
+    },
+    {
+        "regex": {
+            "windows": "eclipse.*.exe"
+        },
+        "name": "Eclipse IDE",
+        "flatpak": { "remote": "flathub", "id": "org.eclipse.Java" }
+    },
+    {
+        "regex": {
+            "windows": "jgrasp.*.exe"
+        },
+        "name": "jGRASP website",
+        "webLink": { "href": "https://spider.eng.auburn.edu/user-cgi/grasp/grasp.pl?;dl=download_jgrasp.html" },
+        "mainMessage": "You can download jGRASP (.zip package for Linux) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+             "windows": "gvim.*.exe"
+        },
+        "name": "VIM",
+        "apt": "vim",
+        "flatpak": { "remote": "flathub", "id": "org.vim.Vim" },
+        "desktopLauncher": "vim.desktop"
+    },
+    {
+        "regex": {
+             "windows": "emacs.*.installer.*.exe"
+        },
+        "name": "GNU Emacs",
+        "apt": "emacs",
+        "flatpak": { "remote": "flathub", "id": "org.gnu.emacs" },
+        "desktopLauncher": "emacs.desktop"
+    },
+    {
+        "regex": {
+             "windows": "git-.*.exe"
+        },
+        "name": "Git",
+        "apt": "git"
+    },
+    {
+        "regex": {
+            "windows": "githubdesktopsetup.*.(exe|msi)"
+        },
+        "name": "GitHub Desktop",
+        "flatpak": { "remote": "flathub", "id": "io.github.shiftey.Desktop" },
+        "desktopLauncher": "githubdesktop.desktop"
+    },
+    {
+        "regex": {
+            "windows": "jdownloader2setup.*.exe"
+        },
+        "name": "JDownloader",
+        "flatpak": { "remote": "flathub", "id": "org.jdownloader.JDownloader" },
+        "desktopLauncher": "jdownloader2_JDownloader.desktop"
+    },
+    {
+        "regex": {
+            "windows": "tor-browser.*.(exe|msi)"
+        },
+        "name": "Tor Browser",
+        "flatpak": { "remote": "flathub", "id": "org.torproject.torbrowser-launcher" }
+    },
+    {
+        "regex": {
+            "windows": "ultimaker-cura.*.exe",
+            "linux": "ultimaker-cura.*.linux.*"
+        },
+        "name": "UltiMaker Cura",
+        "flatpak": { "remote": "flathub", "id": "com.ultimaker.cura" },
+        "desktopLauncher": "cura.desktop"
+    },
+    {
+        "regex": {
+            "windows": "musescore.*.(exe|msi)"
+        },
+        "name": "MuseScore",
+        "flatpak": { "remote": "flathub", "id": "org.musescore.MuseScore" },
+        "desktopLauncher": "musescore.desktop"
+    },
+    {
+        "regex": {
+            "windows": "protonmail.*.exe"
+        },
+        "name": "Proton Mail",
+        "flatpak": { "remote": "flathub", "id": "me.proton.Mail" },
+        "desktopLauncher": "proton-mail.desktop"
+    },
+    {
+        "regex": {
+            "windows": "protonvpn.*.exe"
+        },
+        "name": "Proton VPN",
+        "flatpak": { "remote": "flathub", "id": "com.protonvpn.www" },
+        "desktopLauncher": "protonvpn-app.desktop"
+    },
+    {
+        "regex": {
+            "windows": "protonpass.*.setup.*.exe"
+        },
+        "name": "Proton Pass",
+        "flatpak": { "remote": "flathub", "id": "me.proton.Pass" },
+        "desktopLauncher": "proton-pass.desktop"
+    },
+    {
+        "regex": {
+            "windows": "proton.*.drive.*.setup.*.exe"
+        },
+        "name": "Proton Drive",
+        "webLink": { "href": "https://account.proton.me/drive" },
+        "mainMessage": "You can use Proton Drive on the web"
+    },
+    {
+        "regex": {
+            "windows": "surfsharksetup.*.exe"
+        },
+        "name": "Surfshark VPN",
+        "flatpak": { "remote": "flathub", "id": "com.surfshark.Surfshark" },
+        "desktopLauncher": "surfshark.desktop"
+    },
+    {
+        "regex": {
+            "windows": "purevpn_setup.*.exe"
+        },
+        "name": "PureVPN",
+        "desktopLauncher": "purevpn.desktop"
+    },
+    {
+        "regex": {
+            "windows": "nordinstaller.*.exe"
+        },
+        "name": "NordVPN",
+        "desktopLauncher": "nordvpn.desktop"
+    },
+    {
+        "regex": {
+            "windows": "expressvpn.*.windows.*.release.*.exe"
+        },
+        "name": "ExpressVPN website",
+        "webLink": { "href": "https://www.expressvpn.com/support/vpn-setup/app-for-linux/" },
+        "mainMessage": "You can install ExpressVPN (Universal Installer) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "mullvadvpn.*.exe"
+        },
+        "name": "Mullvad VPN website",
+        "webLink": { "href": "https://mullvad.net/download/vpn/linux" },
+        "mainMessage": "You can install Mullvad VPN (Ubuntu/Debian repository) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "tunnelbear-installer.*.exe"
+        },
+        "name": "TunnelBear VPN website",
+        "webLink": { "href": "https://www.tunnelbear.com/blog/setting-up-tunnelbear-on-linux/" },
+        "mainMessage": "You can install TunnelBear VPN (Linux instructions) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "pia-windows.*.exe"
+        },
+        "name": "Private Internet Access website",
+        "webLink": { "href": "https://www.privateinternetaccess.com/download/linux-vpn" },
+        "mainMessage": "You can install Private Internet Access VPN (Linux app) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "ipvanish-setup.*.exe"
+        },
+        "name": "IPVanish VPN website",
+        "webLink": { "href": "https://support.ipvanish.com/hc/en-us/articles/31805500046235-OpenVPN-setup-in-Ubuntu" },
+        "mainMessage": "You can install IPVanish VPN (Ubuntu instructions) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "cyberghostvpnsetup.*.exe"
+        },
+        "name": "CyberGhost VPN website",
+        "webLink": { "href": "https://www.cyberghostvpn.com/download/linux-vpn" },
+        "mainMessage": "You can install CyberGhost VPN (Linux/Ubuntu installer) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "photoshop.*.cs6.*.exe"
+        },
+        "name": "Adobe Photoshop CS6 installer",
+        "mainMessage": "Adobe Photoshop CS6 is available to install on PlayOnLinux",
+        "desktopLauncher": "PlayOnLinux.desktop",
+        "flatpak": { "remote": "flathub", "id": "com.playonlinux.PlayOnLinux4" },
+        "alternative": {
+            "name": "PlayOnLinux"
+        }
+    },
+    {
+        "regex": {
+            "windows": "illustrator.*.cs6.*.exe"
+        },
+        "name": "Adobe Illustrator CS6 installer",
+        "mainMessage": "Adobe Illustrator CS6 is available to install on PlayOnLinux",
+        "desktopLauncher": "PlayOnLinux.desktop",
+        "flatpak": { "remote": "flathub", "id": "com.playonlinux.PlayOnLinux4" },
+        "alternative": {
+            "name": "PlayOnLinux"
+        }
+    },
+    {
+        "regex": {
+            "windows": "apache_openoffice.*.exe",
+            "linux": "openoffice.*"
+        },
+        "name": "Apache OpenOffice",
+        "desktopLauncher": "libreoffice-startcenter.desktop",
+        "apt": "libreoffice",
+        "alternative": {
+            "name": "LibreOffice"
+        }
+    },
+    {
+        "regex": {
+            "windows": "libreoffice.*.win.*.msi",
+            "linux": "libreoffice.*"
+        },
+        "name": "LibreOffice",
+        "apt": "libreoffice",
+        "desktopLauncher": "libreoffice-startcenter.desktop"
+    },
+    {
+        "regex": {
+            "windows": "desktopeditors.*.(exe|msi)",
+            "linux": "onlyoffice-desktopeditors.*"
+        },
+        "name": "ONLYOFFICE",
+        "flatpak": { "remote": "flathub", "id": "org.onlyoffice.desktopeditors" },
+        "desktopLauncher": "onlyoffice-desktopeditors.desktop"
+    },
+    {
+        "regex": {
+            "windows": "wps_office_inst.*.(exe|msi)"
+        },
+        "name": "WPS Office",
+        "flatpak": { "remote": "flathub", "id": "com.wps.Office" },
+        "desktopLauncher": "wps-office-wps.desktop"
+    },
+    {
+        "regex": {
+            "windows": "officesetup.*.(exe|msi)"
+        },
+        "name": "Microsoft Office",
+        "webLink": { "href": "https://www.office.com" },
+        "mainMessage": "You can use either LibreOffice (pre-installed in Zorin OS) or sign into Microsoft Office/365 on the web",
+        "alternative": {
+            "name": "Microsoft Office/365 on the web"
+        }
+    },
+    {
+        "regex": {
+            "windows": "microsoft.*.365.*.copilot.*.installer.*.exe"
+        },
+        "name": "Microsoft 365 Copilot",
+        "webLink": { "href": "https://www.office.com" },
+        "mainMessage": "You can use either LibreOffice (pre-installed in Zorin OS) or sign into Microsoft Office/365 Copilot on the web",
+        "alternative": {
+            "name": "Microsoft Office/365 Copilot on the web"
+        }
+    },
+    {
+        "regex": {
+            "windows": "(msteamssetup|teams.*.windows).*.(exe|msi)"
+        },
+        "name": "Microsoft Teams",
+        "webLink": { "href": "https://teams.microsoft.com/" },
+        "mainMessage": "You can use Microsoft Teams on the web"
+    },
+    {
+        "regex": {
+            "windows": "webex.*.(exe|msi)"
+        },
+        "name": "Cisco Webex website",
+        "webLink": { "href": "https://www.webex.com/downloads.html" },
+        "mainMessage": "You can install Cisco Webex (Linux .deb package) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "finaldraftsetup.*.(exe|msi)"
+        },
+        "name": "FinalDraft",
+        "flatpak": { "remote": "flathub", "id": "org.trelby.Trelby" },
+        "desktopLauncher": "trelby.desktop",
+        "alternative": {
+            "name": "Trelby"
+        }
+    },
+    {
+        "regex": {
+            "windows": "scrivener.*.installer.*.(exe|msi)"
+        },
+        "name": "Scrivener",
+        "flatpak": { "remote": "flathub", "id": "org.trelby.Trelby" },
+        "desktopLauncher": "trelby.desktop",
+        "alternative": {
+            "name": "Trelby"
+        }
+    },
+    {
+        "regex": {
+            "windows": "iawriter.*.(exe|msi)"
+        },
+        "name": "iA Writer",
+        "flatpak": { "remote": "flathub", "id": "org.gnome.gitlab.somas.Apostrophe" },
+        "desktopLauncher": "org.gnome.gitlab.somas.Apostrophe.desktop",
+        "alternative": {
+            "name": "Apostrophe"
+        }
+    },
+    {
+        "regex": {
+            "windows": "virtualbox.*.win.*.exe"
+        },
+        "name": "VirtualBox",
+        "apt": "virtualbox",
+        "desktopLauncher": "virtualbox.desktop"
+    },
+    {
+        "regex": {
+            "windows": "claude.*.setup.*.exe"
+        },
+        "name": "Claude",
+        "webLink": { "href": "https://claude.ai" },
+        "mainMessage": "You can use Claude on the web"
+    },
+    {
+        "regex": {
+            "windows": "chatgpt.*.installer.*.exe"
+        },
+        "name": "ChatGPT",
+        "webLink": { "href": "https://chatgpt.com/" },
+        "mainMessage": "You can use ChatGPT on the web"
+    },
+    {
+        "regex": {
+            "windows": "microsoft.*.copilot.*.installer.*.exe"
+        },
+        "name": "Microsoft Copilot",
+        "webLink": { "href": "https://copilot.microsoft.com/" },
+        "mainMessage": "You can use Microsoft Copilot on the web"
+    },
+    {
+        "regex": {
+            "windows": "perplexity.*.setup.*.exe"
+        },
+        "name": "Perplexity",
+        "webLink": { "href": "https://www.perplexity.ai/" },
+        "mainMessage": "You can use Perplexity on the web"
+    },
+    {
+        "regex": {
+            "windows": "rufus.*.exe"
+        },
+        "name": "Rufus",
+        "desktopLauncher": "com.system76.Popsicle.desktop",
+        "flatpak": { "remote": "flathub", "id": "com.system76.Popsicle" },
+        "alternative": {
+            "name": "Popsicle"
+        }
+    },
+    {
+        "regex": {
+            "windows": "balenaetcher.*.setup.*.exe"
+        },
+        "name": "balenaEtcher website",
+        "webLink": { "href": "https://etcher.balena.io/#download-etcher" },
+        "mainMessage": "You can download balenaEtcher (.zip 64-bit package for Linux) for Zorin OS from the web"
+    },
+    {
+        "regex": {
+            "windows": "citrixworkspace.*.exe"
+        },
+        "name": "Citrix Workspace",
+        "webLink": { "href": "https://help.zorin.com/docs/apps-games/install-citrix-workspace/" },
+        "mainMessage": "Learn how to install Citrix Workspace in Zorin OS",
+        "alternative": {
+            "name": "Citrix Workspace installation instructions"
+        }
+    },
+    {
+        "regex": {
+            "windows": "(windows.*(setup|install)|mediacreationtool).*.exe"
+        },
+        "name": "Microsoft Windows",
+        "desktopLauncher": "org.gnome.Boxes.desktop",
+        "flatpak": { "remote": "flathub", "id": "org.gnome.Boxes" },
+        "mainMessage": "Install GNOME Boxes to run Microsoft Windows inside a Virtual Machine in Zorin OS",
+        "alternative": {
+            "name": "GNOME Boxes"
+        }
+   }
+]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.