WineCharm is a graphical user interface (GUI) application designed to simplify running and managing Windows applications on Linux using Wine. Built with Python and GTK4/Libadwaita, WineCharm provides an intuitive interface for launching .exe
and .msi
files, managing Wine prefixes, templates, and runners, and creating portable backups. It supports both GUI and headless modes, making it versatile for different use cases.
- Launch Windows Applications : Easily run
.exe
and.msi
files with Wine. - Wine Prefix Management : Create, clone, backup, restore, and delete Wine prefixes.
- Template System : Manage reusable Wine prefix templates with support for 32-bit (
win32
) and 64-bit (win64
) architectures. - Runner Management : Use custom Wine runners or the system Wine, with options to download, import, or backup runners.
- Portable Backups : Create and restore
.prefix
,.bottle
, and.wzt
backup files for easy sharing and migration. - Script Integration : Execute
.charm
scripts in headless mode for automation. - Single Prefix Mode : Optionally use a single Wine prefix for all applications to save space.
- Desktop Integration : Add shortcuts to your desktop or application menu.
- Flatpak Support : Runs seamlessly in a sandboxed Flatpak environment with extensive filesystem access for game and Wine data.
WineCharm can be installed as a Flatpak, providing a sandboxed environment with all dependencies included.
flatpak --user install flathub io.github.fastrizwaan.WineCharm
-
Install Flatpak and Flatpak-builder:
sudo apt install flatpak flatpak-builder flatpak # Debian/Ubuntu sudo dnf install flatpak flatpak-builder flatpak # Fedora
-
Install Flathub repo to download required programs
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
-
Install flatpak dependencies:
flatpak install -y --user org.gnome.Sdk/x86_64/48 org.gnome.Platform/x86_64/48 org.winehq.Wine//stable-24.08
```
-
Clone the repository:
git clone https://github.com/fastrizwaan/WineCharm.git cd WineCharm/flatpak
-
Build and install the Flatpak:
flatpak-builder --install --user build-dir io.github.fastrizwaan.WineCharm.yml
```
-
Run the Flatpak:
flatpak run io.github.fastrizwaan.WineCharm
WineCharm can be installed as a Python package using pip
for development or system-wide installation.
- System Programs:
exiftool
wine
(withwine32
andwine64
for full support)winetricks
wrestool
icotool
pgrep
gnome-terminal
(or another supported terminal likeptyxis
,konsole
, orxfce4-terminal
)xdg-open
procps
wget
zstd
winbind
- Python Modules:
PyGObject>=3.36
(for GTK4 and Libadwaita)PyYAML>=5.3
(for YAML parsing)psutil>=5.7
(for process management)
- GUI Requirements:
- GTK4: Version 4.16 or higher
- Libadwaita: Version 1.7 or higher
On Debian-based systems, install dependencies with:
sudo dpkg --add-architecture i386 && sudo apt update -y
sudo apt install zenity wine wine32 wine64 winetricks libimage-exiftool-perl icoutils gnome-terminal wget zstd winbind python3-yaml python3-psutil libgtk-4-1 libadwaita-1-0 python3-gi
On Fedora-based systems:
sudo dnf install wine winetricks icoutils perl-Image-ExifTool xdg-utils procps-ng wget zstd samba-winbind gtk3 python3-gobject python3-pyyaml python3-psutil
- Clone the repository:
git clone https://github.com/fastrizwaan/WineCharm.git cd WineCharm
- Install WineCharm using pip:
For a user-specific installation (no root required):
pip3 install .
pip3 install --user .
- Verify installation:
winecharm --help
- Clone the repository:
git clone https://github.com/fastrizwaan/WineCharm.git cd WineCharm
- Run the setup script:
- Install to default prefix (
/usr/local
):sudo ./setup --install
- Install to a custom prefix:
sudo ./setup --install --prefix /custom/path
- Force installation (ignore missing dependencies):
sudo ./setup --install --force
- Uninstall:
sudo ./setup --uninstall
- Install to default prefix (
- Verify:
winecharm --help
Launch WineCharm without arguments (for system or pip installation):
winecharm
Or via Flatpak:
flatpak run io.github.fastrizwaan.WineCharm
-
Open a File: Click “Open” to select an
.exe
or.msi
file. -
Settings: Access advanced options via the hamburger menu.
Run a .charm
script:
winecharm /path/to/script.charm
Process other files:
winecharm /path/to/file.exe
winecharm /path/to/backup.wzt
.exe
/.msi
: Windows executables and installers..charm
: WineCharm script files..bottle
: Portable Wine prefix with game and runner data..prefix
: Wine prefix backup..wzt
: WineZGUI backup files (compatible with WineCharm).
WineCharm stores data in:
- Flatpak:
~/.var/app/io.github.fastrizwaan.WineCharm/data/winecharm/
- System: User’s home directory (if installed manually).
Key directories:
- Prefixes:
Prefixes/
- Individual Wine prefixes. - Templates:
Templates/
- Base prefixes (e.g.,WineCharm-win32
,WineCharm-win64
). - Runners:
Runners/
- Custom Wine runners.
Settings are in Settings.yaml
within the data directory.
The Flatpak manifest provides:
- Runtime: GNOME 48 and Wine stable-24.08.
- Filesystem Access: Broad access to
~/Games
,.wine
, Bottles, PlayOnLinux, and other common Wine data directories. - Extensions: Supports 32-bit compatibility, Vulkan, VAAPI, and Steam utilities.
- Dependencies: Includes
icoutils
,exiftool
,psutil
,PyYAML
, and Vulkan tools.
- GTK4 and Libadwaita: GUI framework (GTK4 4.16+, Libadwaita 1.7+).
- Python 3.6+: Core runtime.
- Python Modules:
PyGObject>=3.36
,PyYAML>=5.3
,psutil>=5.7
.
Fork the repository, make changes, and submit a pull request. Check issues for feature requests or bugs.
WineCharm is licensed under the GNU General Public License (GPLv3+). See the LICENSE
file for details.
- Developer: Mohammed Asif Ali Rizvan
- Project Page: GitHub Repository