diff --git a/src/renderer/components/ScreenSharePicker.tsx b/src/renderer/components/ScreenSharePicker.tsx index 6f95ae0..4259808 100644 --- a/src/renderer/components/ScreenSharePicker.tsx +++ b/src/renderer/components/ScreenSharePicker.tsx @@ -267,7 +267,11 @@ function AudioSourcePickerLinux({ const [sources, _, loading] = useAwaiter(() => VesktopNative.virtmic.list(), { fallbackValue: { ok: true, targets: [], hasPipewirePulse: true } }); + const allSources = sources.ok ? ["None", "Entire System", ...sources.targets] : null; + const hasPipewirePulse = sources.ok ? sources.hasPipewirePulse : true; + + const [ignorePulseWarning, setIgnorePulseWarning] = useState(false); return ( <> @@ -279,32 +283,38 @@ function AudioSourcePickerLinux({ Audio Source )} - {!sources.ok && - (sources.isGlibcxxToOld ? ( - - Failed to retrieve Audio Sources because your C++ library is too old to run venmic. If you - would like to stream with Audio, see{" "} - - this guide - - - ) : ( - - Failed to retrieve Audio Sources. If you would like to stream with Audio, make sure you're - using Pipewire, not Pulseaudio - - ))} + {!sources.ok && sources.isGlibCxxOutdated && ( + + Failed to retrieve Audio Sources because your C++ library is too old to run + + venmic + + . See{" "} + + this guide + {" "} + for possible solutions. + + )} - {allSources && ( - ({ label: s, value: s, default: s === "None" }))} + isSelected={s => s === audioSource} + select={setAudioSource} + serialize={String} + /> + ) + ) : ( + + Could not find pipewire-pulse. This usually means that you do not run pipewire as your main + audio-server.
+ You can still continue, however, please beware that you can only share audio of apps that are + running under pipewire. +
+ setIgnorePulseWarning(true)}>I know what I'm doing +
)}