Discord - ArchWiki

Jump to content

# Discord

From ArchWiki

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.

Alternatively, install the discord_arch_electronAUR package, which enables using the system-provided electron for increased security and potentially better performance.

Tip The Discord client is also officially distributed as a Flatpak.

### Development builds

Note As with any software, development builds may contain malfunctioning code. If unsure, stick to stable channel releases.

Discord also has alternative packages for users that want to test features that are currently in development:

- discord-ptbAUR — public test build, which includes more or less robust beta features that are close to reaching stable channels.
- discord-canaryAUR — alpha build, which includes features in early development.

### Vendor packages

Note Vendor packages require manual installation and do not have seamless system integration, in comparison to official and AUR packages.

Discord also provides native Arch Linux packages from their official website:

- Stable — https://discord.com/api/download/stable?platform=linux&format=pkg.tar.zst
- PTB — https://discord.com/api/download/ptb?platform=linux&format=pkg.tar.zst
- Canary — https://discord.com/api/download/canary?platform=linux&format=pkg.tar.zst

### 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 || abaddonAUR

- Acheron — An alternative Discord client made with C++/Qt6 with voice support.

  https://github.com/ouwou/acheron || acheron-gitAUR

- Dissent — GTK4 Discord client in Go.

  https://github.com/diamondburned/dissent || dissentAUR

- Legcord — A custom client designed to enhance your Discord experience while keeping everything lightweight.

  https://github.com/Legcord/Legcord || legcordAUR

- Dorion — Tiny alternative Discord client with themes, its own plugin system and compatibility with Vencord plugins.

  https://github.com/SpikeHD/Dorion || dorion-binAUR

- GoofCord — Highly configurable and privacy minded Discord client. Based on the Electron platform.

  https://github.com/Milkshiift/GoofCord || goofcord-binAUR

- 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-gitAUR

- Ripcord — A lightweight, proprietary desktop chat client for group-centric services like Slack and Discord built upon the Qt toolkit.

  https://cancel.fm/ripcord/ || ripcordAUR

- 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. Based on the Electron platform.

  https://github.com/Vencord/Vesktop || vesktopAUR

- WebCord — Wrapper for the web client that improves privacy and allows for screensharing on Wayland. Based on the Electron platform.

  https://github.com/SpacingBat3/WebCord || webcordAUR

### 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-gitAUR

### Chat client plugins

- purple-discord — Discord plugin for libpurpleAUR based messengers such as Pidgin.

  https://github.com/EionRobb/purple-discord || purple-discord-gitAUR

- bitlbee-discord — Discord plugin for Bitlbee.

  https://github.com/sm00th/bitlbee-discord || bitlbee-discord-gitAUR

- weechat-discord — Discord plugin for WeeChat.

  https://github.com/terminal-discord/weechat-discord || weechat-discord-gitAUR

### Custom CSS & plugins

- BetterDiscord — A project which allows Discord to be modified to use custom CSS and plugins.

  https://betterdiscord.app/ || betterdiscord-installerAUR

- 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.

  https://github.com/mlvzk/discocss || discocss-gitAUR

- Replugged — A fork of Powercord, the lightweight discord client mod focused on simplicity and performance.

  https://github.com/replugged-org/replugged || replugged-electron-gitAUR

- 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-binAUR

### 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.

  https://git.lemonsh.moe/lemon/chuncord || chuncordAUR

## 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

If you are not using the official package, it 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:

- PreMiDAUR with appropriate browser extension.
- discord-rpc-extension-binAUR 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-gtk2AUR, 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 libunityAUR 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-ptbAUR or discord-canaryAUR.

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-canaryAUR:

`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.

Category:

- Instant messaging

Discord
Add topic