Go to file
2020-03-19 19:13:08 -04:00
extra Add real README.md and INSTALL.md 2020-03-19 19:13:08 -04:00
src Fix event debug returning wrong event json 2020-03-19 18:49:33 -04:00
submodules Get SortProxyFilterModel stuff working? 2020-02-12 05:56:18 -04:00
.gitignore Add .desktop and placeholder icon to be installed 2020-03-15 11:04:44 -04:00
.gitmodules Change name and bump version 2020-03-10 10:41:27 -04:00
build-appimage.sh AppImage: compile Python with libreadline-dev 2020-03-18 19:39:37 -04:00
COPYING Initial commit 2019-03-21 23:28:14 -04:00
COPYING.LESSER Start rewriting backend with pyotherside+asyncio 2019-06-27 02:31:03 -04:00
INSTALL.md Add real README.md and INSTALL.md 2020-03-19 19:13:08 -04:00
live-reload.sh Change name and bump version 2020-03-10 10:41:27 -04:00
mirage.pro Add script to build AppImage 2020-03-15 19:08:12 -04:00
README.md Add real README.md and INSTALL.md 2020-03-19 19:13:08 -04:00
requirements.txt Update lxml requirement to 4.5.0 2020-03-16 00:27:30 -04:00
TODO.md Add real README.md and INSTALL.md 2020-03-19 19:13:08 -04:00

Mirage Latest release

Features
Installation
Configuration & theming
More screenshots

A fancy matrix chat client for secure,
decentralized communication with an emphasis on user experience
and customization. Currently in alpha.

Chat screenshot

Currently implemented features

Client

  • Fluid interface that adapts to any window size
  • Customizable keyboard shortcuts for (almost) everything, including
    filtering and switching rooms, scrolling, sending files...
  • Versatile theming system, properties can refer to each others and have
    any valid ECMAScript 7 expression as value
    • Comes by default with dark and transparent themes
  • Multiple accounts in one client

Profile

  • Set your display name and profile picture
  • Import/export E2E key files

Rooms

  • Create, join, leave and forget rooms
  • Send, accept and refuse invites

Messages

  • Send and receive E2E encrypted messages
  • Send and receive emote messages (e.g. /me reads attentively)
  • Receive notice (bot) messages
  • Send markdown formatted messages
    • Additional syntax for coloring text, e.g. <red>(Some text...) -
      SVG/CSS color names,
      and #hex codes can be used
  • Send and receive normal or E2E encrypted files
  • Client-side Matrix & HTTP URL image previews, including animated GIF

Presence

  • Typing notifications

Installation

See INSTALL.MD.

Configuration and theming

The config file can be found at $XDG_CONFIG_HOME/mirage/settings.json,
or ~/.config/mirage/settings.json.

The theme setting can be:

  • 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:

    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
    string, e.g. "blue"
  • hexadecimal code string, e.g. "#fff" or "#cc0000"
  • 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 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 and
    that)

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.

More screenshots

Sign-in
Account settings
Room creation
Main pane in small window
Chat in small window