# 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](https://git.openprivacy.ca/cwtch.im/cwtch) # 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](https://github.com/therecipe/qt) before getting started consult the [Installation](https://github.com/therecipe/qt/wiki/Installation) and [Getting Started](https://github.com/therecipe/qt/wiki/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](https://www.qt.io/download) 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](https://www.msys2.org/) (Bash shell for windows) - Install [Go](https://golang.org/) 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 0. Install the language tools if you have not already (on linux: `sudo apt-get install qttools5-dev qttools-dev-tools`) 1. Edit `ui.pro` and add a new line in the variable definition for `TRANSLATIONS` like: TRANSLATIONS = i18n/translation_en.ts \ i18n/translation_de.ts 2. Edit `qml.qrc` and add a new line near the other translation files like: \i18n/translation_de.qm\ 3. 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.