Discord
Discord 是一款专有的、跨平台的、一体化的语音和文本聊天应用程序。许多开源社区也拥有官方 Discord 服务器。Discord 可以通过网页浏览器或桌面应用程序使用,桌面应用程序使用 Electron 构建。
安装
您可以使用以下软件包之一来安装 Discord 的桌面应用程序
图形客户端
官方应用
- 稳定版: discord
- 测试版: discord-ptbAUR
- 每日构建版: discord-canaryAUR
或者,Discord 也可作为 Flatpak 提供。这可以修复一些与系统库相关的问题,并在某些情况下提高性能,但需要额外的工作来启用 Rich Presence。请参阅 #在 Flatpak 上启用 Rich Presence。
$ flatpak install discord
使用系统 electron 的官方客户端
官方客户端,使用系统提供的 electron 以提高安全性并可能获得更好的性能
- 稳定版: discord_arch_electronAUR
- 每日构建版: discord-canary-electron-binAUR
第三方客户端
- Abaddon — 一款使用 C++/gtkmm 构建的替代 Discord 客户端,支持语音。
- discord-screenaudio — 一款自定义 Discord 客户端,支持在 Linux 上进行带音频的流式传输。
- Dissent — Go 语言开发的 GTK4 Discord 客户端。
- Legcord — 一款自定义客户端,旨在增强您的 Discord 体验,同时保持一切轻量级。
- Ripcord — 一款轻量级的、专有的桌面聊天客户端,适用于以群组为中心的服务,如 Slack 和 Discord,基于 Qt 工具包构建。
- Vesktop — Vesktop 是一款跨平台桌面应用程序,旨在为您提供更流畅的 Discord 体验。支持带音频的屏幕广播。
- WebCord — Web 客户端的封装器,可提高隐私性并允许在 Wayland 上进行屏幕共享。
命令行客户端
AUR 上有许多基于 CLI 的第三方客户端(Github 上也有未打包的客户端),尽管大多数已弃用或损坏。discordo 仍在维护并在 AUR 上打包为 discordo-gitAUR。
聊天客户端插件
- bitlbee-discord — Bitlbee 的 Discord 插件
- weechat-discord — WeeChat 的 Discord 插件
自定义 CSS & 插件
- BetterDiscord — 一个允许修改 Discord 以使用自定义 CSS 和插件的项目。
- Discocss — 一个简单的脚本,可以将自定义 CSS 注入到 Discord 客户端中。要将 CSS 注入到 discord-ptbAUR 和 discord-canaryAUR 版本中,请将任何提及
discord
文件夹的地方替换为正在使用的版本。
- Replugged — Powercord 的一个分支,这是一款轻量级的 Discord 客户端 mod,专注于简洁性和性能。
- Vencord — 一款 Discord 客户端 mod,在 Discord 启动之前完全加载,旨在使其更快更稳定。
覆盖层
对于 Linux 客户端,Discord 不支持游戏内覆盖层。discover-overlayAUR 是一款提供这些功能的开源 GTK 应用程序。Discover 可以在 X11 或 wlroots 环境下工作。由于依赖于高级 RPC,这与第三方客户端不兼容。
实用程序
- Chuncord — 一款命令行工具,用于使用 webhook 将文件分部分上传到 Discord CDN
技巧与窍门
GNOME 顶部栏图标
如果您希望在 GNOME 的顶部栏上显示图标,请安装 AppIndicator 和 KStatusNotifierItem 支持扩展 和 libappindicator-gtk3。
Discord 提示更新,但仓库中尚不可用
如果有可用更新,Discord 将拒绝启动,并显示以下消息“Must be your lucky day, there's a new update!”(一定是您的幸运日,有新更新!)。如果更新后的版本在官方仓库中尚不可用,您可以使用 Arch 构建系统 构建并安装更新后的软件包。
要禁用更新检查,请将行 "SKIP_HOST_UPDATE": true
添加到 ~/.config/discord/settings.json
。如果该文件不存在,请创建它并添加以下内容
~/.config/discord/settings.json
{ "SKIP_HOST_UPDATE": true }
请注意,如果该文件存在,由于 JSON 要求,您需要在 WINDOW_BOUNDS
对象后添加一个额外的逗号,即
{ "IS_MAXIMIZED": true, "IS_MINIMIZED": false, "WINDOW_BOUNDS": { "x": 2240, "y": 219, "width": 1280, "height": 720 }, "SKIP_HOST_UPDATE": true }
如果上述方法仍然提示更新,一个快速的临时替代方法是将新的 discord-0.0.x.tar.gz
文件解压到例如 /opt/discord-temporary/
,更改新解压的 discord.desktop
的名称,并将其符号链接到您的 ~/.local/share/applications/
文件夹中,最好也更改新的 discord.desktop
文件中的 Name,以便将其与您的系统 Discord 客户端区分开来。
启动 Discord 时最小化
可以通过 --start-minimized
参数以最小化方式启动 Discord。
麦克风噪音抑制
Discord 现在内置了噪音抑制功能,标准选项和由 Krisp 提供的 AI 驱动选项均可用。您还可以按照 PipeWire#语音噪音抑制 在 PipeWire 上提供您自己的噪音抑制。
屏幕共享与音频
Discord 现在原生 支持 Linux 上的音频流,支持已在 0.0.76 版本中添加。
Web RPC 扩展
有一些扩展程序可用于在您的 Discord Rich Presence 中显示选定的 Web 活动
- PreMiDAUR 与适当的浏览器 扩展。
- discord-rpc-extension-binAUR 与 PreWrap 或 Mal-sync 浏览器扩展。
启用开发者工具
在最近的一次更新之后,出于安全原因,默认情况下在 Discord 上禁用了 devtools。要重新启用它们,请将其添加到 ~/.config/discord/settings.json
"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true
启用文本转语音
默认情况下,文本转语音在 Discord 客户端中被禁用。但是,可以使用 --enable-speech-dispatcher
标志启用它。这会利用 speech-dispatcher 守护程序来输出语音。
原生 Wayland 渲染
Discord 和其他 Electron 应用程序默认使用 X11 并在 Wayland 会话上通过 Xwayland 运行,这是可以更改的。请参阅 Wayland#Electron。
- 由于官方 Discord 客户端不使用系统 Electron,因此它不会使用
~/.config/electron-flags.conf
中的标志。 - 如果您使用的是 flatpak 版本,则必须在 Flatseal 或 Plasma 设置中授予 Discord 使用 Wayland 的权限,否则它将无法启动。这可能也适用于其他 flatpak 应用程序。
故障排除
滚动服务器列表时卡顿
如果您在滚动服务器列表时遇到卡顿和停顿,请确保您的硬件加速工作正常。您可以通过在基于 Chromium 的浏览器中打开 chrome://gpu
来执行此操作。如果它不起作用,请查看关于 硬件视频加速 的章节,并尝试使用一些附加选项运行 Discord
$ discord --ignore-gpu-blocklist --disable-features=UseOzonePlatform --enable-features=VaapiVideoDecoder --use-gl=desktop --enable-gpu-rasterization --enable-zero-copy
语音通话期间出现爆裂声
如果您在语音聊天中遇到爆裂声,请尝试 PulseAudio/故障排除#故障排除缓冲区下溢(毛刺、跳过、爆裂声) 中概述的步骤。
Wayland 上的屏幕共享
从 0.0.17 版本开始,屏幕共享功能在 Wayland 上无法工作,即使启用 Ozone for Wayland,使用 /usr/bin/discord --enable-features=UseOzonePlatform --ozone-platform=wayland
也不行。请参阅 此 Reddit 帖子 和 Discord 错误报告。
可能的解决方法是
- 如果您还安装了 X11,则可以通过设置以下环境变量轻松解决此问题:
XDG_SESSION_TYPE=x11
。如果您使用 Flatpak 安装了 Discord,则可以使用 Flatpak 权限管理器(如 flatsealAUR)来设置相同的环境变量。 - 在支持屏幕共享的浏览器(如 Firefox)中使用 Discord。浏览器将提示您通过其原生对话框选择要共享的窗口或屏幕。
- XwaylandVideoBridge。请参阅 Wayland#使用 X11 应用程序进行 Wayland 窗口屏幕广播。
- 使用虚拟摄像头。请参阅 Open Broadcaster Software#虚拟摄像头输出 和 屏幕捕获#通过虚拟网络摄像头视频源。
- 使用第三方客户端(通常关于 Discord TOS 的警告适用,风险自负)
- webcordAUR 完全支持 Wayland 上的屏幕共享,但由于它捆绑了 Web 版本的 Discord,因此缺少诸如 rich presence 之类的功能。
- Vesktop,可作为 vesktop-binAUR 使用。
在 Flatpak 上启用 Rich Presence
使用 Flatpak 版本的 Discord 时,Rich Presence 将无法开箱即用。要使其工作,需要创建从 $XDG_RUNTIME_DIR/discord-ipc-0
到 $XDG_RUNTIME_DIR/app/com.discordapp.Discord/discord-ipc-0
的符号链接。要为当前用户会话创建符号链接,请运行
$ ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-0
要自动创建符号链接,可以使用 systemd-tmpfiles,方法是在 ~/.config/user-tmpfiles.d/
中扩展名为 .conf 的文件中添加以下行
L %t/discord-ipc-0 - - - - app/com.discordapp.Discord/discord-ipc-0
长时间通话期间 Discord 变得无响应
如果 Discord 在长时间通话期间变得无响应,请尝试 --no-sandbox
参数。您也可以将以下内容添加到您的 .bashrc 或 shell 的别名文件中
alias discord='discord --no-sandbox'
收到 ping 或消息后 Discord 卡死
如果一条会触发通知的消息(ping、DM、启用通知的服务器等)导致客户端卡死,则客户端无法找到通知服务器。要在不安装通知服务器的情况下修复它,请在通知选项中禁用启用桌面通知。
通知声音在 PipeWire 下无法工作
表情符号渲染不正确
如果您遇到关于表情符号的渲染问题(例如,渲染为矩形),discord-canary-electron-binAUR 具有适当的字体作为可选依赖项。您应该安装 ttf-symbolaAUR、noto-fonts-cjk 和 noto-fonts-emoji。
ttf-twemojiAUR 是使表情符号出现在频道名称中所需的。请务必将 75-twemoji.conf
安装到 /etc/fonts/conf.d/
,默认情况下不会这样做。
点击链接无法打开网页浏览器
如果点击链接没有在您的默认网页浏览器中打开选项卡,您应该安装 xdg-utils 可选依赖项。
KDE Plasma 系统托盘中 Discord 图标模糊
您可以尝试通过安装 libappindicator-gtk3 来替换 libappindicator-gtk2 来解决此问题,后者已知会导致此问题。
Discord 向 systemd 日志中写入大量信息
您可能会发现 Discord 在您的 日志 中创建了大量消息,格式如下
(device_info_linux.cc:45): NumberOfDevices
要禁用导致此污染的日志记录:转到用户设置,选择“语音和视频”,滚动到屏幕底部并禁用“调试日志记录”。
纯 ALSA 环境中没有语音聊天
Discord 的桌面应用程序依赖于 PulseAudio 进行语音聊天,并且不直接在 ALSA 上运行。在这种情况下,使用 apulse 作为解决方法已弃用。如果您想在没有 PulseAudio 或 Pipewire 的情况下使用 Discord 的语音聊天,请通过 基于 Chromium 的网页浏览器 访问 Discord 的 Web 客户端。或者,作为基于 Chromium 的封装器,Webcord 在纯 ALSA 环境中可以工作。
如果您选择此路线并且无法取消静音(即获得访问麦克风的权限),请在 ~/.asoundrc
中将其设置为默认捕获设备。此外,在 Discord 中,转到用户设置 > 语音和视频 > 输入设备,并确保选中默认。
通知徽章丢失
Discord 可以在任务栏图标上显示徽章,显示未读提及的数量。如果未显示徽章,请验证是否安装了 libunityAUR 软件包,因为此功能需要它才能工作。
如果您使用的是 KDE Plasma,您可能需要在启动 Discord 之前手动设置环境变量 XDG_CURRENT_DESKTOP=KDE5
。
Wayland 上 NVIDIA 闭源驱动黑屏
Wayland 上的 Discord 需要 VA-API 支持,而 NVIDIA 闭源驱动程序不具备此功能。可以使用诸如 libva-nvidia-driver 之类的转换层来获得 VA-API 支持。
表情是方块
您需要安装一个处理 表情符号 的字体包才能使其正确渲染。
使用 Wireplumber 时,当 Discord 处于活动状态时,麦克风音量不断降低
可以通过删除一些 WirePlumber 对 discord 的权限来解决此问题。感谢 Martin Bartlett 在 askubuntu.com 上提供的解决方案。
~/.config/wireplumber/wireplumber.conf.d/99-stop-microphone-auto-adjust.conf
access.rules = [ { matches = [ { application.process.binary = discord } ] actions = { update-props = { default_permissions = "rx" } } } ]
然后重启整个音频堆栈。
$ systemctl --user restart wireplumber pipewire pipewire-pulse