A minimal experimental alternative to official Discord client. Built using webview which allows it to be small and fast!
Feature | ArmCord | Legcord |
---|---|---|
Tray icon | ✔️ | ❌ |
Graphical settings | ✔️ | ❌ |
Smaller size | ❌ | ✔️ |
Client modding | ✔️ | ❌ |
Blocks trackers | ✔️ | ❌ |
Screen sharing | ✔️ | ❌ |
Portable | ❌ | ✔️ |
While ArmCord is more feature rich and generally more stable, Legcord is made to be minimal and fast. ArmCord is built using Electron framework which limits control over resource usage. It is famous for having poor performance (if not used properly) and bundling entire web browser with every app, causing it to take a lot of hard drive space. While this is still not perfect (still a web browser), it gives user choice for web engine which they wanna use. It doesn't bundle web engines in itself but uses built-in system ones which saves space and usually makes it run more efficiently.
Download the executable from releases tab and move it into some folder. Legcord will store it's files and configurations there. There are plans to add an automatic installer.
To use this you need WebView2 Runtime. CEF framework support is also planned in the future.
To install dependencies, run the following command (ubuntu):
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-webkit2-4.0
Note that WebKit2 version 2.22 or greater is required for certain features to work correctly. If your distribution ships with an older version, you may need to install it manually from a backport.
⚠️ Qt is not the default engine: To force it set this env valuePYWEBVIEW_GUI=qt
!
Legcord supports both QtWebChannel (newer and preferred) and QtWebKit implementations. Use QtWebChannel, unless it is not available on your system.
To install QtWebChannel on Debial-based systems (more modern, preffered):
sudo apt install python3-pyqt5 python3-pyqt5.qtwebengine python3-pyqt5.qtwebchannel libqt5webkit5-dev
To install QtWebKit (legacy, but available on more platforms):
sudo apt install python3-pyqt5 python3-pyqt5.qtwebkit python-pyqt5 python-pyqt5.qtwebkit libqt5webkit5-dev
From my own testing Qt tends to be slower but more compatible. I'm on Wayland and I couldn't get the GTK webkit to load, however maybe you'll have more luck
Platform | Code | Renderer | Provider | Browser compatibility |
---|---|---|---|---|
GTK | gtk | WebKit | WebKit2 | |
macOS | WebKit | WebKit.WKWebView (bundled with OS) | ||
QT | qt | WebKit | QtWebEngine / QtWebKit | |
Windows | edgechromium | Chromium | > .NET Framework 4.6.2 and Edge Runtime installed | Ever-green Chromium |
Windows | edgehtml | EdgeHTML | > .NET Framework 4.6.2 and Windows 10 build 17110 | |
Windows | mshtml (unsupported) | MSHTML | MSHTML via .NET / System.Windows.Forms.WebBrowser | IE11 (Windows 10/8/7) |
Windows | cef | CEF | CEF Python | Chrome 66 |
On Windows renderer is chosen in the following order: edgechromium
, edgehtml
, mshtml
. mshtml
is the only renderer that is guaranteed to be available on any system. Note that Edge Runtime must be installed in order to use Edge Chromium on Windows. You can download it from here. Distribution guidelines are found here.
To change a default renderer set PYWEBVIEW_GUI
environment variable. Check for available values in the Code column from the table above.
For example to use CEF on Windows
PYWEBVIEW_GUI=cef
To force QT on Linux systems
PYWEBVIEW_GUI=qt
Basically unimplemented and untested however I want to add it as a replacement for Edge runtime on machines running Windows pre-10.
For some reason Legcord has really poor performance on Wayland. It also struggles with compability (GTK Webkit doesn't work on some systems).
We need to reimplement them manually on some platforms.
I don't own anything running macOS which means I simply can't develop for it.