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-canaryAUR
Alternatively, Discord is available as a Flatpak. This may fix some issues related to system libraries and improve performance in some cases, but needs some extra work to enable Rich Presence. See #Enabling rich presence on Flatpak.
$ flatpak install discord
Official clients using system electron
Official clients, using the system provided electron for increased security and potentially better performance:
- Stable: discord_arch_electronAUR
- Nightly: discord-canary-electron-binAUR
Third-party clients
- Abaddon — An alternative Discord client made with C++/gtkmm with voice support.
- discord-screenaudio — A custom discord client that supports streaming with audio on Linux.
- Dissent — GTK4 Discord client in Go.
- Legcord — A custom client designed to enhance your Discord experience while keeping everything lightweight.
- Ripcord — A lightweight, proprietary desktop chat client for group-centric services like Slack and Discord built upon the Qt toolkit.
- Vesktop — Vesktop is a cross platform desktop app aiming to give you a snappier Discord experience. Supports screencasting with audio.
- WebCord — Wrapper for the web client that improves privacy and allows for screensharing on Wayland.
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.
Chat client plugins
- bitlbee-discord — Discord plugin for Bitlbee
- weechat-discord — Discord plugin for WeeChat
Custom CSS & plugins
- BetterDiscord — A project which allows Discord to be modified to use custom CSS and plugins.
- Discocss — A simple script that can inject custom CSS into Discord clients. To inject CSS into the discord-ptbAUR and discord-canaryAUR versions, replace any mentions of the
discord
folder with the version in use.
- Replugged — A fork of Powercord, the lightweight discord client mod focused on simplicity and performance.
- Vencord — A Discord client mod that loads entirely before Discord's boot—aiming to make it faster and more stable.
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. 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
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, 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 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:
- PreMiDAUR with appropriate browser extension.
- discord-rpc-extension-binAUR with PreWrap or Mal-sync browser extensions.
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
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.
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#Troubleshooting buffer underruns (glitches, skips, 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.
Possible workarounds are:
- If you also have X11 installed, you can fix this issue easily by setting the following environment variable:
XDG_SESSION_TYPE=x11
. If you installed Discord using Flatpak, you can use a Flatpak permission manager, like flatsealAUR, to set the same environment variable. - Using Discord in a browser that supports screen sharing like Firefox. The browser will prompt you to choose which window or screen to share by its native dialog.
- XwaylandVideoBridge. See Wayland#Screencast Wayland windows with X11 applications.
- using a virtual camera. See Open Broadcaster Software#Virtual camera output and Screen capture#Via a virtual webcam video feed.
- Using a third party client (the usual warning about Discord's TOS applies, use at your own risk):
- webcordAUR fully supports screensharing on Wayland, however lacks features like rich presence as it bundles the web version of Discord.
- Vesktop, available as vesktop-binAUR.
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.
ttf-twemojiAUR is required for emoji to appear in channel names. Be sure to install 75-twemoji.conf
to /etc/fonts/conf.d/
, which doesn't happen by default.
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.
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.
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 User Settings, select "Voice & Video", scroll to bottom of the screen 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.
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 libunityAUR package is installed, as it is required for this feature to work.
If you are using KDE Plasma, you may need to manually set the environment variable XDG_CURRENT_DESKTOP=KDE5
before launching Discord.
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.
Emotes are Squares
You need to install a font package that handles Emojis to get it to render properly.