Discord: Difference between revisions

Add Krisp noise suppression Workaround
DHCP (talk | contribs)
m style fixes
 
(9 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Infobox application
| name = Discord
| type = instant messaging and VoIP social platform
| image = Discord-Symbol-Blurple.svg
| developer = Discord Inc.
| website = https://discord.com/
| platform = Cross-platform (Linux, macOS, Windows, Web)
| github = discord
}}
Discord is an instant messaging and VoIP application with lots of functionality. It provides a web interface, though most users would prefer to use a client for interoperability with their system.
Discord is an instant messaging and VoIP application with lots of functionality. It provides a web interface, though most users would prefer to use a client for interoperability with their system.


== Installation ==
== Installation ==
{{Unfree}}
{{tip/unfree}}


=== Official Clients ===
=== Official Clients ===
Nixpkgs provides all three of Discord's release channels, accessible as <code>pkgs.discord</code>, <code>pkgs.discord-ptb</code>, and <code>pkgs.discord-canary</code> respectively. Add any of the previous derivations to your package's configuration. For [[NixOS]] this will be in <code>environment.systemPackages</code> or <code>users.users.<name>.packages</code>.<syntaxhighlight lang="nixos">
Nixpkgs provides all three of Discord's release channels, accessible as <code>pkgs.discord</code>, <code>pkgs.discord-ptb</code>, and <code>pkgs.discord-canary</code> respectively. Add any of the previous derivations to your package's configuration. For [[NixOS]] this will be in <code>environment.systemPackages</code> or <code>users.users.<name>.packages</code>.
# configuration.nix
{{file|configuration.nix|nix|3=
{ config, lib, pkgs, ... }: {
{ config, lib, pkgs, ... }: {
   # This will install Discord PTB for all users of the system
   # This will install Discord PTB for all users of the system
Line 18: Line 28:
   ];
   ];
}
}
</syntaxhighlight>
}}


=== Unofficial Clients ===
=== Unofficial Clients ===
Line 33: Line 43:
</syntaxhighlight>
</syntaxhighlight>


==== BetterDiscord<ref>https://betterdiscord.app/</ref> ====
==== BetterDiscord<ref>https://github.com/BetterDiscord/BetterDiscord</ref> ====
Enhances Discord desktop app with new features. Nixpkgs provides the installer via <code>pkgs.betterdiscordctl</code>. This can be added to your configuration, though users may prefer to instead run it one-off via the [[Nix]] cli.<syntaxhighlight lang="bash">
Enhances Discord desktop app with new features. Nixpkgs provides the installer via <code>pkgs.betterdiscordctl</code>. This can be added to your configuration, though users may prefer to instead run it one-off via the [[Nix]] cli.<syntaxhighlight lang=console>
$ nix-shell -p betterdiscordctl --command 'betterdiscordctl install' # nix-legacy
$ nix-shell -p betterdiscordctl --command 'betterdiscordctl install' # nix-legacy
$ nix run nixpkgs#betterdiscordctl -- install # nix3
$ nix run nixpkgs#betterdiscordctl -- install # nix3
Line 54: Line 64:
</syntaxhighlight>
</syntaxhighlight>


