Skip to content

Discord IPC Bridge (WDIB)

Bayazid B. Halim edited this page Aug 10, 2022 · 4 revisions

Discord IPC Bridge

The Wine Discord IPC Bridge (WDIB) is a program that enables other programs which are running under Wine to send its own Rich Presence data to a Linux Discord client. It works by bridging the gap between Windows named pipes (\\.\pipe\discord-ipc-0) and Unix domain sockets (/run/user/$UID/discord-ipc-0).

Steamtinkerlaunch can automate this process using USE_WDIB in the Game Menu and Default Menu.

Screenshots

image

image

image

WDIB with Flatpak

The WDIB has an experimental feature to try connecting to Flatpak Discord's IPC Socket.

Instructions

To use it, you will need to symlink the native discord-ipc-0 pipe and Flatpak Discord's pipe using the following command:

ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-0

You can make this permanent with:

mkdir -p ~/.config/user-tmpfiles.d
echo 'L %t/discord-ipc-0 - - - - app/com.discordapp.Discord/discord-ipc-0' > ~/.config/user-tmpfiles.d/discord-rpc.conf
systemctl --user enable --now systemd-tmpfiles-setup.service

Flatpak Steam may or may not need permission to access $XDG_RUNTIME_DIR/app/com.discordapp.Discord/ and a symlink at its own $XDG_RUNTIME_DIR in /run/user/$UID/app/com.valvesoftware.Steam/discord-ipc-0 pointing to /run/user/$UID/app/com.discordapp.Discord/discord-ipc-0.

Caveats to WDIB

The project has noted itself to be a proof-of-concept and is still undergoing some development process, with a goal to eventually support Snap as well. As such, it has a few caveats and issues.

First of all, it only works with games that officially supports Rich Presence Data through the \\.\pipe\discord-ipc-0 pipe. It does nothing for games that does not support it.

Second, it has been tested on certain systems (currently mainly affects Arch-based distribution) to sometimes prevent the launching of the game until the pipe terminal window is closed.

Lastly, there may be issues involving mixing and matching of native vs flatpak Steam and Discord.

Alternative (rpc-wine)

You can also use the older rpc-wine bridge as well, although this isn't supported directly by steamtinkerlaunch. Following this guide, you can use the rpc-wine by:

  1. Download the latest release (direct link)
  2. Extract it to a directory readable by Steam
  3. Add the dll path to the game's environment variable (WINEDLLPATH=$WINEDLLPATH:/path/to/discord-rpc/bin64:/path/to/discord-rpc/bin32)
  4. Add the dll override discord-rpc=n,b (can also be added manually using winetricks/protontricks)
Example

image

image

Clone this wiki locally