README.md 3.54 KB
Newer Older
Nico Alt's avatar
Nico Alt committed
1 2
# Briar GTK

Nico Alt's avatar
Nico Alt committed
3 4 5
[![pipeline status](https://code.briarproject.org/NicoAlt/briar-gtk/badges/master/pipeline.svg)](https://code.briarproject.org/NicoAlt/briar-gtk/commits/master)
[![coverage report](https://code.briarproject.org/NicoAlt/briar-gtk/badges/master/coverage.svg)](https://code.briarproject.org/NicoAlt/briar-gtk/commits/master)

6 7
_Warning: This is still in a very early state and should be considered as prototype._

Nico Alt's avatar
Nico Alt committed
8
A simple GTK app for [Briar](https://briar.app), built with Python and GNOME Builder.
9
It uses [python-briar-wrapper](https://code.briarproject.org/briar/python-briar-wrapper) and the
Nico Alt's avatar
Nico Alt committed
10 11 12
[Briar REST API](https://code.briarproject.org/briar/briar/blob/master/briar-headless/README.md)
and therefore requires Java.

13 14 15 16 17 18 19 20 21 22 23 24
## Installation

So far, there is no official installation method and
you have to build it from source.

## Developers

The easiest and most convenient way is to build _briar-gtk_ using
[Builder](https://wiki.gnome.org/Apps/Builder).
In _Builder_, click "Clone Repository" at the bottom and
enter the URL to this Git project.

25 26 27
You can also call this:
```bash
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
28
flatpak-builder builddir --install-deps-from=flathub --user --install --force-clean --ccache app.briar.gtk.json
29 30 31
flatpak run app.briar.gtk
```

32
Additionally, you are able to run Briar GTK without Flatpak.
33
For this, you have to install Java, the
34 35 36
[Python dependencies](requirements.txt) and
[Briar headless](https://code.briarproject.org/briar/briar/blob/master/briar-headless/README.md).
Once you've done this, change the path of the Briar headless
37
jar in [briar_gtk.define](briar-gtk/briar_gtk/define.py),
38 39
build it with _meson_ and start Briar GTK.

40
Don't forget to initialize the briar-wrapper submodule:
41 42
`git submodule update --init`

Nico Alt's avatar
Nico Alt committed
43 44
## Design Goals

45 46 47
* Intuitive UI, similar to Briar Android client
* Main platform is GNU/Linux, but should also support (at least) Windows and macOS
* Analogously, main platform is x86, but should also support (at least) arm
48 49 50 51
* Follows [GNOME Human Interface Guidelines](https://developer.gnome.org/hig/stable/)
* Adaptive to different screen sizes (desktop and mobile devices)
* Has [phone constraints](https://developer.puri.sm/Librem5/Apps/Guides/Design/Constraints.html) in mind
* Strictly separates API wrapper from GTK stuff, making former a solid base for other (commandline) clients
Nico Alt's avatar
Nico Alt committed
52

53 54
## FAQ

55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
### How can I run this on the Librem 5?

Whether you own a Librem 5 or
[set up an emulator](https://developer.puri.sm/Librem5/Development_Environment/Boards/emulators.html),
you can install Briar GTK easily using Flatpak.

Before you start, you have to install some dependencies:

```bash
sudo apt install flatpak-builder elfutils
```

You can then simply
[follow the instructions from above](#developers).
Note that you currently don't get beyond the setup screen
because Briar Headless only works on x86 platforms so far.

---

For more questions, take a look at
75
[the FAQ of python-briar-wrapper](https://code.briarproject.org/briar/python-briar-wrapper/blob/master/README.md#faq).
76

Nico Alt's avatar
Nico Alt committed
77 78 79 80 81 82 83 84 85 86 87
## License

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[GNU Affero General Public License](LICENSE.md) for more details.