Discord是美國Discord公司推出的跨平臺通訊軟體,提供遊戲玩家一個群聊的空間,並有低延遲的語音通話功能。
在Linux使用Discord卡簡單,不過有一些眉角愛注意!
1. 官方客戶端與第三方客戶端?#
Discord是跨平臺軟體,官方客戶端是用Electron寫的專有軟體,因此不可避免的臃腫。
如果只是要文字聊天,打開瀏覽器用Discord網頁版(https://discord.com/app)就好了。
除非要使用Rich Presence,也就是偵測你目前在聽的音樂,或是正在玩的遊戲並顯示在Discord給大家知道,才要安裝Discord客戶端。
像是在Linux安裝Steam之後,你目前遊玩的遊戲Discord會同步顯示。
聆聽的音樂,Discord也能顯示。
Discord客戶端分為官方推出的,與開源社群魔改過的。
Discord官方客戶端比較無腦,偵測的到大部分遊戲。
第三方客戶端有Vesktop、Legcord、Better Discord等等,提供各種界面修改。因為使用arRPC的開源實作來偵測使用者活動,更大的機率需要手動填寫遊戲名稱,無法自動偵測活動。
以前玩家用Vedsktop最大的動機是Wayland,因為Dicsord官方不支援Wayland分享畫面,第三方客戶端搶先啟用Electron的這項實驗性功能。現在則沒有這個必要了。除非你是追求更多自定義化、需要ARM架構版本的Discord才考慮用第三方。
2. 安裝Discord客戶端#
Discord官方打包的版本是.deb版本。也有Arch Linux的.pkg.tar.xz。要.rpm的話就用Fedora的RPMFusion套件庫提供的版本。
Ubuntu和Debian,到Discord官方網站下載,在檔案管理器點兩下安裝.deb套件。或者用指令安裝:
sudo apt install ./discord-*.deb不論是X11或Wayland桌面都不影響,現在Wayland桌面也可以分享畫面給Discord了。確保你的桌面環境有安裝Pipewire和XDG Desktop Portal服務(GNOME和KDE Plasma應該都有裝了)才能分享畫面。
Discord公司為Linux用戶設計了自我下載更新的機制而不用訂閱套件庫更新,每次開啟會自動下載更新,但我實在不喜歡太久沒開Discord還要等更新下載完成才能用。
另外還有官方與社群一起維護的Flatpak版Discord。但是不要用。呵呵,如果你不想被Discord群友知道你在玩什麼遊戲,務必下載Flatpak版的(笑)———— 這樣它永遠都只會顯示container裡面的的bash。Bash?是的!我可是很認真在終端機工作的呢!
若要讓Flatpak版Discord自動偵測Steam遊戲活動 (Rich Presence) ,它需要偵測你電腦上所有執行的程式,所以得用一些詭異的方式解決。參考Arch Wiki建立systemd-tmpfiles:
mkdir -p ~/.config/user-tmpfiles.d/
echo "L %t/discord-ipc-0 - - - - app/com.discordapp.Discord/discord-ipc-0" >> ~/.config/user-tmpfiles.d/discord-flatpak.conf
ln -sf $XDG_RUNTIME_DIR/{app/com.discordapp.Discord,}/discord-ipc-0不想這麼麻煩就安裝原生套件,也就是.deb版。
3. 設定Rich Presence偵測活動#
Discord的Rich Presence (RPC) 會嘗試偵測你現在在幹嘛,並顯示在個人資料旁邊。
僅限開著Discord客戶端的時候會偵測。
有很多第三方程式能向RPC Server傳送資訊,例如使用IPC。
遊戲#
Steam遊戲應該是開箱即用。
至於其他遊戲嗎,偵測不到就開啟Discord設定 → 活動 → 已註冊遊戲,新增該遊戲的行程或視窗名稱。
順帶一提,VS Code有插件Discord Rich Presence能讓Discord偵測為遊戲。
音樂#
Discord顯示Spotify聆聽歌曲的方式應該是透過API訪問的,只要在Discord設定把你的Spotify帳號與Discord連接就好,它不用偵測Linux桌面的活動也能顯示播放進度。
如果是用其他播放器所播放的音樂或影片,可以安裝這個:discord-music-presence Discord便會顯示更多音樂。
4. 語音通話時軟體降噪#
如果麥克風太爛容易出現電流聲音,除了用Discord本身的Krisp雜訊抑制之外,可以用EasyEffects介入調整。
5. 使用Discord Overlay顯示通話面板#
在群組通話的時候,在遊戲畫面上顯示誰在講話的面板。
Linux版Discord客戶端尚未提供這個功能,要安裝Discover-Overlay達成。


