{"id":15007142,"url":"https://github.com/winegui/winegui","last_synced_at":"2026-02-21T21:12:17.605Z","repository":{"id":38475359,"uuid":"200303215","full_name":"winegui/WineGUI","owner":"winegui","description":"At last, a user-friendly Wine graphical interface (mirror from Gitlab)","archived":false,"fork":false,"pushed_at":"2025-03-24T15:10:54.000Z","size":7178,"stargazers_count":276,"open_issues_count":2,"forks_count":15,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-03T23:09:25.361Z","etag":null,"topics":["graphical-interface","graphical-user-interface","gui","gui-wine","linux-app","portability","user-interface","windows","wine","wine-gui","winehq","winetricks"],"latest_commit_sha":null,"homepage":"https://gitlab.melroy.org/melroy/winegui","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/winegui.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"melroy89","patreon":"Melroy","buy_me_a_coffee":"melroy","ko_fi":"melroy","liberapay":"melroy","custom":["https://melroy.org/donate.html"]}},"created_at":"2019-08-02T22:07:13.000Z","updated_at":"2025-03-29T12:24:13.000Z","dependencies_parsed_at":"2023-02-15T18:30:49.022Z","dependency_job_id":"e1ed5457-41e3-4248-b121-d464d8793041","html_url":"https://github.com/winegui/WineGUI","commit_stats":{"total_commits":568,"total_committers":3,"mean_commits":"189.33333333333334","dds":"0.059859154929577496","last_synced_commit":"bd0fefed2772eb6246c08a6c74dfb618b325edf8"},"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winegui%2FWineGUI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winegui%2FWineGUI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winegui%2FWineGUI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/winegui%2FWineGUI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/winegui","download_url":"https://codeload.github.com/winegui/WineGUI/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625391,"owners_count":21135511,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["graphical-interface","graphical-user-interface","gui","gui-wine","linux-app","portability","user-interface","windows","wine","wine-gui","winehq","winetricks"],"created_at":"2024-09-24T19:04:35.213Z","updated_at":"2026-02-21T21:12:17.600Z","avatar_url":"https://github.com/winegui.png","language":"C++","readme":"# WineGUI\n\nAt last, a user-interface friendly [Wine](https://www.winehq.org/) (A compatibility layer capable of running Windows applications under Linux) Manager.\n\n[![Pipeline](https://gitlab.melroy.org/melroy/winegui/badges/main/pipeline.svg)](https://gitlab.melroy.org/melroy/winegui/-/pipelines/latest)\n[![Telegram](https://img.shields.io/badge/chat-on%20telegram-brightgreen)](https://t.me/winegui)\n[![Release](https://img.shields.io/badge/release-latest-orange)](https://gitlab.melroy.org/melroy/winegui/-/releases)\n\n![WineGUI](misc/winegui_screenshots.gif)\n\n## Download\n\nYou can find the latest version on the [Releases page](https://gitlab.melroy.org/melroy/winegui/-/releases) under \"Packages\" on my GitLab server.\n\nBesides the release page on GitLab (see above), you can now also find the latest version on the [GitHub Release](https://github.com/winegui/WineGUI/releases) (mirror).\n\nDownload the WineGUI package you require for your Linux distribution. I provide `.deb`, `.rpm` and `.tar.gz` files:\n\n- Use the `.deb` package file for Ubuntu, Debian, Linux Mint, Zorin OS, MX linux, and other Debian-based distributions.\n- Use the `.rpm` package for Fedora, RHEL, and similar distributions.\n- The Compressed Binary `.tar.gz` file is available for manual installation or standalone usage. This is prebuild.\n- The Source Code Archive (also `tar.gz`) is intented for building WineGUI from source.\n\nInstall the package and you are ready to go! WineGUI should be listed in your menu.\n\n**Run-time requirement:** Wine v9 or higher.\n\n## Features\n\n- **Graphical user-interface** on top of [Wine](https://www.winehq.org/)\n- Creating a new machine using an **easy step-by-step wizard**\n- **Application list** per machine (with _search feature_ and refresh button)\n- Editing, removing and cloning Windows machines _in a breeze_\n- Configure window **installing additional software** with just a single click (like installing DirectX)\n- **One-button click** to run a program, open the `C:` drive, simulate a reboot or kill all processes\n\n## GitHub Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=winegui/WineGUI\u0026type=Date)](https://star-history.com/#winegui/WineGUI\u0026Date)\n\n---\n\nThe sections below are mainly relevant for software developers, who want to contribute or help the WineGUI project.\n\n---\n\n## Contributing\n\nThank you for considering contributing!\n\nPlease, read the dedicated [contributing page](CONTRIBUTING.md).\n\n## Development\n\nMore information about Gtkmm4 can be found on the official [GTK documentation site](https://gtkmm.gnome.org/en/documentation.html).\n\n### Requirements\n\nWineGUI is created by using [GTK4 toolkit](https://www.gtk.org/) (Gtkmm C++-interface) and C++ code.\n\nThe following build dependencies should be met first:\n\n- gcc/g++ (advised: v13 or later) or clang (advised: v18 or later)\n- cmake (advised: v3.25 or newer)\n- ninja-build\n- libgtkmm-4.0-dev (implicit dependency with libgtk-4-dev and other dev packages)\n- libjson-glib-dev\n- pkg-config\n\nOptionally:\n\n- Ccache (optional, but very much **recommended**)\n- rpm\n- clangd (v18 or higher, if clangd is used in your IDE)\n\n**Dependencies for testing:**\n\n- clang-format (v19)\n- cppcheck (v2.18 or higher)\n\nFor generating docs:\n\n- doxygen\n- graphviz\n\n**Hint:** You could execute `./scripts/deps.sh` script for Debian based systems (incl. Ubuntu and Linux Mint) in order to get all the dependencies installed automatically.\n\n### Build\n\nRun script: `./scripts/build.sh`\n\n_Or_ execute:\n\n```bash\n# Prepare\ncmake -GNinja -B build\n# Build WineGUI\ncmake --build ./build\n```\n\nOptionally, use the VSCode `CMake Tools` extension to start the build or build with debug targets.\n\n#### Building from source\n\nBuilding from the source code archive files (eg. `tar.gz`) is just as easy, however be sure to download the **specially prepared** `WineGUI-Source-*.tar.gz` archive file (instead of the GitLab generated source archives).  \nThis WineGUI source archive contains the `version.txt` meaning the tarball is aware of the project version during the build.\n\nThere are various CMake options/variables flags you can set. Use `cmake -LAH` to see all options. For example (release build with `/usr` install prefix):\n\n```bash\ncmake -GNinja -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr\n```\n\nThen execute the build using: `cmake --build ./build` as shown earlier.\n\n### Run\n\nExecute: `ninja -C build run`\n\nOr execute the binary directly:\n\n```sh\n./build/bin/winegui\n```\n\n### Rebuild\n\nConfiguring the Ninja build system via CMake is often only needed once (`cmake -GNinja -B build`), after that just execute:\n\n```bash\ncmake --build ./build\n```\n\nOr just: `ninja` within the build directory.  \nClean the build via: `ninja clean`.\n\n_Hint:_ Run `ninja help` for all available targets.\n\n### Installation\n\nIf you would like to install the build targets (when build from source) on your machine, you can execute:\n\n```bash\ncmake --install ./build\n```\n\n### Debug\n\nYou can use the helper script: `./scripts/build-debug.sh`\n\nStart debugging in [GDB (GNU Debugger)](https://cs.brown.edu/courses/cs033/docs/guides/gdb.pdf):\n\n```sh\ncd build_debug\ngdb -ex=run bin/winegui\n```\n\n### Production\n\nFor production build DEB + RPM packages, you can run the script:\n\n```sh\n./scripts/build-prod.sh \"DEB;RPM\"\n```\n\nFirst parameter is required and should be a semicolon separated list of packages to build. Some valid options are: `TGZ`, `DEB`, `RPM`. See `cpack --help` for more information.\n\nOr build manually:\n\n```sh\ncmake -GNinja -DCMAKE_INSTALL_PREFIX:PATH=/usr -DPACKAGE -DCMAKE_BUILD_TYPE=Release -B build_prod\ncmake --build ./build_prod --config Release\ncd build_prod\ncpack -C Release -G \"DEB\"\n```\n\n_Hint:_ You can disable the automatic startup version check by setting the `-DCHECK_FOR_UPDATE=OFF` variable. This will write the config init file with `CheckForUpdatesStartup` set to `false` (instead of `true`). Which is used for _rolling release_ Linux distros.\n\n### Build Doxygen\n\nOr build with generated doxygen files locally:\n\n```sh\ncmake -GNinja -DDOXYGEN=ON -B build_docs\ncmake --build ./build_docs --target Doxygen\n```\n\n### Documentation\n\nSee latest [WineGUI Doxygen webpage](https://gitlab.melroy.org/melroy/winegui/-/jobs/artifacts/main/file/doc/doxygen/index.html?job=test-build).\n\n### Memory check\n\nFirst build the (Linux) target including _debug symbols_ (see [Debug](#debug) section above). Binary should be present in the `build/bin` directory.\n\nNext, check for memory leaks using `valgrind` by executing:\n\n```sh\n./scripts/valgrind.sh\n```\n\nOr to generate a memory usage plot in [massif format](https://valgrind.org/docs/manual/ms-manual.html), execute:\n\n```sh\n./scripts/valgrind-plot.sh\n```\n\n### Releasing\n\nBefore you can make a new release, align the version number in WineGUI with the version you want to release.\nThen create a new tagged version in Gitlab with the same version name.\n\n_Note:_ Only a `release tag` on the `main` branch will trigger the publish task.\n\n### CI/CD\n\nFor continuous integration \u0026 delivery we use [our Dockerfile](https://gitlab.melroy.org/melroy/docker-images/-/blob/main/gtk3-cmake-ninja/Dockerfile?ref_type=heads). Also hosted, build and deployed on this GitLab server.\n\nHowever, the same image (`gtk3-docker-cmake-ninja`) is also shared on [Dockerhub](https://hub.docker.com/r/danger89/gtk3-docker-cmake-ninja).\n","funding_links":["https://github.com/sponsors/melroy89","https://patreon.com/Melroy","https://buymeacoffee.com/melroy","https://ko-fi.com/melroy","https://liberapay.com/melroy","https://melroy.org/donate.html"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinegui%2Fwinegui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwinegui%2Fwinegui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwinegui%2Fwinegui/lists"}