==== Vencord<ref>https://vencord.dev/</ref> ====
==== Vencord<ref>https://github.com/Vendicated/Vencord</ref> ====
The cutest Discord client mod. Nixpkgs provides their custom client [https://github.com/Vencord/Vesktop Vesktop] via<code>pkgs.vesktop</code>, or as an override for the official discord package via <code>withVencord = true</code>.<syntaxhighlight lang="nixos">
The cutest Discord client mod. The standalone Vencord client can be installed by overriding the official Discord package via <code>withVencord = true</code>.
{ config, lib, pkgs, ... }: {
{{File|3={ config, lib, pkgs, ... }: {
   environment.systemPackages = with pkgs; [
   environment.systemPackages = with pkgs; [
    # vesktop # If you prefer this
     (discord.override {
     (discord.override {
       # withOpenASAR = true; # can do this here too
       # withOpenASAR = true; # can do this here too
Line 65: Line 73:
     })
     })
   ];
   ];
}
}|name=/etc/nixos/configuration.nix|lang=nix}}
</syntaxhighlight>
 
==== Vesktop<ref>https://github.com/Vencord/Vesktop</ref> ====
As opposed to just Vencord, the same developers also offer an integrated solution which aims to make the Linux experience better.
 
It can be neatly managed via [[Home Manager]], or just installed as a regular package via <code>pkgs.vesktop</code>.
{{File|3={ config, lib, pkgs, ... }: {
  ...
  programs.vesktop = {
    enable = true;
 
    vencord.settings = {
      autoUpdate = true;
      autoUpdateNotification = true;
      notifyAboutUpdates = true;
 
      plugins = {
        ClearURLs.enabled = true;
        FixYoutubeEmbeds.enabled = true;
      };
    };
  };
  ...
}|name=home.nix|lang=nix}}


==== Webcord<ref>https://github.com/SpacingBat3/WebCord</ref> ====
==== Webcord<ref>https://github.com/SpacingBat3/WebCord</ref> ====
Line 79: Line 109:
== Troubleshooting ==
== Troubleshooting ==


=== Screensharing on Wayland ===
=== Screen sharing on Wayland ===
Discord's screen sharing capabilities have been broken for [https://support.discord.com/hc/en-us/community/posts/360047644231-Native-Wayland-Support?page=2#comments 5 years with no official fix]. The most consistent fix involves using the web version of Discord alongside a browser that supports screen sharing in Wayland, like [[Firefox]]. Alternatively, you can use an [[Discord#Unofficial Clients|unofficial client]] like ''Webcord'' or ''Vesktop'', both of which have fixed this issue in their own ways.
Since December 2024, Discord Canary supports screen sharing on Wayland. Alternatively, you can use the web version on a browser that supports screen sharing on Wayland, or an [[Discord#Unofficial Clients|unofficial client]] like ''Webcord'' or ''Vesktop'', both of which have fixed this issue in their own ways.
{{Note|Remember to configure an [https://wiki.archlinux.org/title/XDG_Desktop_Portal#List_of_backends_and_interfaces XDG Desktop Portal] with screen cast capabilities!}}
{{Note|Remember to configure an [https://wiki.archlinux.org/title/XDG_Desktop_Portal#List_of_backends_and_interfaces XDG Desktop Portal] with screen cast capabilities!}}


Line 94: Line 124:
}
}
</syntaxhighlight>
</syntaxhighlight>
=== Crash on start-up ===
Occasionally, Discord's code can become corrupted, causing it to crash on start-up. You can force it to re-download the latest version by deleting the <code>~/.config/discord/1.0.138</code>directory, where <code>1.0.138</code> is replaced with Discord's current version number (the second line of output when running <code>discord</code> from a terminal).


=== "Must be your lucky day" popup ===
=== "Must be your lucky day" popup ===
Line 143: Line 176:


After adding this to your Nix configuration and rebuilding, make sure Discord is completely closed, and then run:
After adding this to your Nix configuration and rebuilding, make sure Discord is completely closed, and then run:
<pre>$ krisp-patcher ~/.config/discord/0.0.76/modules/discord_krisp/discord_krisp.node</pre>
<syntaxhighlight lang=console>
$ krisp-patcher ~/.config/discord/0.0.76/modules/discord_krisp/discord_krisp.node
</syntaxhighlight>


Once you restart Discord and join a VC, you should see a sound wave icon to the left of the hangup icon.
Once you restart Discord and join a VC, you should see a sound wave icon to the left of the hangup icon.
Line 154: Line 189:
[[Category:Applications]]
[[Category:Applications]]
[[Category:Gaming]]
[[Category:Gaming]]
=== Discord RPC not functioning ===
==== NixOS ====
Install [https://github.com/OpenAsar/arrpc arRPC]:
<syntaxhighlight lang="nixos">
{pkgs, ...}:{
  enviroment.systemPackages = with pkgs; [
    arrpc
  ];
  systemd.packages = with pkgs; [ arrpc ];
}
</syntaxhighlight>
==== Home Manager ====
Add the following to your Home Manager configuration
<syntaxhighlight lang="nixos">
{pkgs, ...}:{
  services.arrpc = {
    enable = true;
    package = pkgs.arrpc; # Default
    systemdTarget = "graphical-session.target"; # Default
  };
}
</syntaxhighlight>