Discord

Related articles
Slack
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
Install
the
discord
package. As an alternative,
discord_arch_electron
AUR
enables using the system provided
electron
for increased security and potentially better performance.
Third-party clients
Warning
The usage of third-party clients, or any unofficial package or application that modifies the Discord client, is against
Discord's Terms of Service
and may get your account banned
[1]
. You take all responsibility when using such packages. Avoid using outdated or abandoned clients, as they are more likely to trigger Discord's anti-spam system in their API and thus get your account banned.
You might want to avoid using Discord altogether in favor of messaging services with more openness, such as
XMPP
,
signal-desktop
,
Telegram
, or
Matrix
.
Abaddon
— An alternative Discord client made with C++/gtkmm with voice support.
https://github.com/uowuo/abaddon
||
abaddon
AUR
Dissent
— GTK4 Discord client in Go.
https://github.com/diamondburned/dissent
||
dissent-git
AUR
Legcord
— A custom client designed to enhance your Discord experience while keeping everything lightweight.
https://github.com/Legcord/Legcord
||
legcord
AUR
Dorion
— Tiny alternative Discord client with themes, its own plugin system and compatibility with Vencord plugins.
https://github.com/SpikeHD/Dorion
||
dorion-bin
AUR
LibreDiscord
— LibreDiscord is a free and open source voice client for Discord written in C using GTK3 and GLib.
https://gitlab.com/zipdox/librediscord
||
librediscord-git
AUR
Ripcord
— A lightweight, proprietary desktop chat client for group-centric services like Slack and Discord built upon the Qt toolkit.
https://cancel.fm/ripcord/
||
ripcord
AUR
Vesktop
—  Vesktop is a cross-platform desktop app aiming to provide a snappier Discord experience on Linux. Supports screen-sharing with audio on Wayland with PipeWire.
https://github.com/Vencord/Vesktop
||
vesktop
AUR
WebCord
—  Wrapper for the web client that improves privacy and allows for screensharing on Wayland.
https://github.com/SpacingBat3/WebCord
||
webcord
AUR
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
— A lightweight, secure, and feature-rich Discord terminal client.
https://github.com/ayntgl/discordo
||
discordo-git
AUR
Chat client plugins
purple-discord
— Discord plugin for
libpurple
AUR
based messengers such as
Pidgin
.
https://github.com/EionRobb/purple-discord
||
purple-discord-git
AUR
bitlbee-discord
— Discord plugin for
Bitlbee
.
https://github.com/sm00th/bitlbee-discord
||
bitlbee-discord-git
AUR
weechat-discord
— Discord plugin for
WeeChat
.
https://github.com/terminal-discord/weechat-discord
||
weechat-discord-git
AUR
Custom CSS & plugins
BetterDiscord
— A project which allows Discord to be modified to use custom CSS and plugins.
https://betterdiscord.app/
||
betterdiscord-installer
AUR
Discocss
— A simple script that can inject custom CSS into Discord clients. To inject CSS into the
discord-ptb
AUR
and
discord-canary
AUR
versions, replace any mentions of the
discord
folder with the version in use.
https://github.com/mlvzk/discocss
||
discocss-git
AUR
Replugged
— A fork of Powercord, the lightweight discord client mod focused on simplicity and performance.
https://github.com/replugged-org/replugged
||
replugged-electron-git
AUR
Vencord
—  A Discord client mod that loads entirely before Discord's boot—aiming to make it faster and more stable.
https://github.com/Vendicated/Vencord
||
vencord-installer-bin
AUR
Overlay
For Linux clients, Discord does not support in-game overlay.
discover-overlay
AUR
is an open-source GTK application that provides these functions. Discover works on X11 or wlroots environments. This is not compatible with third-party clients, due to relying on advanced RPC.
Utilities
Chuncord
— A command line tool to upload files to the Discord CDN in parts using webhooks.
https://git.lemonsh.moe/lemon/chuncord
||
chuncord
AUR
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
.
Discord asks for an update not yet available in the repository
Discord will refuse to launch if there is an update available, and the following message will be shown
"Must be your lucky day, there's a new update!"
. 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 line
"SKIP_HOST_UPDATE": true
to
~/.config/discord/settings.json
. If the file does not exist, create it and add the following:
~/.config/discord/settings.json
{
  "SKIP_HOST_UPDATE": true
}
Note that if the file exists, you will need to add an extra comma after the
WINDOW_BOUNDS
object due to JSON requirements, i.e.:
{
  "IS_MAXIMIZED": true,
  "IS_MINIMIZED": false,
  "WINDOW_BOUNDS": {
    "x": 2240,
    "y": 219,
    "width": 1280,
    "height": 720
  },
  "SKIP_HOST_UPDATE": true
}
In case the above method still asks for an update a quick temporary alternative is to extract the new
discord-0.0.x.tar.gz
file into e.g.
/opt/discord-temporary/
, change the name of the newly extracted
discord.desktop
, and symlink it into your
~/.local/share/applications/
folder, preferably also changing the
Name
inside the new
discord.desktop
file in order to differentiate it from your system discord client.
Start Discord minimized
Discord can be started minimized through the
--start-minimized
argument.
Microphone noise suppression
Discord now has noise suppression built in, with both a standard option and an AI-powered option provided by
Krisp
. You can also provide your own noise suppression on PipeWire by following
PipeWire#Noise suppression for voice
.
Screen sharing with audio
Discord now natively
supports audio streaming
with Wayland on Linux, support was added in version 0.0.76.
Web RPC extensions
There are extensions available to show selected web activity in your Discord rich presence:
PreMiD
AUR
with appropriate browser
extension
.
discord-rpc-extension-bin
AUR
with
PreWrap or Mal-sync
browser extensions.
Enabling developer tools
Warning
Code that is pasted into the
Console
of the developer tools has the ability to steal your credentials and compromise your Discord account. Do not enable this unless you know what you are doing.
Devtools are 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
Enabling text-to-speech
By default, text-to-speech is disabled in the Discord client. However, it can be enabled using the
--enable-speech-dispatcher
flag. This utilizes the
speech-dispatcher
daemon to output the speech.
Native Wayland rendering
Discord and other Electron apps by default use X11 and run through Xwayland on Wayland sessions. However, this can be changed. See
Wayland#Electron
.
Note
Running natively via Wayland may impact global keybinds and/or screen-sharing functionalities.
Since the official Discord client does not use the system-provided Electron, it will not read flags from
~/.config/electron-flags.conf
.
With the Flatpak version, Discord requires permission to access the Wayland socket; otherwise, it will fail to launch.
Troubleshooting
General app lag
Check if
hardware video acceleration
is properly enabled. This can fix lag when scrolling through servers (guilds) and also problems related to screen-sharing.
Crackling during voice calls
If using PulseAudio, try switching to
PipeWire
. Alternatively, try the steps outlined in
PulseAudio/Troubleshooting#Troubleshooting buffer underruns (glitches, skips, crackling)
.
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 $XDG_RUNTIME_DIR/{app/com.discordapp.Discord,}/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, launching it with the
--no-sandbox
command-line argument may help.
Discord freezes after getting pinged or messaged
If a message that would trigger a notification (pings, direct messages, 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 notification server, disable
Enable Desktop Notifications
in the
Notifications
settings page.
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 (such as them being rendered as rectangles), your system is missing emoji font packages. See
Fonts#Emoji and symbols
.
Clicking a link does not open the web browser
If clicking a link does not open a tab in your default web browser, install the
xdg-utils
optional dependency.
Blurry Discord icon in KDE Plasma system tray
You can attempt to fix this issue by installing
libappindicator
to replace
libappindicator-gtk2
AUR
, which is known to cause this issue.
Discord spams systemd journal
You may find that Discord creates a lot of messages in your
journal
in a format like:
(device_info_linux.cc:45):
NumberOfDevices
To disable the logging that causes this pollution: go to App Settings, select "Voice & Video", at the bottom select "Debugging" and disable "Debug Logging".
No voice chat in a pure-ALSA environment
Discord’s desktop application relies on
PulseAudio
for voice chat and does not run on
ALSA
directly. Using
apulse
as a workaround is, in this case, deprecated. If you want to use Discord’s voice chat without
PulseAudio
or
Pipewire
, access Discord’s web client through
a Chromium-based web browser
. Alternatively, as a Chromium-based wrapper,
Webcord
works in pure-ALSA environments. See also
Chromium#No audio available without sound server
.
If you choose this route and are unable to unmute, i.e., to get permission to access your microphone,
set it as default capture device
in
~/.asoundrc
. Also, in Discord, go to
User Settings
>
Voice & Video
>
Input Device
, and make sure
Default
is selected.
Notification badge is missing
Discord can display a badge showing the number of unread mentions on the taskbar icon. If the badge is not displayed, verify that the
libunity
AUR
package is installed, as it is required for this feature to work.
Discord hardcodes the
desktop entry
discord.desktop
, which breaks unread badge notifications on other Discord release channel builds such as
discord-ptb
AUR
or
discord-canary
AUR
.
To workaround this, create a copy of the desktop entry of your Discord build (
discord-
releasechannel
.desktop
) and name it
discord.desktop
. For example, if you are using
discord-canary
AUR
:
cp /usr/share/applications/discord-canary.desktop ~/.local/share/applications/discord.desktop
You can also create a dummy desktop entry file to replace the one provided by Discord, to avoid duplicated desktop entries showing up in your desktop environment.
~/.local/share/applications/discord-canary.desktop
[Desktop Entry]
NoDisplay=True
Black screen on Wayland on NVIDIA proprietary driver
Discord on Wayland requires VA-API support, which the NVIDIA proprietary driver does not have. A translation layer such as
libva-nvidia-driver
can be used to get VA-API support.
Microphone volume keeps lowering when Discord is active using Wireplumber
This can be fixed by adding a
PipeWire
quirk to Discord.
Note
Make sure the binary name matches the version of Discord you are using. This can often be simply
electron
. In that case, the setting would impact all Electron-based apps.
~/.config/pipewire/pipewire-pulse.conf.d/99-stop-microphone-auto-adjust.conf
pulse.rules = [
  {
    matches = [
            { application.process.binary = "Discord" }
    ]
    actions = { quirks = [
      block-source-volume
      block-sink-volume
    ]}
  }
]
Then
restart
the
wireplumber.service
,
pipewire.service
and
pipewire-pulse.service
user units
.