Skip to content

Henry-Hiles/nexus

Repository files navigation

Nexus Client

Warning

Nexus Client is still heavily in development, and is not ready for use!

Description

A simple and user-friendly Matrix client made with Flutter and the Matrix Dart SDK.

Screenshots

Dark Mode Light Mode
Screenshot of Nexus Client in dark mode, showing users talking, with a sidebar showing rooms and spaces, and another sidebar showing members The same screenshot as above, but in light mode

Progress

  • Move from the Dart SDK to the Gomuks SDK with Dart bindings: https://git.federated.nexus/Henry-Hiles/nexus/pulls/2
  • Platform Support
    • Linux
    • Windows
    • MacOS
    • Android
    • iOS
    • Web (may not be possible)
  • Login
    • Username / password auth
    • OAuth / OIDC
  • Rooms / Spaces
    • Displaying and choosing
    • Reading, showing unread
      • Mark as read button on rooms and spaces
    • Searching
    • Creating (Rooms, Spaces, and DMs)
    • Joining
      • Using a text/uri/link
        • Plain text
        • matrix: Uri
        • Matrix.to link: I just need to fix my regex, I should do this next.
      • From space
      • Exploring
    • Leaving
    • Subspaces
  • Messages
    • Encryption
      • Restoring crypto identity from passphrase/key or verification
    • Sending
      • Plain text
      • HTML/Markdown
      • Replies
      • Attachments
      • Mentions
        • Users
        • Rooms
      • Custom emojis/stickers
      • GIFs using Giphy
    • Recieving
      • Plain text
      • HTML
      • Replies
        • Viewing
        • Jump to original message
      • Edits
      • Attachments
        • Blurhashing
        • Downloading attachments
        • Opening attachments in their own view
      • Polls: Waiting on SwanFlutter/dynamic_polls#1
      • Mentions
        • Users
        • Rooms
          • Plain text (not sure if I want to add this or not, I probably won't unless there's interest)
          • Matrix URIs
          • Matrix.to links
      • Custom emojis/stickers
      • History loading
        • Backwards
        • Forwards
    • Editing
    • Deleting
  • Reactions: Waiting on flyerhq/flutter_chat_ui#838 or me doing a custom impl
  • Pins
    • Displaying
    • Creating
  • Threads
  • Profile popouts
  • Copy link to [room, space]
  • Reporting
  • Notifications using UnifiedPush
  • Group calls using MSC4195
  • Invites
    • Viewing / accepting
    • Spam filtering
  • Settings
    • Light/Dark mode
    • Show media by default
    • Dynamic Theming
    • Devices
      • Viewing devices
      • Verifying devices
    • URL preview: Server / Client / None
    • Account changes
      • Display name
      • Profile picture
      • Timezone
      • Pronouns
      • Password
    • About
    • Log Out

Build Instructions

First, clone and open the repo:

git clone https://git.federated.nexus/Henry-Hiles/nexus
cd nexus

Prerequisites

Linux

  • With Nix: Either use direnv, or nix flake develop
  • Without Nix: Install Flutter, Go, Olm, Git, Clang, and GLibc.

Windows / MacOS

I don't really know. You will need Flutter, Git, Olm, Go, and Visual Studio tools, and otherwise I guess just keep installing stuff until there aren't any errors. I will look into this sometimeTM.

Set up Flutter

Get dependencies:

flutter pub get

Get dependencies:

flutter pub get

Clone Gomuks and generate bindings:

scripts/generate.sh

Build generated files, and watch for new changes:

flutter pub run build_runner watch --delete-conflicting-outputs

Run the app:

flutter run

Community

Join the Nexus Client Matrix Room for questions or help with developing or using Nexus Client.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published