Skip to content

Latest commit

 

History

History
99 lines (79 loc) · 5.18 KB

Support.md

File metadata and controls

99 lines (79 loc) · 5.18 KB

Information about supported platforms

GNU/Linux

This is the current platform that I'm developing my application for. It is fully supported by me, no matter for what architecture or on what Linux distribution you're installing my application – both ARM and X86 computers are supported. Please note that Electron deprecates the 32-bit X86 architecture, so the support for it may be dropped by me as well.

Windows

This is yet another platform to which I may give some attention to as I'm able to test how my application works on it. It's support might still not be as great as on Linux, but I'll give my best to fix most or all issues that are specific to it.

MacOS

Because I don't own any macOS device, I am not able to provide the official support to this platform. That doesn't mean that app won't work on the macOS at all – I will provide the binaries for it and try to make my software at least usable for the macOS computers by not writing any platform-specific code that could cause the incompatibility with the Apple devices. However, I may not fix any of the reported issues that I won't be able to reproduce on other platforms.

musl libc based Linux distributions

Unfortunately, there's no official Electron release built under musl libc, although it might be possible to compile it, at least for some Electron releases. See electron/electron #9662 for further details.

Some Linux distibutions seem to provide Electron packages and in that case, it should be possible to run WebCord on them without any issues. Moreover you could even try to extract or repackage the Electron from these distributions to any other musl libc based Linux distribution if you want to. Currently, Void Linux x86-64 seem to provide a release for it.

FreeBSD

Currently Electron isn't officially supported on FreeBSD (see electron/electron #3797). However, a community provides the prebuilt Electron binaries for x64 FreeBSD operating system, which should be functional with WebCord. And because FreeBSD uses similar libraries as Linux, WebCord's code does not include any process.platform === "linux" checks and rather than this prefers to exclude the presence of some platforms that are supported by the Electron and don't support Linux APIs (i.e. Windows and macOS). This way, a compatibility with FreeBSD as well as with other BSD-based distributions or even with other *nix operating systems that are not part of BSD operating system family.

WebCord has been confirmed to work in the past with FreeBSD by me (author of this project). It shouldn't break but if it does, I may or may not work on any fix for it. But as long as provided Electron builds runs correctly, WebCord on FreeBSD should share most of its bugs with Linux.

After you install a specific Electron package (e.g. electron19), you can extract app.asar from any distributable (most likely from Windows or Linux ones) and run it in terminal with installed system-wide Electron:

electron$v $path

(Replace $v and $path with actual version number and path to the extracted app.asar.)

Supported enviroments

*nix on Wayland

Currently, Wayland support is hit or miss and it is going to be greatly dependant on sofware bugs within Electron/Chromium or xdg-desktop-portals implementations (in case of screen share) or some kind of inconsistences. Moreover, many browsers run in XWayland by the default – in both Chromium and Firefox, native Wayland seems to be treated as an experimental feature and you will have to opt-in for it either via command-line flags or some kind of hidden, advanced configuration like chrome://flags or about:config. The same is with WebCord: you will have to put any flag that enables Wayland on Chromium like --ozone-platform=wayland, --ozone-hint=auto or --ozone-hint=wayland. The first one is going to be recommended since it also enables some integrations done in WebCord (two other flags might be supported as well in WebCord 3.8.5 or newer).

So, while on upstream Wayland support varies, on WebCord side however I believe I did the most I could for it to work well on Wayland. Unlike many Electron apps, mine does integrate well with native portals and PipeWireCapturer for screen sharing on Wayland and XWayland (i.e. X11 with XDG_SESSION=wayland or WAYLAND_DESKTOP env being set to any value) by the default. I've also implemented some code for accelerated VA-API decoding / encoding and for automatically enabling OpenGL or GLES when the user has opted-in for experimental flags (which is broken on non-NVidia desktops, at least until 3.8.5 gets released).