MCPcopy Index your code
hub / github.com/ImTheSquid/Tuxphones

github.com/ImTheSquid/Tuxphones @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
94 symbols 158 edges 8 files 13 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Tuxphones

Discord screensharing audio for Linux.

Development is ongoing and therefore some features do not work fully or are broken. If you find a bug, open an issue!

State of the Project

Project Activity

We are very busy, so progress will be slow for the forseeable future.

General Support

We are currently working on supporting PulseAudio and X11. Once these become stable, we will start working on PipeWire and Wayland.

BetterDiscord Plugin

After the big Discord update in September 2022, the functionality of the plugin was completely broken. While we have tried to fix it as much as possible, it is still slightly inconsistent in reporting and integration so you may have to refresh Discord (Ctrl/Cmd+R) a few times to get it to load properly.

Daemon

While most of the daemon works properly, we can only transmit video to Discord at the moment (through WebRTC). We are undergoing a transition from WebRTC to UDP transmission, so nothing transmits right now. To get a better look at the actual transmission code, look at our sister project here.

Contributions

We are open to contributions, however the project is still not stable so things will break. We plan to make an API for extending to PipeWire and Wayland in the future once we have a MVP.

Installation

Prerequisites

  • BetterDiscord
  • Rust
  • Cargo
  • Systemd
  • PulseAudio Dev Libraries
  • All GStreamer Dev Libraries

Tuxphones is still in-development. Follow these temporary instructions to try it:

Clone the repo, then copy the plugin file from bd/release to your BD plugins folder. Then run cargo run from the daemon directory. Finally, enable the BD plugin.

The below instructions do not work yet! The Crates package is very outdated and will not be updated until the project works.

Manual

Run:

./install.sh

This will install the daemon then copy the BetterDiscord plugin to your plugins folder.

Updating

The client-side plugin updates through Discord.

To update the daemon, run:

./updateDaemon.sh

Core symbols most depended-on inside this repo

send
called by 12
daemon/src/socket.rs
op_wait
called by 8
daemon/src/pulse.rs
from
called by 6
daemon/src/gstreamer.rs
stop
called by 4
bd/release/Tuxphones.plugin.js
resetVars
called by 3
bd/release/Tuxphones.plugin.js
resetVars
called by 3
bd/src/Tuxphones/index.jsx
join
called by 3
daemon/src/lib.rs
patchGoLive
called by 2
bd/release/Tuxphones.plugin.js

Shape

Method 56
Class 23
Function 8
Enum 7

Languages

Rust62%
TypeScript38%

Modules by API surface

bd/release/Tuxphones.plugin.js21 symbols
daemon/src/socket.rs18 symbols
daemon/src/pulse.rs18 symbols
bd/src/Tuxphones/index.jsx15 symbols
daemon/src/gstreamer.rs10 symbols
daemon/src/x.rs7 symbols
daemon/src/lib.rs3 symbols
daemon/src/main.rs2 symbols

For agents

$ claude mcp add Tuxphones \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact