PortableApps Launcher Maker is a Windows Tkinter desktop app for building PortableApps.com-style project folders from a normal application EXE.
It helps generate the pieces needed for a portable app package, including:
appinfo.inilauncher.ini- optional
installer.ini - PortableApps icon sizes
help.htmland help assets- splash assets
- preview output before build
It can also call the PortableApps.com Launcher Generator to build the final portable launcher EXE when that tool is available.
This project uses a four-part version format:
X.0.0.0
Example:
1.0.0.02.0.0.0
The current app version is:
1.0.0.2
- moved application EXE and output folder controls into the Project Settings header
- widened the live preview panel and increased the default app window size
- removed horizontal scrollbars from multi-line text areas
- returned dropdowns and inputs to stable native Tk/ttk controls
- prevented mouse-wheel scrolling over dropdowns from changing selected values
- kept Validate beside Create Project + EXE for a cleaner build flow
- added a source-controlled
PortableAppsLauncherMakerPortablewrapper project for PortableApps.com packaging
- Launch the app
- Choose the application EXE
- Leave the output folder pointed at
X:\PortableAppsor choose another location - Fill in
appinfo.ini, launcher, installer, registry, icon, and splash settings - Run
Validateto Check if you miss some things - Click
Create Project + EXE - The tool generates the PortableApps project and calls the PortableApps.com Launcher Generator to create the launcher
If the PortableApps.com Launcher Generator is not installed, the app will offer to open:
- creates the standard
App,Data, andOtherstructure - copies the selected application's folder
- extracts embedded icons from the selected EXE
- generates PortableApps icon outputs:
appicon.icoappicon_16.pngappicon_32.pngappicon_75.pngappicon_128.pngappicon_256.png
- supports registry, icon, splash, and installer settings
- imports saved
.regexports intoRegistryKeys - previews generated folder layout and INI output live
- shows icon preview sizes from largest to smallest
- validates project settings before build
- uses collapsible card sections and a more web-style settings UI
- supports both 64-bit and 32-bit packaged app builds
- creates GitHub-release ZIP assets from finished builds
The app is organized into focused tabs:
appinfo.iniAppNamePortable.iniinstaller.iniRegistryIconSplash
Notable UI behavior:
- collapsible cards for major sections
- fixed top tab navigation while forms scroll
- live preview panel on the right side of the editor
- styled folder preview with important generated files highlighted
- icon preview strip showing multiple generated sizes
- help popup for PAL variables and registry guidance
python -m app.portableapps_mainOr install in editable mode:
pip install -e .
portableapps-launcher-makerThe packaged releases use PyInstaller one-folder builds. Keep the whole output folder together; do not copy only the .exe.
Requires a 64-bit Python with PyInstaller available in that interpreter.
powershell -ExecutionPolicy Bypass -File .\build_portableapps_release.ps1 -Python64 "C:\Path\To\Python64\python.exe"Output:
dist\PortableAppsLauncherMaker\PortableAppsLauncherMaker.exe
Requires:
- a 32-bit Python
PyInstallerinstalled into that 32-bit Python
powershell -ExecutionPolicy Bypass -File .\build_portableapps_release_x86.ps1 -Python32 "C:\Path\To\Python32\python.exe"You can also set PORTABLEAPPS_X86_PYTHON first and run the script without arguments.
Output:
dist\PortableAppsLauncherMaker-x86\PortableAppsLauncherMaker-x86.exe
After you have built one or both architectures, create GitHub-friendly ZIP assets with:
powershell -ExecutionPolicy Bypass -File .\package_github_release.ps1Output:
dist\release\PortableAppsLauncherMaker-win64.zipdist\release\PortableAppsLauncherMaker-win32.zip
You can use -Skip64 or -Skip32 if you only built one architecture.
The repo includes a ready-to-edit PortableApps.com project folder:
PortableAppsLauncherMakerPortable/PortableAppsLauncherMakerPortable/App/PortableAppsLauncherMakerPortable/Data/PortableAppsLauncherMakerPortable/Other/
The wrapper includes:
App/AppInfo/appinfo.iniApp/AppInfo/installer.iniApp/AppInfo/Launcher/PortableAppsLauncherMakerPortable.ini- app icons and splash screen assets
Build the normal 64-bit app first, then copy the PyInstaller payload into the PortableApps wrapper:
powershell -ExecutionPolicy Bypass -File .\package_portableapps_project.ps1This updates:
PortableAppsLauncherMakerPortable\App\PortableAppsLauncherMaker
That payload folder is intentionally ignored by Git so the repo stays source-friendly. After packaging, open PortableAppsLauncherMakerPortable with the PortableApps.com Launcher Generator to create:
PortableAppsLauncherMakerPortable.exe
For GitHub, the best distribution path is:
- commit source code to the repo
- upload packaged builds to GitHub Releases
Recommended release assets:
PortableAppsLauncherMaker-win64.zipPortableAppsLauncherMaker-win32.zip
app/: application sourcetests/: automated testsbuild_portableapps_release.ps1: 64-bit release buildbuild_portableapps_release_x86.ps1: 32-bit release buildpackage_github_release.ps1: creates GitHub release ZIPs from built folderspackage_portableapps_project.ps1: copies the built app into the PortableApps wrapper projectPortableAppsLauncherMakerPortable/: PortableApps.com project wrapper metadata and assets
build/anddist/are generated output and should not normally be committed- generated PyInstaller
.specfiles are intentionally ignored - building the final portable launcher EXE expects the PortableApps.com Launcher Generator to be installed and available
- bundled default branding assets live in
app/assets/

