moment/README.md

125 lines
4.4 KiB
Markdown
Raw Normal View History

2020-03-22 09:47:24 +11:00
# Mirage ⋅ ![Latest release](https://img.shields.io/github/v/release/mirukana/mirage)
2020-03-20 10:13:08 +11:00
[Features](#currently-implemented-features) ⬥
[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**.
2020-03-20 10:13:08 +11:00
![Chat screenshot](extra/general/screenshots/01-chat.png?raw=true)
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
- 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
2020-03-20 10:13:08 +11:00
- Create, join, leave and forget rooms
- Send, accept and refuse invites
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
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
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-20 10:13:08 +11:00
The `theme` setting can be:
2019-08-31 07:05:22 +10:00
2020-03-20 10:13:08 +11:00
- The name of a built-in theme (`Midnight` or `Glass`)
- The filename without extension of a custom theme at
*$XDG_DATA_HOME/mirage/themes*, or *~/.local/share/mirage/themes*
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"
```
The config setting `theme` would need to be set to `MyTheme` in this case.
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
- The current file format currently forces all theme to have all properties
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)
![Room pane in small window](extra/general/screenshots/07-room-pane-small.png)
2019-08-31 07:05:22 +10:00