Sarah Jamie Lewis
Reviewed-on: cwtch.im/cwtch-ui#164 Reviewed-by: Sarah Jamie Lewis <email@example.com>
A Flutter based Cwtch UI.
This README covers build instructions, for information on Cwtch itself please go to https://cwtch.im
- Android: Available from the Google Play Store (currently patrons only) or from https://cwtch.im/download/ as an APK
- Windows: Available from https://cwtch.im/download/ as an installer or .zip file
- Linux: Available from https://cwtch.im/download/ as a .tar.gz
install.home.shinstalls the app into your home directory
install.sys.shas root to install system wide
- or run out of the unziped directory
- MacOS: Cwtch.dmg coming soon...
Cwtch processes the following environment variables:
CWTCH_HOME=overrides the default storage path of
~/.cwtchwith what ever you choose
LOG_FILE=will reroute all of libcwtch-go's logging to the specified file instead of the console
LOG_LEVEL=debugwill set the log level to debug instead of info
First you will need a valid flutter sdk installation
flutter pub get to fetch dependencies.
You will probably want to disable Analytics on the Flutter Tool:
flutter config --no-analytics
Building on Linux (for Linux)
fetch-libcwtch-go.shlibCwtch-go to fetch a prebuild version of
fetch-tor.shand/or ensure that
flutter run -d linux
Building on Windows (for Windows)
fetch-libcwtch-go.ps1to fetch a prebuild version of
fetch-tor-win.ps1to fetch Tor for windows
flutter run -d windows
Building on Linux/Windows (for Android)
- Follow the steps above to fetch
tor(these will fetch Android versions of these binaries also)
flutter runwith an Android phone connect via USB (or some other valid debug mode)
Building on MacOS
- Navigate to https://git.openprivacy.ca/cwtch.im/libcwtch-go/releases and download the latest libCwtch.dylib into this folder
- Download and install Tor Browser (it's currently the only way to get tor for macos)
flutter build macos
results in a Cwtch.dmg that has libCwtch.dylib and tor in it as well and can be installed into Applications
Known Platform Issues
- Windows: Flutter engine has a known bug around the Right Shift key being sticky. We have implemented a partial workaround, if this happens, tap left shift and it will reset.
Adding a new string
Strings are managed directly from our Lokalise(url?) project. Keys should be valid Dart variable names in lowerCamelCase. After adding a new key and providing/obtaining translations for it, follow the next step to update your local copy.
Only Open Privacy staff members can update translations.
In Lokalise, hit Download and make sure:
- Format is set to "Flutter (.arb)
- Output filename is set to
- Empty translations is set to "Replace with base language"
- Order "Last Update"
Build, download and unzip the output, overwriting
lib/l10n. The next time Flwtch is built, Flutter will notice the changes and update
app_localizations.dart accordingly (thanks to
Adding a language
If a new language has been added to the Lokalise project, two additional manual steps need to be done:
- Create a new key called
localeXXfor the name of the language
- Add it to the settings pane by updating
Then rebuild as normal.
Using a string
Any widget underneath the main MaterialApp should be able to:
and then use:
generate: true in
pubspec.yaml, the Flutter build process checks
l10n.yaml for input/output filenames.