#๐ฅ-vesktop-development
1 messages ยท Page 4 of 1
interesting
ill retest later
hmm
I streamed for a few hours the other day
it was fine
the only annoying part was my stream couldn't fold 60fps because of 4696 bitrate cap
okay, lmk
bc at night when i was trying to fix starting stream i did some changes in conn finding, maybe this fixed some problems
something like that
just ignore setTimout things at the end, it is tries to fix stream
yeah, i believe there must be better way xd
const conn = connections.find(conn => conn.streamUserId === UserStore.getCurrentUser().id)
okay, this works for me as well
i still can't reproduce that bug
i started stream 1080p60 -> got it
Changed to 480p15 -> got it
changed back to 1080->60 got it
interesting
and i think we must let this conn finding code, because just getting [1] looks unstable
yeah definitely
getting [1] doesn't work if another stream is running
if I can fix input.stream to stop being undefined
it'll be great
now nothing work because of discord bug ๐
lmao
if we can get somehow stream object from electron picker then we can just assign it
true
or we need more investigation, maybe discord do have somewhere stream
I'll test more when i get home
while I'm at school I'm gonna work on the modal css and another vencord project
I have an idea of temporarily workaround about this dc bug. We can after 1 second find new connection, call again getDisplayMedia function for getting stream object and assign it to connection. I tried it but without success. Looks like we need to change something else too and/or call some functions
But this approach will again call system display picker :c
Discord will not allow streaming more than 60 FPS
I second that, ive tried and to no avail, but even then the bitrate barely holds 1080p60 stable, 1440 is really rough on it, so even 480p120 would be really tough.
yeah it is
omfg
how does FakeNitor does it then?
fakenitor
xd
I saw a custom plugin in the Vencord server by someone, wich would allow for higher fps streaming. He showed it in a VC, and is was silky smoooth
I really wanna get in vc, say I found the plugin, and stream at 30fps
and see the reaction
xD
LMAO
it's still locked at 59 LMAO
yeap
wtf is the bitrate though
I'm going to bump the bitrate limit up later to test like
1440p144
I applied 120 fps at Track settings, and we still are hardcapped to 60 fps, even when sometimes we reach for moment >60 fps
Also, we have strange bitrate behavior.
we need 4k display for it ๐ฆ
we can emulate it i think
I have a 4k tv but it's not near my pc
creat virtual 4k display somehow, in x11 we 100% can do it
i believe in wayland there must be a way to do it too
my pc will prob die, but it was def more than 60 FPS
it would be
interesting
1 year old
I believe discord changed many things by this time and fixed this
do desktop plugins work in vesktop too?
Gave the setup a go last night
Mouse movement in the discord window or the captured window would bring the stream framerate to it's knees
On KDE plasma 6
But so long as the mouse did not move it was quite heavenly
Which was surprisingly not so much of a problem streaming VRChat on monado in HMD
interesting
Well I'm back
I have the exact opposite issue
i forgot to commit stuff i did last night
on Gnome 46 Nvidia
i cant work on it on my laptop ๐ญ
welp guess ill just do my vencord plugin instead
wow
https://raw.githubusercontent.com/refact0r/midnight-discord/master/flavors/midnight-vencord.theme.css
For raw including in themes
mhm
anywayssss
hm
welp guess its time to figure out how to do volume stuff
vencord patches yayyy
Godspeed, I am immeasurably happy I can stream vr to everyone in chat even if its a little funny right now ๐ฅฐ
Tried windowed mode instead of fullscreen?
Streaming the monitor will result in updates only when the cursor plane updates for some reason
oddly enough, the secondary monitor seems unaffected
Even more oddly, rn the stream is simply broken
AAND
I'm back on 40 and can reset my custom Pipewire because there are conflicts that had to pop up rn
AHAHAH
:D
whar
iirc there's a book to include the mouse cursor in the pipewire api
Might be worth testing with/ without it
do lmk if you find anything
i cant test rn and yall cant test on the latest update because i forgot to push my commits
๐ญ
i fixed a lot of issues
Ooh, wen push?
the 2 biggest problems imo are the weird 4696 bitrate cap and the uh
conn.input.stream being undefined
All good I'm outta work in 5h
Learned me well, always have the pub key ssh box on the home net, always
OKAY... looks like I can rebase from testing to stable just fine
So i'll do that ๐
i saw something related to volume on conn object
outputVolume: 100
let me test it xd
hm
Huh
broken even with stock stuff
Well, funnily enough it looks like Rawhide is the only stable ground I have
doesn't work even in Rawhide now?
Okay
i was using Canary
Okay
So, Stream's broken on Canary, not stable. Good
and bad
huh, the bug is gone
Interesting, prepare for when the current canary merges into stable, I guess
what about it doesnt work on canary
Also, I tried giving microphone permissions to dev.vencord.vesktop manually but that doesn't seem possible anymore on Sonoma.
thereโs always the cursed way
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
insert into access values ('kTCCServiceMicrophone','dev.vencord.vesktop', 0, 2, 2, 1, null, null, null, 'UNUSED', null, null, 1706117326, null, null, 'UNUSED', 0);
No permission
 ExtensionLoadWarning: Warnings l...
