README.md 3.62 KB
Newer Older
1
# Fractal
2

3
Fractal is a Matrix messaging app for GNOME written in Rust. Its interface is optimized for collaboration in large groups, such as free software projects.
danigm's avatar
danigm committed
4

5 6
* Come to talk to us on Matrix: <https://matrix.to/#/#fractal-gtk:matrix.org>
* Main repository: <https://gitlab.gnome.org/World/fractal/>
7

8
![screenshot](https://gitlab.gnome.org/World/fractal/raw/master/screenshots/fractal.png)
9

10 11
## Installation instructions

Alexandre Franke's avatar
Alexandre Franke committed
12
You can find Fractal installation instructions through packages on the [GNOME wiki](https://wiki.gnome.org/Apps/Fractal).
13

14 15 16
## Build Instructions

You need Meson and Ninja (as well as Rust and Cargo) to build Fractal.
17

18
### GNU/Linux
19

20
```sh
21 22
meson . _build --prefix=/usr/local
ninja -C _build
23
sudo ninja -C _build install
24 25
```

26 27
### macOS

28
```sh
29
brew install gtk+3 dbus bash adwaita-icon-theme
30 31
# empirically needs 3.22.19 or later of gtk3+
# ...and run configure as:
32
/usr/local/bin/bash -c "meson . _build --prefix=/usr/local"
33 34
ninja -C _build
sudo ninja -C _build install
35
```
36

37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
### Translations

If you want to add a new language you should update the file
`fractal-gtk/po/LINUGAS` and add the new lang to the list.

To generate .pot files you should run:

```
ninja -C _build fractal-pot
```

To generate .po files you should run:

```
ninja -C _build fractal-update-po
```

54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
### Password Storage

Fractal uses Secret Service to store the password so you should have
running some daemon that give that service. If you're using GNOME or KDE
this should work for you out of the box with gnome-keyring or
ksecretservice.

There's a way to avoid the need of secret service and store the password in
a unsecure way, in a plain json file. We don't recommend to use this form,
but if you want, it's possible to configure using gsettings:

```
$ gsettings set org.gnome.Fractal password-storage 'Plain text'
```

Or if you're using flatpak

```
$ flatpak run --command="bash" org.gnome.Fractal
$ gsettings set org.gnome.Fractal password-storage 'Plain text'
$ exit
```

To go back to use Secret service:

```
$ gsettings set org.gnome.Fractal password-storage 'Secret Service'
```

83 84 85 86 87
## Supported m.room.message (msgtypes)

msgtypes          | Recv                | Send
--------          | -----               | ------
m.text            | Done                | Done
88
m.emote           | Done                | Done
89
m.notice          |                     |
90
m.image           | Done                | Done
91
m.file            | Done                | Done
92
m.location        |                     |
93 94
m.video           | Done                | Done
m.audio           | Done                | Done
95

96
Full reference in: <https://matrix.org/docs/spec/client\_server/r0.2.0.html#m-room-message-msgtypes>
Daniel Garcia Moreno's avatar
Daniel Garcia Moreno committed
97

98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
## Frequently Asked Questions

* Does Fractal have encryption support? Will it ever?

Fractal does not currently have encryption support, but
does plan to implement it some day. There are details
about the encryption flow for the Matrix team to work out,
and bindings for the encryption library, olm, need to
be created.

* Can I run Fractal with the window closed?

Currently Fractal does not support this. Fractal is a
GNOME application, and accordingly adheres GNOME
guidlines and paradigms. This will be revisited if or
when GNOME gets a "Do Not Disturb" feature.

115
## The origin of Fractal
Daniel Garcia Moreno's avatar
Daniel Garcia Moreno committed
116

117
This project is based on Fest <https://github.com/fest-im/fest>, formerly called ruma-gtk.
Daniel Garcia Moreno's avatar
Daniel Garcia Moreno committed
118 119 120 121

Instead of using RUMA Client, Fractal calls directly to the matrix.org
REST API.

Alexandre Franke's avatar
Alexandre Franke committed
122
The first version of this project was called guillotine, based on French revolution,
Daniel Garcia Moreno's avatar
Daniel Garcia Moreno committed
123
in relation with the Riot client name, but it's a negative name so we decide
124
to change for a math one.
125

126
The name Fractal was proposed by Regina Bíró.