this is the main cwtch gui with the pretty interface https://cwtch.im

Dan Ballard eca82ae45d update to match connection.ConnectionStateToType name change for Goland 3 weeks ago
android 75111e0421 port from cwtch.app to appClient and appService 1 month ago
go eca82ae45d update to match connection.ConnectionStateToType name change for Goland 3 weeks ago
i18n eeb167ce38 accept version at build time; display version in settings pane 4 months ago
linux 8ade3dcd72 use bundled tor code for desktop, updated bundled tor to 0.3.5.7. update android readme 6 months ago
qml 412e1f1713 Adopt cwtch app level reload system; Also minor tweaks to cwtch gropup loading progress bar logic and chat disable tet field logic 3 weeks ago
windows cb64131d0b win tor files 5 months ago
.drone.yml 493fbeba38 drone android + windows build versions 4 months ago
.gitignore 153651478a Adding Basic Group Membership Pane 5 months ago
LICENSE 2332d8e437 Add 'LICENSE' 6 months ago
Makefile c1e4f866e4 makefile to clean junk 4 months ago
README.md b0027c9e0e Update 'README.md' 5 months ago
main.go 5584fba6e5 fix race potentil race condition where listeners were not subscribed before events started being emmited 3 weeks ago
qml.qrc abef1472d8 splash pane with custom loading progressbar; custom pre splash screen for android 4 months ago
ui.pro d45d7c24ab add french translation 4 months ago

README.md

Cwtch - UI

This codebase provides a graphical user interface for Desktop and Android for Cwtch: Privacy Preserving Infrastructure for Asynchronous, Decentralized and Metadata Resistant Applications

Security

Cwtch is an experimental concept and prototype. We do not recommend you use Cwtch today if you require secure communication. At least, not yet.

If you discover a security issue, please log an issue above, or email team@cwtch.im.

Compiling & Running

This code relies on therecipe/qt before getting started consult the Installation and Getting Started documentation to get that up and running. It will make building this much easier.

Desktop

qtdeploy build desktop
./deploy/linux/ui.sh -local -debug 2>&1 | grep -v 'Detected anchors on an item that is managed by a layout.'

The -local and -debug flags are helpful when developing.

Android

We supply an arm-pie version of tor in android/libs/armeabi-v7a with the name libtor.so

qtdeploy -docker build android
adb install deploy/android/build-debug.apk

Windows

  • Download and install QT Open Source edition
  • Go to My Computer - Right Click on This PC - Advanced System Settings - Environment Variables
    • New - QT_DIR = C:\Qt (or wherever you have it installed)
    • New - QT_VERSION = 5.12.1 (because I picked 5.12.1)
    • Edit the Path Variable and Add C:\Qt\Tools\mingw530_32\bin
  • Install MSYS2 (Bash shell for windows)
  • Install Go and make sure it's in the PATH, and add your GOPATH/bin to the PATH
  • Setup therecipe/qt (instructions https://github.com/therecipe/qt/wiki/Installation-on-Windows)
    • go get -u -v github.com/therecipe/qt/cmd/...
    • qtsetup (Can take around an hour?)

If all that is done, then check out cwtch.im/ui and run qtdeploy in the root of it.

Currently you will need to manually run tor first before running cwtch.im/ui. Use the included tor and torrc file: tor -f torrc

Development

Translations

(If you'd like to add a new translation, feel free to open an issue and we can generate the .ts file for you to edit by hand, or in QT Linguist!)

Add new translation

  1. Install the language tools if you have not already (on linux: sudo apt-get install qttools5-dev qttools-dev-tools)

  2. Edit ui.pro and add a new line in the variable definition for TRANSLATIONS like:

    TRANSLATIONS = i18n/translation_en.ts

            i18n/translation_de.ts
    
  3. Edit qml.qrc and add a new line near the other translation files like:

    <file>i18n/translation_de.qm</file>

  4. To update and generate your new translation file, run lupdate ui.pro and you will find your new file in the i18n/ directory.

Updating translations

Run lupdate ui.pro to update all the translation files in the i18n/ directory, then edit your languages' .ts file to make the appropriate changes. It is recommended to use QT Linguist (linguist) to edit the files.

When done, run lrelease ui.pro to compile all the translations from their .ts files into .qm files for use in the program. Then you can compile the ui program.