Discord
Discord is a proprietary, cross-platform, all-in-one voice and text chat application. Many open-source communities have official Discord servers as well. Discord can be used through a web browser or through the desktop application, which is made with Electron.
Installation
You can use one of the following packages to install the desktop application for Discord:
Graphical clients
Official applications
- Stable: discord
- Testing: discord-ptbAUR
- Nightly: discord-canary
Official clients using system electron
Official clients, using the system provided electron for increased security and performance:
- Stable: discord_arch_electronAUR
- Nightly: discord-canary-electron-binAUR
Third-party clients
- Abaddon — An alternative Discord client made with C++/gtkmm.
- gtkcord4 — GTK4 Discord client in Go.
- Ripcord — A lightweight, proprietary desktop chat client for group-centric services like Slack and Discord built upon the Qt toolkit.
Command-line clients
There are numerous CLI-based third party clients on the AUR (and non-packaged ones on Github), although most are deprecated or broken. discordo is maintained and packaged on the AUR as discordo-gitAUR. Gord is abandoned, but still accessible on the AUR as gord-gitAUR and gord-binAUR.
Chat client plugins
- By using purple-discord-gitAUR, you can use Discord on graphical or terminal messenger softwares based on libpurple such as Pidgin.
- By using bitlbee-discord-gitAUR, you can use Discord via Bitlbee.
Custom CSS & plugins
- BetterDiscord — A project which allows Discord to be modified to use custom CSS and plugins.
- Powercord — An alternative client modification for using themes and plugins which requires discord-canary instead of the stable version.
-
Discocss — A simple script that can inject custom CSS into Discord clients. To inject CSS into the discord-ptbAUR and discord-canary versions, replace any mentions of the
discord
folder with the version in use.
Overlay
For Linux clients, Discord does not support in-game overlay. discover-overlayAUR is an open-source GTK application that provides these functions. Discover works on X11 or wlroots environments.
Tips and tricks
GNOME top bar icon
If you would like to have the icon on the top bar of GNOME, install the AppIndicator and KStatusNotifierItem Support extension and libappindicator-gtk3.
Discord asks for an update not yet available in the repository
Discord will refuse to launch if there is an update available. If the updated version is not yet available in the official repos, you can build and install the updated package using the Arch Build System.
To disable the update check, add the following to ~/.config/discord/settings.json
:
"SKIP_HOST_UPDATE": true
Or you can cheat. Check for discord's path:
file $(which discord)
and cd to where the symbolic link points. In this directory (probably /opt/discord/
) edit the file resources/build_info.json
that should look like:
{ "releaseChannel": "stable", "version": "0.0.13" }
You can "upgrade" the version, in this case with "0.0.14"
, and trick the launcher. All is reset in a future update.
Start Discord minimized
Discord can be started minimized through the --start-minimized
argument.
Microphone noise suppression using pipewire (Krisp replacement)
Although Krisp is not available in Linux, you can achieve similar noise reduction level with PipeWire#Noise suppression for voice.
Screen sharing with audio
Screen sharing with audio is not supported on Linux. Alternatives include:
- For PulseAudio, following PulseAudio/Examples#Remapping select audio sources to obtain a Monitor of source for the program to share, which can be used as input for another instance of Discord running in a browser.
Enabling Developer Tools
After a recent update, devtools were disabled by default on Discord for safety reasons. To re-enable them, add this to ~/.config/discord/settings.json
:
"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true
Troubleshooting
Lagging when scrolling through your guilds
If you experience lags and stutters while scrolling through your guilds please ensure that your hardware acceleration is working correctly. You can do this by opening chrome://gpu
in a Chromium based browser. If it is not working please check the chapter on Hardware video acceleration and try running Discord with some additional options:
$ discord --ignore-gpu-blocklist --disable-features=UseOzonePlatform --enable-features=VaapiVideoDecoder --use-gl=desktop --enable-gpu-rasterization --enable-zero-copy
Crackling during voice calls
If you experience crackling sounds when in voice chat, try the steps outlined in PulseAudio/Troubleshooting#Glitches, skips or crackling.
Screen sharing on Wayland
As of version 0.0.17, the Screen Share feature does not work on Wayland, even when enabling Ozone for Wayland using /usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland
. See this Reddit post and the Discord bug report.
As a potential future workaround, you may open discord in Chromium/Vivaldi browser and enable PipeWire#WebRTC screen sharing flag. However, it does not work currently (Chrome version 100.0.4896.147). In the left bottom corner you see the message RTC is off.
There is package discord_arch_electron_waylandAUR, however, it also does not work.
The only solution currently (May 2022) found is via opening discord.com in a pipewire supported browser.
Enabling rich presence on Flatpak
When using the Flatpak version of Discord, Rich Presence will not work out of the box. To make it work, it is necessary to create a symlink from $XDG_RUNTIME_DIR/discord-ipc-0
to $XDG_RUNTIME_DIR/app/com.discordapp.Discord/discord-ipc-0
. To create the symlink for the current user session, run:
$ ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-0
To automatically create the symlink, systemd-tmpfiles can be used by adding the following line to a file with the .conf extension in ~/.config/user-tmpfiles.d/
:
L %t/discord-ipc-0 - - - - app/com.discordapp.Discord/discord-ipc-0
Discord becomes unresponsive during long calls
If Discord becomes unresponsive during long calls, try the --no-sandbox
argument. You can also add the following to your .bashrc, or alias file for your shell:
alias discord='discord --no-sandbox'
Discord freezes after getting pinged or messaged
If a message that would trigger a notification (pings, DMs, servers with notifications on, etc) causes the client to freeze, the client is failing to find a notification server. To fix it without installing a notifications server, disable Enable Desktop Notifications in the Notifications options.
Notification sounds do not work with Pipewire
See PipeWire#No notification sounds from Discord.
Emojis are not rendered correctly
If you encounter rendering issues regarding emojis (rendering as rectangles for example), discord-canary-electron-binAUR has the appropriate fonts as optional dependencies. You should install ttf-symbolaAUR, noto-fonts-cjk, and noto-fonts-emoji.
Clicking link does not open the web browser
If clicking a link does not open a tab in your default web browser, you should install the xdg-utils optional dependency.
Sync with computer feature not working
Discord is parsing the following file to find which theme to apply:
$HOME/.config/gtk-3.0/settings.ini
and it is looking for these specific lines:
[Settings] gtk-theme-name=Adwaita-dark
If you change the theme from Adwaita-dark to Adwaita, then Discord will automatically change to light version and vice-versa.
Note that Discord only supports a few popular themes, so if it does not work for your particular theme (in this example with Materia theme), a "dirty" fix would be to put the following in your settings.ini file:
[Settings] gtk-theme-name=Adwaita-dark gtk-theme-name=Materia-dark
The definition order is important because GTK will use the second variable definition so in this case Materia-dark but Discord will still successfully detect that you are using a dark theme by providing Adwaita-dark in the first variable definition of the GTK theme.
Blurry Discord icon in KDE Plasma system tray
You can attempt to fix this issue by installing libappindicator-gtk3 to replace libappindicator-gtk2, which is known to cause this issue.