2020-04-03 01:39:21 +11:00
|
|
|
# Mirage
|
|
|
|
|
|
|
|
[![Latest release](https://img.shields.io/github/v/release/mirukana/mirage)](https://github.com/mirukana/mirage/releases)
|
|
|
|
[![#mirage-client:matrix.org](https://img.shields.io/matrix/mirage-client:matrix.org)](https://matrix.to/#/#mirage-client:matrix.org)
|
2019-07-03 03:59:52 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
[Features](#currently-implemented-features) ⬥
|
2020-03-22 08:44:09 +11:00
|
|
|
[Installation](INSTALL.md) ⬥
|
2020-03-20 10:42:49 +11:00
|
|
|
[Configuration & Theming](#configuration--theming) ⬥
|
|
|
|
[Screenshots](#more-screenshots)
|
2019-09-13 08:10:21 +10:00
|
|
|
|
2020-03-22 05:24:43 +11:00
|
|
|
A fancy, customizable, keyboard-operable [Matrix](https://matrix.org/) chat
|
|
|
|
client for encrypted and decentralized communication.
|
2020-03-22 06:42:32 +11:00
|
|
|
Written in Qt/QML + Python with [nio](https://github.com/poljar/matrix-nio),
|
|
|
|
**currently in alpha**.
|
2019-07-03 03:59:52 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
![Chat screenshot](extra/general/screenshots/01-chat.png?raw=true)
|
2019-07-03 03:59:52 +10:00
|
|
|
|
2020-03-20 10:42:49 +11:00
|
|
|
## Currently Implemented Features
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
### Client
|
2019-07-26 09:19:39 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
- **Fluid interface** that adapts to any window size
|
2020-03-24 09:15:51 +11:00
|
|
|
- Toggleable **compact mode**
|
2020-03-20 10:13:08 +11:00
|
|
|
- Customizable **keyboard shortcuts** for (almost) everything, including
|
2020-03-22 08:42:45 +11:00
|
|
|
filtering/switching rooms, scrolling, sending files...
|
|
|
|
- Versatile **theming system**, properties can refer to each other and have
|
|
|
|
any valid ECMAScript 7 expression as values
|
2020-03-22 05:24:43 +11:00
|
|
|
- Comes by default with **dark** and **transparent themes**
|
2020-03-20 10:13:08 +11:00
|
|
|
- **Multiple accounts** in one client
|
2019-08-30 14:07:05 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
### Profile
|
2019-08-30 14:07:05 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
- Set your display name and profile picture
|
|
|
|
- Import/export **E2E** key files
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
### Rooms
|
2019-07-03 03:59:52 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
- Create, join, leave and forget rooms
|
|
|
|
- Send, accept and refuse invites
|
2019-07-03 03:59:52 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
### Messages
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
- Send and receive **E2E encrypted messages**
|
|
|
|
- Send and receive emote messages (e.g. `/me reads attentively`)
|
|
|
|
- Receive notice (bot) messages
|
|
|
|
- Send **markdown** formatted messages
|
2020-03-22 08:42:45 +11:00
|
|
|
- Additional syntax for **coloring text**, e.g. `<red>(Some text...)` -
|
2020-03-20 10:13:08 +11:00
|
|
|
[SVG/CSS color names](https://www.december.com/html/spec/colorsvg.html),
|
|
|
|
and `#hex` codes can be used
|
|
|
|
- Send and receive normal or **E2E encrypted files**
|
|
|
|
- Client-side Matrix & HTTP URL **image previews**, including animated GIF
|
2020-03-24 06:13:03 +11:00
|
|
|
- User ID, display names, room ID and room aliases **mentions**
|
|
|
|
(no notification yet)
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
### Presence
|
2019-08-31 10:24:13 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
- Typing notifications
|
2019-08-31 10:24:13 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
## Installation
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-22 08:44:09 +11:00
|
|
|
See [INSTALL.md](INSTALL.md)
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-20 10:42:49 +11:00
|
|
|
## Configuration & Theming
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
The config file can be found at *$XDG_CONFIG_HOME/mirage/settings.json*,
|
|
|
|
or *~/.config/mirage/settings.json*.
|
2019-07-18 22:10:36 +10:00
|
|
|
|
2020-03-28 06:34:50 +11:00
|
|
|
For Flatpak users, this will be
|
|
|
|
*~/.var/app/io.github.mirukana.mirage/config/mirage* instead.
|
|
|
|
|
2020-03-28 23:06:22 +11:00
|
|
|
The config folder where *settings.json* is located can be overriden by
|
|
|
|
setting the `MIRAGE_CONFIG_DIR` environment variable.
|
|
|
|
The user data folder where *themes*, saved encryption data and other files
|
|
|
|
are saved can be overriden with `MIRAGE_DATA_DIR`.
|
|
|
|
|
2020-03-20 10:13:08 +11:00
|
|
|
The `theme` setting can be:
|
2019-08-31 07:05:22 +10:00
|
|
|
|
2020-03-28 22:36:07 +11:00
|
|
|
- The filename of a built-in theme (`Midnight.qpl` or `Glass.qpl`)
|
|
|
|
- The filename of a custom theme at
|
2020-03-28 06:34:50 +11:00
|
|
|
*$XDG_DATA_HOME/mirage/themes*, *~/.local/share/mirage/themes*,
|
|
|
|
or *~/.var/app/io.github.mirukana.mirage/data/mirage/themes* (Flatpak)
|
2020-03-20 10:13:08 +11:00
|
|
|
|
|
|
|
A default theme from this repository can be copied to use as a base and edit,
|
|
|
|
for example:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cp mirage/src/themes/Midnight.qpl \
|
|
|
|
"${XDG_DATA_HOME:-$HOME/.local/share}/mirage/themes/MyTheme.qpl"
|
|
|
|
```
|
|
|
|
|
2020-03-28 06:34:50 +11:00
|
|
|
Or for Flatpak users:
|
|
|
|
|
|
|
|
```sh
|
|
|
|
cp mirage/src/themes/Midnight.qpl \
|
|
|
|
~/.var/app/io.github.mirukana.mirage/data/mirage/themes/MyTheme.qpl
|
|
|
|
```
|
|
|
|
|
2020-03-28 22:36:07 +11:00
|
|
|
The config setting `theme` would need to be set to `MyTheme.qpl` in this case.
|
2020-03-20 10:13:08 +11:00
|
|
|
|
|
|
|
Theme files are nested-by-indentations sections of properties and values.
|
|
|
|
Properties are declared as `<type> <name>: <value>`.
|
|
|
|
Values can be any JavaScript (ECMAScript 7) expressions.
|
|
|
|
|
|
|
|
Most of the properties are of type `color`.
|
|
|
|
Their values, if not just refering to another property,
|
|
|
|
can be expressed with a:
|
|
|
|
- [SVG/CSS color name](https://www.december.com/html/spec/colorsvg.html)
|
|
|
|
string, e.g. `"blue"`
|
2020-03-20 11:06:25 +11:00
|
|
|
- Hexadecimal code string, e.g. `"#fff"` or `"#cc0000"`
|
2020-03-20 10:13:08 +11:00
|
|
|
- RGBA value, using the `Qt.rgba(0-1, 0-1, 0-1, 0-1)` function
|
|
|
|
- HSLA value, using the `Qt.hsla(0-1, 0-1, 0-1, 0-1)` function
|
|
|
|
- HSVA value, using the `Qt.hsva(0-1, 0-1, 0-1, 0-1)` function
|
|
|
|
- [HSLUV](https://www.hsluv.org/) value, using the
|
|
|
|
`hsluv(0-360, 0-100, 0-100, 0-1)` function. This is the prefered method
|
|
|
|
used throughout the default theme files
|
|
|
|
(why? see [this](https://www.hsluv.org/comparison/#rainbow-hsluv) and
|
|
|
|
[that](https://www.boronine.com/2012/03/26/Color-Spaces-for-Human-Beings/#hsl-is-a-lemon))
|
|
|
|
|
|
|
|
If you just want to change the background picture,
|
|
|
|
or use a gradient/simple color instead, search for the `ui:` section in your
|
|
|
|
text editor.
|
|
|
|
|
|
|
|
|
|
|
|
With `Alt+Shift+R` by default, the config and theme can be reloaded without
|
|
|
|
restarting the app.
|
|
|
|
|
|
|
|
**Warnings**:
|
|
|
|
|
|
|
|
- API currently unstable: theme properties are often renamed, added or deleted.
|
|
|
|
- The file format for both config and themes will soon change
|
2020-04-03 01:39:21 +11:00
|
|
|
- The current file format forces all theme to have all properties
|
2020-03-20 10:13:08 +11:00
|
|
|
defined, instead of being able to only specify the ones to override from the
|
|
|
|
default theme.
|
|
|
|
|
|
|
|
GUI settings will also be implemented in the future.
|
|
|
|
|
2020-03-20 10:42:49 +11:00
|
|
|
## Screenshots
|
2020-03-20 10:13:08 +11:00
|
|
|
|
|
|
|
![Sign-in](extra/general/screenshots/02-sign-in.png)
|
|
|
|
![Account settings](extra/general/screenshots/03-account-settings.png)
|
|
|
|
![Room creation](extra/general/screenshots/04-create-room.png)
|
2020-03-20 10:42:49 +11:00
|
|
|
![Chat](extra/general/screenshots/01-chat.png?raw=true)
|
2020-03-20 10:13:08 +11:00
|
|
|
![Main pane in small window](extra/general/screenshots/05-main-pane-small.png)
|
|
|
|
![Chat in small window](extra/general/screenshots/06-chat-small.png)
|
2020-03-22 05:45:30 +11:00
|
|
|
![Room pane in small window](extra/general/screenshots/07-room-pane-small.png)
|
2019-08-31 07:05:22 +10:00
|
|
|
|