Giter Site home page Giter Site logo

gmh5225 / winegui Goto Github PK

View Code? Open in Web Editor NEW

This project forked from winegui/winegui

0.0 0.0 0.0 4.94 MB

At last, a user-friendly Wine graphical interface (mirror from Gitlab)

Home Page: https://gitlab.melroy.org/melroy/winegui

License: GNU Affero General Public License v3.0

Shell 1.46% C++ 95.53% CMake 2.96% Dockerfile 0.05%

winegui's Introduction

WineGUI

At last, a user-interface friendly Wine (A compatibility layer capable of running Windows applications under Linux) Manager.

Pipeline Telegram Matrix Release

WineGUI

Download

You can find the latest version on the Releases page of GitLab.

Download the WineGUI package you require for your Linux distribution (we provide .deb, .rpm and .tar.gz files). Typically you should use .deb file for Ubuntu and Linux Mint distros.

Install the package and you are ready to go! WineGUI should be listed in your menu.

Features

  • Graphical user-interface on top of Wine
  • Creating a new machine using an easy step-by-step wizard
  • Application list per machine (with search feature and refresh button)
  • Editing and removing Windows machines in a breeze
  • Configure window installing additional software with just a single click (like installing DirectX)
  • One-button click to run a program, open the C: drive, simulate a reboot or kill all processes

GitHub Star History

Star History Chart


Development

WineGUI is created by using GTK3 toolkit (Gtkmm C++-interface) and C++ code.

Development has been done in VSCcodium, using the following extensions:

  • C/C++
  • CMake
  • CMake Tools
  • GitLab Workflow

Documentation

See latest WineGUI Developer Docs.

Requirements

Dependencies should be met before build:

  • gcc/g++ (advised: v8 or later)
  • cmake (advised: v3.10 or later)
  • ninja-build
  • libgtkmm-3.0-dev (implicit dependency with libgtk-3-dev)
  • libjson-glib-dev
  • pkg-config

Optionally:

  • doxygen
  • graphviz
  • rpm
  • clang-format
  • cppcheck (v2.10 or higher)

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.

Build

Run: ./scripts/build.sh

Or execute: mkdir -p build && cd build && cmake -GNinja .. && ninja

Run

Execute within the build directory: ninja run

Or:

./build/bin/winegui

Rebuild

Cmake is only needed once, after that you can often use:

ninja

Clean the build via: ninja clean

Hint: Run ninja help for all available targets.

Debug

You can use the helper script: ./scripts/build_debug.sh

Start debugging in GDB (GNU Debugger):

cd build_debug
gdb -ex=run bin/winegui

Memory check

First build the (Linux) target including debug symbols. Binary should be present in the build/bin folder.

Next, check for memory leaks using valgrind by executing:

./scripts/valgrind.sh

Or to generate a memory usage plot in massif format, execute:

./scripts/valgrind_plot.sh

Production

For production build and DEB file package, you can run: ./scripts/build_prod.sh

Or use:

cmake -DCMAKE_BUILD_TYPE=Release
ninja

Build Doxygen

Or build with generated doxygen files locally:

cmake -GNinja -Ddoc=ON
ninja

Releasing

Before you can make a new release, align the version number in WineGUI with the version you want to release. Then create a new tagged version in Gitlab with the same version name.

Note: Only a release tag on the main branch will trigger the publish task.

Automated Clang Format

We use our own Clang LLVM C++ Programming Style Format, using clang-format command.

To automatically comply to our style format execute following script (inplace edits are performed for you):

./scripts/fix_format.sh

Check only for errors, run: ./scripts/check_format.sh

Guidelines

First we try to use the Google C++ Style Guide as basis.

Next, we also tend to follow the popular C++ Core Guidelines as much as possible.

CI/CD

For continuous integration & delivery we use our Dockerfile to create a Docker image. This image (danger89/gtk3-docker-cmake-ninja) is hosted on Dockerhub.

A helper script can be used: ./scripts/build_and_upload_image.sh

winegui's People

Contributors

melroy89 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.