It seems like venmic isn't able to determine your systems default speakers, can you please share the output of pw-dump Metadata?
[
{
"id": 30,
"type": "PipeWire:Interface:Metadata",
"version": 3,
"permissions": [ "r", "w", "x", "m" ],
"props": {
"object.serial": 30,
"metadata.name": "settings"
},
"metadata": [
{ "subject": 0, "key": "log.level", "type": "", "value": 2 },
{ "subject": 0, "key": "clock.rate", "type": "", "value": 48000 },
{ "subject": 0, "key": "clock.allowed-rates", "type": "", "value": "[ 48000 ]" },
{ "subject": 0, "key": ...
The screen stream bug is only present in Canary
Not in stable, as of my testing
Huh, interestingly enough, I did some more testing.
So, stream is totally broken for me on anything but Rawhide it seems... probably GStreamer 1.24 related.
Okayyy... now it's broken in Rawhide too?
Well, let's just say it's EXTREMELY inconsistent
oh my
Are you back?
To push the stuff you didn?
at Function.assign (<anonymous>)
at Object.patchStreamQuality (VCDRenderer:1:5071)
at new o (WebpackModule701597:2:908)
at u.getDesktopQuality (WebpackModule701597:2:3583)
at u.getQuality (WebpackModule701597:2:1683)
at f.initializeStreamParameters (65573.bdec86aโฆ.js:1:7139992)
at new h (65573.bdec86aโฆ.js:1:7261261)
at new f (65573.bdec86aโฆ.js:1:7302145)
at h (65573.bdec86aโฆ.js:1:7265458)
at C.connect (65573.bdec86aโฆ.js:1:7315059)```
Looks like some of the parameters for patchStreamQuality are undefined in some cases
I'd like to print them to test, but I can't build as Rawhide has broken containers
Time to reboot
Nice
"metadata.name": "default"
The name and params are as expected, I'll look into it asap
There is a chance this issue trickled down from canary btw
only merge when dev gets merged to main
perhaps I should make the change on vencord non breaking, you will me vee
i did
its less than i thought
i was eepy
you know what xD
latest commit broke stream starting for me
even when no one else streaming
damn
same thing here
ughhhh
okay that's gonna take more work
i believe these if statements we can write simply as "if (conn)"
bc conn object will be only when ids same
true
yeah
it can
i wrote this while i was basically falling asleep
im not gonna be super active development tonight
im fixing a chromebook
i'll try to fix this problem and will commit if i find solution
or i do not have write access..
anyway i will let you know
i cant start watching stream too
looks like it tries to patch stream quality for not our stream
Not just the latest, probably a discord change trickled down from Canary
It broke on Canary, worked on stable, now not even there, at least for me
i pushed fix xD, pull it
ill be spending tonight fixing a chromebook and then experimenting with linux on it if i get it working
oki LMAO
i think itll be way better with all of us able to push and pull
fps and res setting not even broke after it
nice
but changing window broke..
changing windows works for me
idk about changing windows + res
for me it setups back to fullhd 30 fps
hm
wtf is that when i change window
why did you comment it
bc it drops error while starting stream or watching
because encode is undefined now in some reason
no null checking
fixed it
by this
we submit only when there are no connection for stream already
okay it looks for me good now
if (conn?.streamUserId === UserStore.getCurrentUser().id) {
if (opts?.encode)
Object.assign(opts.encode, {
framerate,
pixelCount: height * width
});
here we have ressurection of github api
Do we really need this? Because conn variable is exists only when we previously find it by comparing IDs:
var conn = [...MediaEngineStore.getMediaEngine().connections].find(
connection => connection.streamUserId === UserStore.getCurrentUser().id
);
cant mark your own reviews as resolved
shithub at its finest
theres so many features that just arent there that really should be
i just commented it(
Funny thing btw
and i doubt you can as well cause you're not the pr author
It works now, but the cursor bug is back
then its probably a deeper webrtc issue we have no control over?
I'll test Rawhide ONE LAST TIME
about commenting i agree, your approach is better for future discord changes
I think it has to do with Pipewire or GStreamer
gstreamer then
When using Rawhide it was perfect. the major difference was GStreamer 1.24
pipewire is purely audio and is not relevant
Pipewire have Gstreamer plugin
i believe in future video support will be more extended
what version has the cursor issue then
if its older then oh well, welcome to stable release distros
if its newer then its a regression
I think GStreamer 1.23
so its already fixed, no use caring
Yeah but now it's back
can i give access
probably not, its just a missing feature within github
I can't find a consistent reproducer for the working scenario
The only conclusive thing is that the secondary monitor doesn't present this issue
gsync?
i have major issues with freesync
i had to turn it off
it makes my monitor flicker
(implicit sync kinda vibes)
can we add #191 and #463 here? screenshot from our PR
ah its the decoding thats broken it seems
Doesn't happen for me
encode works
Btw, streaming the window is still much more performant than monitor, even mouse issues aside...
I wonder if you can reproduce this
also this is fixed now, i believe
It's probably just the window vs monitor issue that @hybrid fjord opened yesterday
Any news on that btw?
only added labels xD
looks like they added this to project, so i have hope that they will fix it
Welp
No one can reproduce this issue yet, right?
We only have the inverse, on KDE
can you again write what exactly issue is?
So, sharing a window works very well, sharing a monitor works but with a much lower framerate; Sharing the primary monitor, on GNOME 46 (Nvidia Wayland) leads to an avg fps or 4-5 with drops to 1 UNLESS the cursor is moving.
We theorised that it was due to Window/Monitor not being set properly by chromium, for which we opened a bug
oh, these one
Yep
I wonder if you have the framerate drop compared to window streaming in your setup as well
Like, from 60 locked to 40-45hish
That's what I've been seeying
i believe no
it is display streaming
Let me try something
in final commits we need to do not forget to remove all these console.logs
Huh
Looks like even the window screen sharing is very bad now... the hell
rarely crashes on starting a new stream with ```terminate called after throwing an instance of 'std::future_error'
what(): std::future_error: Promise already satisfied
c++
Yeah, strange stuff
Well, I'm going back to 40
and cleaning up Rawhide
it's broken on both, mostly in a similar manner by the looks of it
I will try to test the differnece between app and screen streaming even while moving the cursor soon
can you try to install kde?
lol
i can reproduce this
Slight drop?
yeap
Okay
it might be encoder issue or smth like that
Which is why I'm somewhat tempted to build GStreamer 1.24.2 before Fedora
that + custom pipewire with explicit modifiers
Wait are you guys talking about this issue
Yes, but specifically with the currently open MR
Basically window streaming is much better than screen
And I have a bug where not moving the cursor while streaming the screen tanks the framerate significatnly
seems to be multimonitor related
I'll now test my secondary monitor
but we are not using anything that can do this frame drops
Also there is some work to make use of explicit sync for Pipewire screen sharing
Interesting stuff
Let me test the secondary monitor
For window streaming i have the same fps drops when mouse moving
I don't have drops when the mouse moves
and you do have updates only when mouse moves
Window is mostly perfect for me
Yep
Looks like on KDE it's the literal inverse
i have same behavior like screen sharing
i do not think that we in vesktop code can and must do anything to fix this
Yeah, I agree
We definitely improved what we could but this all looks like upstream issues
The problem is that I would have to prove they are upstream
Test this
I think i can reproduce it
Btw, when the stream framerate increases due to mouse movement the underlaying primary plane doesn't update
I.e. it still gets dropped
Window is perfect
nvm, looks like i accidentally picked screen instead of window. In window streaming when i move mouse i do not have drops
like this
AHAHAH
OBS seems fine but direct scanout in fullscreen seems to cause it to drop some frames
Screen to window changing seems broken
i didnt check res or fps but it works for me
jokes aside, other than reporting, the only real thing I can do rn is to find a way to record Wine Wayland windows AHAHAH
To sidestep the real issue just a bit
Start Stream display -> change stream to window -> not changing with any permutations
start stream window -> change stream to display without changing res and fps -> not changing
start stream window -> change stream to display with another settings -> changing
this is for me
can anyone recheck?
it did 1440p30
i chose 720p60
i didnt check fps and res on the first 2
just the last one
still trying to solder
i just checked whether stream is changing image
it did all 3 times for me
res and fps didnt work well though
btw nobody was watching me
wtf lmao
propably smth on my end
last one changes stream from window to display and it is 60 fps, so not dropped to default screen res and 30 fps
hmm
oh
odd
im not on the latest commit
its a regression
this should always submit
okay
the code after handles reapplying so that it doesnt matter if the track is changed
i really should comment what i do
itd be better to put the entire block in this try in if conn
instead of just the latter
how then it changed if i change settings
oh
when we submit then it applies default res and 30 fps
but submitting only when there is no connection (starting stream) i fixed problem when reverting to 30 fps
but this changing window problem added
what if we after submitting just wait in code for like 100 msecs and then apply new constraints?
bc it looks like we apply but then discord applies default ones back
i will try
Im getting infinite loading on the latest commit of #489
Xwayland
the screen capture portal seems to remane open even after i end the stream
and if i exit the portal the stream remains open
theyre not hooking correctly or smth?
i had strange behavior that screen capture portal opens again even if we already chose desktop
But for now i just ignore it as we trying to fix streaming
hm well streaming isnt even starting for me
i will reclone repo and retest it
@azure verge it worked for me but i do believe there must be better way to do this. What do you think about this approach?
@hybrid fjord is your stream working on your end?
i think theres something scuffed on my system
I'm getting near constant system freezes
mouse still works and apps still work but anything that requires loading just freezes
what tf is happening
screenshots are just blank
@broken solstice when i start stream display -> change to window then i do have the same behavior with fps as you.
With how it's implemented currently it is needed as conn is defined within a try-catch. If it were to raise we wouldn't have conn
Maybe we can just write if(conn?)? I just want to not do unnecessary === calls
@azure verge with this approach i get working stream->window and vise-versa changings with setted settings fixed, including 60 fps. Do you think there is better way to do this? Or i can commit it?
its not perfect but the main thing rn imo is making something work
Ah you're right as conn will already be defined as the user's stream. Yeah I think just using if (conn) would be enough
okay i'll do some more tests and will commit it
pushed, so if can anyone pull and test it, it will be great
and i believe we can check it finally:
"Fix bug where changing windows allows you to lower the fps but not raise it"
as for now we also have issue when we can't start stream while viewing someone else's stream. But it is also reproducing in discord web, so i believe discord's devs will fix it soon
are you sure submit isnt async?
actually it should be
submit maybe, but it seems that discord still doing something with track. I do not really sure whether it is while submit works or after
yes but its async
i will try make this better, but for now it just works for me
submit is more than likely async.
submit({
id: selected!,
...settings
}).then(() => {
yeap yeap
okay, i tried to use then but discord makes stream 30 fps
so its most propably doing it after then()
I retested with .then() and it doesn't work. Seems like discord doing screenres+30fps stuff after then() call. So I think that we should use timeout :c
how the actual fuck does this even work if submit is just a call to venmic and not to actually start screensharing what
submit calls VENMIC?????
**ScreenSharePicker.tsx: **Lines 107-117
submit={async v => {
didSubmit = true;
if (v.audioSource && v.audioSource !== "None") {
if (v.audioSource === "Entire System") {
await VesktopNative.virtmic.startSystem(v.workaround);
} else {
await VesktopNative.virtmic.start([v.audioSource], v.workaround);
}
}
resolve(v);
}}
I THOUGHT IT WAS A CALLBACK TO THE SCREENSHAREHANDLER FUNCTION
so did i
its all handled natively.
what the actual fuck.
how the actual fuck.
i wrote half this file lmao
time to see if theres a flux event then
gl
STREAM_START
whats a flux event
So in theory we can just apply constraints after flux event done? I do not know how to work with them
Could you please try manually bumping venmic in the package.json to v3.3.4 after this workflow finished?
@humble mortar In case it is the issue I was suspecting, it should be fixed with v3.3.4, if not, I'd like to debug this further (would probably require input from you as I can't reprod)
yeah im up for it
journal
Apr 10 19:40:07 bakery rtkit-daemon[982]: Supervising 7 threads of 5 processes of 1 users.
Apr 10 19:40:07 bakery rtkit-daemon[982]: Supervising 7 threads of 5 processes of 1 users.
Apr 10 19:40:11 bakery rtkit-daemon[982]: Supervising 7 threads of 5 processes of 1 users.
Apr 10 19:40:11 bakery rtkit-daemon[982]: Supervising 7 threads of 5 processes of 1 users.
Apr 10 19:40:28 bakery kded6[1308]: Registering ":1.89/StatusNotifierItem" to system tray
Apr 10 19:40:28 bakery xdg-desktop-portal-kde[1424]: qt.qml.typeresolution.cycle: Cyclic dependency detected between "qrc:/qt/qml/org/kde/desktop/private/TextFieldContextMenu.qml" and "qrc:/qt/qml/org/kde/desktop/MenuItem.qml"
Apr 10 19:40:36 bakery kded6[1308]: Service ":1.89" unregistered
Apr 10 19:40:43 bakery kded6[1308]: Registering ":1.91/StatusNotifierItem" to system tray
Apr 10 19:40:43 bakery kded6[1308]: Service ":1.91" unregistered
Apr 10 19:40:43 bakery kded6[1308]: Registering ":1.93/StatusNotifierItem" to system tray
Apr 10 19:40:59 bakery kded6[1308]: Service ":1.93" unregistered
Apr 10 19:40:59 bakery wireplumber[1177]: <WpAsyncEventHook:0x5999f423d780> failed: <WpSiStandardLink:0x5999f45c7770> link failed: 1 of 1 PipeWire links failed to activate```
something is broken
let me try the latest stable of vesktop
latest stable works
ill try latest git build without the patches from #489
latest git works
let me try #489 one more time
and now it works
my system is haunted
oop
Hi! I have tested but is not worked.
lms5413@LM ~/vesktop (main)> vesktop
[arRPC > ipc] listening at /run/user/1000/discord-ipc-0
[arRPC > websocket] listening on 6463
[arRPC > process] started
[Vencord] Installed React Developer Tools
(node:224965) ExtensionLoadWarning: Warnings loading extension at /home/lms5413/.config/vesktop/ExtensionCache/fmkadmapgofadopljbjfkapdkoienihi:
Manifest version 2 is deprecated, and support will be removed in 2024. See https://developer.chrome.com/docs/extensions/develop/migrate/mv2-depre...
this doesnt
update
hmm
im streaming at 480p15 rn but i started the stream at 1080p60
omg so close to merge checklist completion
btw
if anything breaks on xorg only
we could pull this into the renderer process
and use it to define 2 sets of behavior
@vernal lintel not styled yet but i think this is an improvement
and then ill make content type a dropdown
getting better
this looks like type gore
unstyled button 
why don't you use a proper button component
well anyways i made a little animation and im proud of it
i dont do frontend
that looks sick
look in src/webpack/common/components.ts
noted
classic vesktop L
im not gonna go digging around in vencord source code rn
for vencord
yeah i mean itll still work here too lol
yeah ofc
i just dont wanna dig for it
**components.ts: **Lines 25-50
export let Forms = {} as {
FormTitle: t.FormTitle,
FormSection: t.FormSection,
FormDivider: t.FormDivider,
FormText: t.FormText,
};
export let Card: t.Card;
export let Button: t.Button;
export let Switch: t.Switch;
export let Tooltip: t.Tooltip;
export let TextInput: t.TextInput;
export let TextArea: t.TextArea;
export let Text: t.Text;
export let Select: t.Select;
export let SearchableSelect: t.SearchableSelect;
export let Slider: t.Slider;
export let ButtonLooks: t.ButtonLooks;
export let Popout: t.Popout;
export let Dialog: t.Dialog;
export let TabBar: any;
export let Paginator: t.Paginator;
export let ScrollerThin: t.ScrollerThin;
export let Clickable: t.Clickable;
export let Avatar: t.Avatar;
export let FocusLock: t.FocusLock;
sorry but why not just use a tooltip
seems way better imo
when you hover it shows the preview in tooltip
Hmm, for some reason the bound metadata has no name: (add_global) new metadata: 35 (name: "").
This seems odd. I'll have to see what could cause this
I think this might be related to your pipewire version, in versions < 0.3.68 the bound_props event does not exist and I'll have no way to access the metadata name, I'll see how pw-dump solves that or simply fall back to checking the key existence
Okay I found the issue, I'll push a fix when I'm in uni
Can you still reproduce the issue with Venmic 3.3.5? (You'll have to manually bump)
okay that's fair
Huh, it's randomly working perfectly rn
Even the stream
Like, without the mouse issue
insteresting thing that i had mouse issue only when i changed stream to window
But if i start with window that it's okay
Interesting yeah
I'm trying to find reproduction steps btw
It works fine for now, somehow
I updated to the latest versoin and it regressed
huh
Or maybe I just got lucky again
But did I get lucky twice?
Because I tested the previous version multiple times
now it jumps between 50 and 5
huh
Framerate edging lmao
LMAO
odddddddd
that's graph how our development goes
true
hahahahahaha
You're trying to fix the screenshare right?
Is the screenshare issue a chromium one or is it actually discords code that's bad some where?
discord mostly
originally it was because it was limited to 2.5mbps bitrate + contenthint = text
so resolution settings weren't applying
and it was 5fps
and it could barely hold that because of how low the bitrate was
that's all fixed mostly
OKAY
It works at commit 83d4164eacd79718ff97a7257ff0fead4cdf92e2
I'm going to move forward by one commit
Until it breaks
okay
Describe the bug
when i uninstall vesktop the screenshare portal stays active on normal discord
To Reproduce
uninstall and screenshare still installed
Expected behavior
normal discord sharing window
Screenshots
Desktop (please complete the following information):
- OS/Distro: Linux
- Desktop Environment (linux only): kde
broken with commit 006f4e96dea21fee018e446e84a19a92ddabbd1e
Let me rollback and double check
what changed
iirc hardware encoding may not work with nvidia gpus
I've used this in the past: https://github.com/elFarto/nvidia-vaapi-driver
iirc hardware encoding may not work with nvidia gpus
I've used this in the past: elFarto/nvidia-vaapi-driver
From Readme:
Hardware decoding only, encoding is not supported.
Yep, I've retested https://github.com/Vencord/Vesktop/commit/83d4164eacd79718ff97a7257ff0fead4cdf92e2 and it works
iirc hardware encoding may not work with nvidia gpus
I've used this in the past: elFarto/nvidia-vaapi-driver
From Readme:
Hardware decoding only, encoding is not supported.
Oh, I missed that, thanks :D
Although it does, when FULLSCREENED, rarely drop to 1 fps for a second
See the three central dips? those
Some logs from the working commit
65573.71e278ef7f5773eb2c7b.js:1 [UnifiedConnection(stream)] updateVideoQuality: {
"remoteSinkWantsPixelCount": 0,
"encodingVideoMinBitRate": 500000,
"encodingVideoMaxBitRate": 8000000,
"encodingVideoBitRate": 600000,
"streamParameters": [
{
"type": "video",
"active": true,
"rid": "100",
"ssrc": 3432307713,
"rtxSsrc": 3493598720,
"quality": 100,
"maxBitrate": 8000000,
"maxFrameRate": 60,
"maxResolution": {
"type": "fixed",
"width": 1920,
"height": 1080
}
}
]
}
65573.71e278ef7f5773eb2c7b.js:1 [UnifiedConnection(stream)] BaseWebRTCConnection.updateVideoQuality: resolutionScaleFactor: undefined, encodingVideoWidth: undefined, remoteSinkWantsMaxFramerate: undefined, encodingVideoMaxBitRate: 8000000, localWant: 100```
I'll now check the broke one
what code changed lol
So, it's Fixed setting stream settings while changing window
@scarlet kestrel https://github.com/Vencord/venmic/issues/17 could you test this yet? Would like to see if the issue is resolved already and if not some debug logs would be greatly appreciated
I can see if the logs are any different on the broken commits to nail it further
I could test the individual code changes if you want
I'll test with it in an hour or two too
oki
did i broke something? ๐
I didn't fully reread it all
but one thing I will note
make sure you have prettier and eslint active lol
the project has pretty strict styling rules
okay, sorry for this
Okay, testing out the Object.assign change
Okay, a couple of dips at the start, good otherwise
Even in fullscreen
Now i'll add the second change
Even screen is good for you?
it is screen streaming
window even better bc no mouse issue
huh
Now it's working just fine?
It's so inconsistent... maybe it's some race condition with some timeout? I have no idea
window, streaming browser which playing yt video
Let me retest latest
Yeah, window is still better but that's not related to us
yeap
last commit is working except for some drops at the start
and changing windows works and it applies settings
Well, I guess it might really be some sort of race
might help
give it 1 second
see what happens
instead of 100ms
@broken solstice test that rq
1 sec just for test, in future i think we need to setup something like 200-500. We need to find proper number
One error that's quite consistent that sometimes seems correlated is a spotify integration error btw
Okay, testing without spotify integration real quic
Couple of drops but it stabilises
Okay, time to increase the timeout
I hate clangd ๐ญ
looks similar, at this point it might just be internet related tbh
Well, still, the only contentious points for me are probably just upstream
BUT, the UX is still not there imho
SHOW PREVIEW shouldn't be all caps and it doesn't have enough contrast between text and container. the container itself also doesn't use the correct color. What's the change button for?
Show Preview would be better
I'm trying to think about which color specifically as, abstrantion wise, it is meant to be a button
Hmmm
At this point wouldn't it be better to have something similar to the Microphone Workaround thing
Because it's still a toggle, not a button
That would also fix the contrast issue and be consistent
At the same time, i'm still unsure about having it at all but, I guess, if we have to have it might as well make it similar to the Microphone Workaround
02b2859 Bump tar from 6.2.0 to 6.2.1 - dependabot[bot]
Bumps tar from 6.2.0 to 6.2.1.
Commits
bef7b1e 6.2.1
fe8cd57 prevent extraction in excessively deep subfolders
fe7ebfd remove security.md
See full diff in compare view
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-secur...
its not done at all yet
lol
i havent had time to sit down and finish the css
im just making something functional
and the change button will cancel and reopen the portal so you can pick a new window
incase you misclicked and dont want to close it and reclick screenshare
fixed changing of discord quality description
but i will install eslint and prettier before committing
also i think then setTimeout() we need to set inside another if (conn) checkiing. Because otherwise it will try to set conn variables even if there are no conn
like this
okay i believe that i didn't broke anything
If someone could retest quality description changing when changing settings for already created stream it would be great
And also if someone have any recommendations to code it also be great
Hi! I have an idea, I don't know where to post it. The idea is to maybe have a variable for OS is using a dark or a light theme OR even better, an option to apply a chosen light color when the OS changes to a light mode and a chosen dark color scheme when the os changes to a dark color. And make it optional.
I believe this can be realized as some type of plugin
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.
If you change your mind, just re-open this PR and I'll resolve any conflicts on it.
You could probably hook into the discord system theme logic and override the applied theme
yeah I think that's plugin territory
Ah thanks
yeah
ok
if you NEED the nitro colour scheme below
this only allows default light
if you want to switch between a dark and a light nitro theme that's not a thing

ah
i am aware
i was just about to say
or switch between two custom vencord themes
but it should be really easy to add
i sent a code sample recently to detect changes to the theme
if u need it as js: ```js
matchMedia("(prefers-color-scheme:dark)").matches
iirc hardware encoding may not work with nvidia gpus
I've used this in the past: elFarto/nvidia-vaapi-driver
From Readme:
Hardware decoding only, encoding is not supported.
Oh, I missed that, thanks :D
according to the archwiki, it should be - [ ] supported by the normal nvidia driver/nvidia-utils
bros name is elFarto
iirc hardware encoding may not work with nvidia gpus
I've used this in the past: elFarto/nvidia-vaapi-driver
From Readme:
Hardware decoding only, encoding is not supported.
Oh, I missed that, thanks :D
according to the archwiki, it should be supported by the normal nvidia driver/nvidia-util...
iirc hardware encoding may not work with nvidia gpus
I've used this in the past: elFarto/nvidia-vaapi-driver
From Readme:
Hardware decoding only, encoding is not supported.
Oh, I missed that, thanks :D
according to the archwiki, it should be supported by the normal nvidia driv...
to answer the โ
it's a joke about people saying bro a lot
my bad bro
bro posted a comic 
bro used skull emoji in a message
yeah but its the skyrim one so its ok
lmao
it works for me i believe
this alone
makes it feel like 10x higher quality
Hey. I have tested and its worked!
how could we go about using this
it may remove the need for the timeout
I believe this Resolves #191 and #463
Also for now I have bug when you change stream to window then system portal picker shows twice
Can anyone reproduce?
it should happen anytime you stream a window in general
ive been meaning to look into it
@vernal lintel 2 things
- what the hell is your sleep schedule
- i cannot for the life of me find anything on tooltips in order to learn how to use them
i know
it forces me to add children and text to it and i dont know how they work
i tried looking it up
there is N O T H I N G
wdym looking it up
like googling? ๐ญ
ofc u won't find anything, it's discords component
e x a c t l y
search for tooltip in vencord source code
what the hell is the children field
many examples
what
it automatically adds these
wait WAIT
im really dumb
do i just fucking
put the image
in children
omfg
but not like that
i just let vscode create the missing fields
well no actually
and then was gonna go off of it
text is the tooltip value
yeah
children is what's gonna have the tooltip
so you put the show tooltip in children and the preview img in text
like i said look vencord code for examples
i was looking just now ๐ญ
Hey. I have tested and its worked! Bug is solved.
Awesome! I'll close this issue and push some more refactors and hopefully soon merge this into Vesktop :)
huh
changes to what
vesktop?
or do u mean you worked on venmic code from multiple computers and didn't pull
this
Problem was that I moved a lot of files
And I was afraid it's gonna be really fucked
Sure sure, I was just putting out my ideas ๐
Make it move like the DVD thingy
but only 5% of the time
Also, what's your theme? Looks nice :D
Another idea: Can you move the Change button left to Go Live?
midnight with "vencord" color scheme i think
thanks :D
i may put it to the left of go live and cancel on the FAR left of that bar
maybe
yeah that sounds good
i am struggling way too much to style this fuckin tooltip
Most of the time I click outside of the modal to cancel anyways
really?
interesting
And that's really noticable
i dont have any noticeable change with vesktop with this theme
because stock isn't too smooth either xd
TRUE
then again im on my laptop rn so
its not exactly the most perfect experience anyways
you'd think itd be smoother
yep
themes add a lot of lag
i just use https://vencord.dev/plugins/ClientTheme
no lag
i have that plugin on iirc
Can I prvent the text-color change?
Just bgs
how the hell do I style a tooltip
What I don't understand is why themes lag
Like, they're (usually) not a thousandth of the css discord already has
Is it all the [class*=] selectors piling up after all?
Context menu on desktop:
Context menu on vesktop:
(literally unusable i want paste on the bottom)
Is the Context Menu also different on Web?
it pops up browser's native context menu in browser for me
no
it doesn't matter if it uses attr selectors or not
I honestly don't see how that can be true, checking substrings has to be more expensive than classes
It is a more complex operation, and also less common and therefore probably less optimized
im losing it
i cannot style this fucker
@vernal lintel waaaaah im stupid and cant figure it out waaah solve all my problems for me (pls dont i just cannot get any styles to apply to the tooltip component itself and i dont want to be annoying by complaining or pinging you but im confuseddd)
yes but both have an incredible throughput making the difference irrelevant
why do u need to style it
xy problem
I'd actually love to see a benchmark on like a couple million classes
surely someone has done that before
what actually matters are poorly written compound selectors
one single line of poorly written css can cause 100% cpu usage
a poorly written compound selector (wildcards, :has, etc) can cause exponential complexity
like walking the entire body for every node in the body
yeah ik
something like
body:has(.foo) *
fair
although i thought it was obvious
you shouldnt have text that you hover over
that is just black and default font size
and stop using vanilla html elements
oh my fucking god
use discord components
im an idiot
THE SHOW PREVIEW TEXT IS LITERALLY IN A DIV IM AN IDIOT
I CANNOT BRAIN
i shall try
im just
used to html
so first habit is
"there's an element for this!!!"
Is someone here using pipewire < 0.3.68?
yeah
thats > 0.3.68
xd
im in a mood rn lmao
haha
gimme like 20 minutes and ill be normal

god said i should make an operating system
LMAO
I'm about to finish a fairly big update and it'll have a lot of logic changes, just want to make sure everything still works properly before bumping in vesktop
nice
are you terry
possibly
watch out for glowies
for whaT
feds
ignoring the show preview button
the change button looks so nice now !!!
why didnt i use discord's own components earlier lmao
gib preview
Sexy
im just gonna make change
call close
and then call openscreensharepicker
so it closes and restarts
๐
can't you access that from within the screenshare picker?
openscreensharepicker is ususally called from the main process
ah
holy fuck my second monitors color profile is so fucked
The reply isn't even yellow there
yes
yes i can
it hooks the main process's openscreensharepicker call
change works!!!!
nice :D
augh tooltip positioning is weird
