Skip to content

dzaima/chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

503 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Matrix chat client

screenshot

Usage

  1. ./build.py (requires Java ≥ 11)
  2. make accounts/profile.json with:
    {
      "accounts": [
        {
          "type": "matrix",
          "server": "https://matrix.org", // or your homeserver
          "userid": "@example:matrix.org",
          "password": "yourPassword"
        }
        // you can add more accounts here
      ],
      "global": {"theme": "dark"} // or "light"
    }
  3. ./run (alternatively, ./run path/to/alternateProfile.json; the password field can be removed after closing the app, the stored token will keep you logged in)

keybindings

key action
up edit previous message
down edit next message (or stop editing if at last)
alt+up reply to message above current
alt+down reply to message below current
alt+click reply to currently hovered over message
esc cancel reply/edit/message
ctrl+alt+shift+del delete message currently selected for editing
ctrl+up go to room above
ctrl+down go to room below
ctrl+plus increase UI scale
ctrl+minus decrease UI scale
ctrl+shift+v paste clipboard as code block

Most of those (along with some other things) are configurable.

res/chat.dzcfg contains the defaults, and while it can be directly modified, it is preferred to make a file local.dzcfg in the root folder of the project and copy the necessary fields in.

You can reload the config with f5 (some things may not update (instead requiring a restart), but most things reload live fine).

syntax

by default, messages are interpreted as a markdown-ish thing. This default can be changed in res/chat.dzcfg `markdown = true`

/md forced *markdown*
/text forced plain text (also "/plain ..." works)
/me does something
/html <p>manually enter HTML</p>
/goto https://matrix.to/#/!foo:matrix.org/$bar // same behavior as clicking a link containing that URL
/sort // if there were federation issues and messages are shown in non-chronological order, this command will (visually, locally, temporarily) sort them.
/theme light, /theme dark // change theme
File uploading mostly works; the client can display images & gifs inline, but videos will open externally.
Right click on many things (rooms, messages, links, images, user @s, code blocks) gives more options.

_italics_
*bold*
\*text surrounded by asterisks\*
[link text](https://example.org)
---strikethrough--- (alternatively, ~~strikethrough~~)
||spoiler|| (or select and press "|")
`code block`
`backticks: \` inside code block`
`` alternatively: ` in doubled backticks ``
``` that continues for any number of backticks ```
select some text and press "`" to automatically escape things as needed

```java
public static void main(String[] args) {
  System.out.println("codeblock with language");
}
```

About

A Matrix chat client

Topics

Resources

License

Stars

Watchers

Forks

Contributors