swiszczoo / winpinator

An unofficial port of Linux Mint's Warpinator for Windows
https://winpinator.swisz.cz
GNU General Public License v3.0
286 stars 22 forks source link
c-plus-plus cpp file-sharing file-transfer linuxmint windows wxwidgets

Winpinator

GitHub release (latest by date) License GitHub issues

Winpinator is an unofficial Windows port of Warpinator, rewritten from scratch in C++. It supports the gRPC based protocol of its Linux equivalent, as well as zeroconf/mDNS based service discovery. Due to the fact that Windows has a completely different filesystem, some Warpinator features have to be emulated, e.g. sending filesystem permissions along with the files.

Winpinator should integrate well into Windows ecosystem by supporting drag-and-drop and appearing in Windows Explorer's Send to context menu.

Screenshots

readme/screen1.png readme/screen2.png readme/screen4.png readme/screen3.png

Features

Building

As for now, Visual Studio 2019 is used to compile binaries. Any newer version of VS should work, but is not actively tested. C++14 is used to develop the software.

Dependencies

Dependencies of Winpinator are managed by vcpkg, but using vcpkg during compilation is optional. In that case all header and lib files have to be installed manually. Currently, Winpinator depends on the following libraries and tools:

Installer

Winpinator uses NSIS as its install system. Currently, only one additional NSIS plugin is required for the script to compile - inetc.

Translations

Winpinator makes use of wxWidgets' built-in gettext implementation, so it should be localizable using standard set of gettext tools (like Poedit). POT template file is available at po/winpinator.pot. To make the language appear in preferences, an additional line is required to be added in res/to_copy/Languages.xml. Its format is:

    <Language code="[ISO language code, e.g. de_DE]" name="[Local name of the language, e.g. Deutsch]" flag="[flag filename, e.g. de.png]" />

Remember that you should also localize the installer by inserting a line

!insertmacro MUI_LANGUAGE "[Language name in English, e.g. German]"

and then translating all the lines right below, starting with LangString.

After translating all the strings and adding that line to Languages.xml, please submit a Pull Request.

License

GNU General Public License version 3, available here