Warning
This project is not intended for standalone usage. You need a modified discord client that makes use of this.
venmic can be used as node-module or as a local rest-server.
The node-module is mainly intended for internal usage by Vesktop. For a usage example, see the following Vesktop source files:
- src/main/venmic.ts
- src/renderer/patches/screenShareFixes.ts
- src/renderer/components/ScreenSharePicker.tsx: 1, 2, 3
The Rest-Server exposes three simple endpoints
-
(POST)
/list
List all available applications to share.
You can optionally define a JSON-Body containing all the props the listed nodes should have (i.e.["node.name"]
). -
(POST)
/link
Expects a JSON-Body in the following form:
{ "include": [ { "node.name": "Firefox" } ], "exclude": [ { "node.name": "Chrome" } ] "ignore_devices": true, "workaround": [{ "node.name": "Chrome" }] }
Depending on wether or not
include
orexclude
are defined the behavior will change:- only
include
- Links nodes that match given props
- only
exclude
- Links nodes that do not match given props
- both
include
andexclude
- Links all applications that match props in
include
and not those given inexclude
- Links all applications that match props in
The setting
ignore_devices
is optional and will default totrue
.
When enabled it will prevent hardware-devices like speakers and microphones from being linked to the virtual microphone.The setting
only_speakers
is optional and will default totrue
.
When enabled it will prevent linking against nodes that don't play to a speaker.The setting
only_default_speakers
is optional and will default totrue
.
When enabled it will prevent linking against nodes that don't play to the default speaker.The setting
workaround
is also optional and will default to an empty array.
When set, venmic will redirect the first node that matches all of the specified properties to itself. - only
-
(GET)
/unlink
Unlinks the currently linked application
-
Rest-Server
git clone https://github.com/Vencord/linux-virtmic && cd linux-virtmic cmake -B build && cmake --build build
-
Node-Addon
git clone https://github.com/Vencord/linux-virtmic && cd linux-virtmic pnpm install
When reporting an issue please make sure to set the environment variable VENMIC_ENABLE_LOG
.
If said variable is set venmic will output a lot of useful information to stdout and a log-file which can be found in ~/.local/state/venmic/venmic.log
.
It is highly recommended to include this log file in your issue report otherwise we may not be able to help you!
- Curve/rohrkabel
- cmake-js
- @wwmm for improving compatibility with EasyEffects
Kudos to all the developers involved, keep up the great work!