GithubHelp home page GithubHelp logo

max1mde / dorion Goto Github PK

View Code? Open in Web Editor NEW

This project forked from spikehd/dorion

0.0 0.0 0.0 1.37 MB

Tiny alternative Discord client with a smaller footprint and support for plugins and themes!

Home Page: https://spikehd.github.io/projects/dorion/

License: GNU General Public License v3.0

Shell 0.90% JavaScript 18.37% Rust 68.39% HTML 12.34%

dorion's Introduction


Dorion

Dorion is an alternative Discord client aimed and lower-spec or storage-sensitive PCs that supports themes, plugins, and more!
https://discord.gg/agQ9mRdHMZ

Table of Contents

Setup

Download a release (.msi for Windows 10/11, .zip for Windows 7, .deb for Debian, etc.) and install!

If you'd like to be on the cutting edge, you can also grab an artifact from the actions tab!

Why use Dorion?

  • Portable (mostly)
  • Low - if any - cache footprint (compared to the PTB client)
  • Extremely small installation size (~10mb!) on Windows
    • This is because unlike the Discord client, Dorion does not bundle an entire Chromium engine
  • Often loads slightly faster (vanilla)
  • Switch between Stable, Canary and PTB clients straight from the settings
  • Built-in telemetry blocking option
  • Not only is Vencord included by default, but Dorion uses a custom fork of Vencord with extras specifically for Dorion
  • Made by me (automatically makes it cooler)

Plugins

While Dorion does not support BetterDiscord plugins (or other mods that use modified .asars), it does support browser-based ones!

Themes

Dorion supports all themes, BetterDiscord and others

Jump to "Using Plugins and Themes"

Platform Support

Feature Windows Linux MacOS
Basics (logging in, navigation, text/DMs etc.)
Voice [1] [2]
Themes
Vencord (and included plugins) [3]
Dorion Plugins

[1] Webkit2GTK does not support WebRTC. See #30.
[2] Currently can connect to VC, but won't pass "RTC Connecting". Needs a bit more coaxing to get working.
[3] This is due to unsupported RegEx. In order for this to work, Webkit2GTK needs to update to support it, or I need to rewrite all RegEx in Vencord to not use lookbehind/ahead (there is a lot).

Building

Prerequisites

Steps

  1. Clone/download the repository
  2. Open a terminal window in the root project folder
  3. Install JS dependencies:
yarn install
# or
npm install
  1. Build the minified versions of the JS/HTML files:
yarn build
# or
npm run build
  1. Pull the Vencord fork
yarn update
  1. Build!
yarn tauri build
# or to debug/open in dev mode
yarn tauri dev

All built files will be in src-tauri/target/(release|debug)/. When using portably, the html, icons, and injection folders are required. Installation files (eg. .msi) are located in bundle/msi

Known Issues

  • A couple bugs with CSS & image import related stuff
  • Fonts/font-faces will randomly not work
  • (MacOS) Injection JS does not reinject after reloading the page
  • (Linux) Vencord JS does not inject... at all.
    • This is due to lookbehind/ahead RegEx not being supported in Webkit2GTK, which is what Dorion uses on Linux. Either I have to replace all lookbehind/ahead RegEx with something else, or wait for Webkit2GTK to support it.

Troubleshooting

If you are having problems opening Dorion, or it instantly crashes, or something similar, try the following:

  • Install via MSI instead of the .zip file
  • Use the .zip file instead of the MSI
  • (If using the .zip file) make sure all files were extracted properly (html, injection, etc.)
  • Reinstall WebView2
    • Fully uninstall and reinstall.
    • If you are having trouble uninstalling it, try deleting this registry folder and uninstalling again Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}
    • You can also try uninstalling from the Command Prompt

TODO

  • Pre-process fonts like images/CSS imports are already done
  • Multi-thread CSS processing
  • Use resource files from application itself instead of the filesystem
  • Desktop notifications
    • AND displaying the number of notifs in the desktop icon
  • Webpack stuff
  • Global push-to-talk
  • Rich presence(?)
  • Helper API methods and events for plugins
  • Backup localized themes
  • Localization timeout
  • Safemode key (disable themes and plugins)
  • New release notifications
  • Logging system (like reMITM)

Using Plugins and Themes

See the examples directory for examples of plugins, including how to include external code and themes. You can also look at my own plugins/themes repo for some existing ones with actual use.

Plugins and themes are relatively simple to use, the file structure looks like so on Windows:

.
└── C:/Users/USERNAME/dorion/
    ├── plugins/
    |   └── plugin.js
    |   └── plugin_name/
    |       └── index.js
    └── themes/
        └── theme.css
        └── Theme2
            └── theme2.css

and like so on Linux:

.
└── ~/dorion/
    ├── plugins/
    |   └── plugin.js
    |   └── plugin_name/
    |       └── index.js
    └── themes/
        └── theme.css
        └── Theme2
            └── theme2.css

so if you download a plugin or theme, just pop it into the plugins/themes folder!

Contributing

Issues, PRs, etc. are all welcome!

Screenshots

image Installation size.

image Loading screen. So cool!

image

image Theme: Dark Neon

dorion's People

Contributors

spikehd avatar dependabot[bot] avatar darkcoder28 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.