#πŸ‘Ύ-core-development

1 messages Β· Page 159 of 1

austere talon
charred monolithBOT
charred monolithBOT
rare shale
#

should we make the theme link thingy only accept http/https?

#

i feel like this is too much trolling
Vencord.Settings.themeLinks = ["data:text/css;base64,KnthbmltYXRpb246ciA0bXMgaW5maW5pdGUgbGluZWFyfUBrZXlmcmFtZXMgcnt0b3t0cmFuc2Zvcm06cm90YXRlKDF0dXJuKX19"]

#

there's no reason to be able to run this shit since quickcss exists

austere talon
#

what's the point

#

doesn't hurt anyone if u put data urls there :p

austere talon
#

i hate anti malware detections so much they're so stupid

#

ill try to do some changes to the installer to reduce detections

odd heath
#

yop very dumb

#

just sign the app or smth trolley

austere talon
#

no that doesn't solve them

austere talon
grave mangoBOT
austere talon
#

im gonna try to xor encrypt the filenames and see if that fixes

odd heath
#

lmao

austere talon
grave mangoBOT
austere talon
#

so i might change it to where instead of checking each folder it instead just reads the AppData Local folder and then filters for Discord paths

odd heath
#

like to me it looks like that line is saying if a || a

lime stone
#

it's more like if a() || a()

#

that may not seem important but functions can have side effects

#

maybe go is so broken you need to check twice

odd heath
#

lmao

austere talon
#

no

#

im just dumb lmao

#

i think they used to be two different conditions but during a refactor at some point the second condition become obsolete

#

and i didnt fully remove it

lime stone
#

i was wondering if it was some kind of multithreading shenanigans and this fixed some dumb bug...

odd heath
charred monolithBOT
charred monolithBOT
mortal fractal
#

electron 28 drops win7 support so why even bother

austere talon
#

what?

#

we might as well support win7 if it's as simple as reducing go version

#

we can drop support once discord drops support

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

odd heath
mortal fractal
#

its been ~4 days since 28 was pushed to canary

dapper tiger
#

cyn

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
austere talon
#

@urban wraith hilarious timing, someone complained about it the same time u opened the pr

#

unless that person was why u prd

urban wraith
#

pure coincidence rolf I tried to reinstall after updating my discord and realised it was using the wrong path

austere talon
#

silly

#

it was just brainfart from me

#

i looked at that if else during refactor and was like ohh both parts are the same

#

so i removed it

#

turns out, they were not in fact the same

charred monolithBOT
charred monolithBOT
charred monolithBOT
austere talon
#

@topaz thistle is glibc always such a fucking pain in the ass

#

i love compiling on my system and then it doesn't run on other people's systems so i have to build in ancient ubuntu container instead

#

could they not have made glibc backwards compatible

topaz thistle
#

That's also fucked

#

Not always and not perfect

austere talon
#

there was a stupid linux bug in the vencord installer

#

but i didn't want to make a new version just for the small bug

#

so. i just replaced the release binary with my own build

#

FUCK UBUNTU STOP SHIPPING ANCIENT SOFTWARE

topaz thistle
#

I don't get how people run such ancient glibc though

austere talon
#

ubuntutards need to become normal and switch to fedora

austere talon
topaz thistle
#

Ubuntu needs to be deleted

#

It's fucking garbage

austere talon
#

yes

topaz thistle
#

A developers worst nightmare is straight up ubuntu

austere talon
#

are you on your pc rn

topaz thistle
#

I can't tell you how much trouble I've had with that shit

topaz thistle
austere talon
#

mmm

topaz thistle
#

Have to get ready for exam

austere talon
#

kinda need to fix library but I wanna sleep now

#

well ig it will wait

austere talon
topaz thistle
#

Thanks!!!

#

I've had such a bad fucking sleep again

#

I woke up at least 5 times

charred monolithBOT
topaz thistle
#

I can take a look after the exam (will probably be done at 12:30 or something)

charred monolithBOT
#

Describe the bug
When screensharing on Vesktop the audio from the stream also has my microphone audio in it, this makes people in the call hear you double when watching your stream.

This kind of negates the entire use of audio screen-share as you either have to be muted and then not de audible by people not watching your stream or people have to mute your stream which defeats the purpose entirely.

To Reproduce
Steps to reproduce the behavior:

  1. Open Vesktop
  2. Join any vc
    ...
charred monolithBOT
charred monolithBOT
topaz thistle
# charred monolith

@austere talon can we have a bot that instantly closes issues that contain Screen-Share and audio with a notice to transfer it to venmic?

topaz thistle
# charred monolith

Also - do I have permission to close issues like this?

I'd actually prefer not to transfer them but close them instead so that they will reopen in Venmic with the required data

charred monolithBOT
charred monolithBOT
crude hearth
#

I had deranged experience with rust extension while working on oracle

#

oracle linux has decade old glibc version

crude hearth
#

snap is awful yes but what else if horrible

rugged spire
#

i just remembered

#

i am about to accidentally implement global shortcuts on wayland

#

please do NOT actually use my plugin I am building to do so though

charred monolithBOT
charred monolithBOT
#

✍️ Bug Description

When screensharing on Vesktop the audio from the stream also has my microphone audio in it, this makes people in the call hear you double when watching your stream.

This kind of negates the entire use of audio screen-share as you either have to be muted and then not de audible by people not watching your stream or people have to mute your stream which defeats the purpose entirely.

πŸ” Steps to reproduce

Steps to reproduce the behavior:

  1. Open Vesktop
  2. Join ...
limber skiff
#

can we make vencord devbuild inject command use cli

charred monolithBOT
#

I installed Electron 29 (beta) And added the flags from https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/gpu/vaapi.md#verify-driver Just to test

app.commandLine.appendSwitch("enable-features", "VaapiVideoDecodeLinuxGL,VaapiVideoEncoder");
app.commandLine.appendSwitch("use-gl", "angle");
app.commandLine.appendSwitch("use-angle", "gl");
app.commandLine.appendSwitch("ozone-platform", "x11");

I can see in nvtop that its encoding with gpu...

#

When I change it to vencord-screen-share it does seem to eliminate the problem, I forgot to change it on system level, my bad.

I think that fixes it? I'll keep checking but it should be good now, only annoying thing having to keep changing my system input to vencord-screen-share every restart but I'll manage.

Thank you for your quick and efficient help, enjoy your day!

I forgot to change it on system level, my bad

You shouldn't do that

I'll keep checking but it should be go...

#

I just wanted to check if it is the same issue as in #15.

Where, as far as I could reproduce - discord would always ignore whatever device I select as my microphone in the discord settings.
Discord would only use the microphone I had configured on system level regardless of what I selected in discord itself - Thus I figured it has to be a chromium bug on ubuntu and not an issue from our side

#

When I change it to vencord-screen-share it does seem to eliminate the problem, I forgot to change it on system level, my bad.
I think that fixes it? I'll keep checking but it should be good now, only annoying thing having to keep changing my system input to vencord-screen-share every restart but I'll manage.
Thank you for your quick and efficient help, enjoy your day!

I forgot to change it on system level, my bad

You shouldn't do that

I'll keep checking...

#

When I change it to vencord-screen-share it does seem to eliminate the problem, I forgot to change it on system level, my bad.
I think that fixes it? I'll keep checking but it should be good now, only annoying thing having to keep changing my system input to vencord-screen-share every restart but I'll manage.
Thank you for your quick and efficient help, enjoy your day!

I forgot to change it on system level, my bad

You shouldn't do that

I'll kee...

#

This could have been introduced with an upgrade from the (old) vencord-desktop package, 0.4.4-3 -> 0.4.4-4 (Pacman package on Manjaro). That would seem to line up with when people in my VC's started to notice the sound (For me, I installed that on Jan 3rd, just about 3 weeks ago). I'm more than willing to do the legwork to manually figure out what commit may have introduced this bug, but I have no idea what commits were a part of that package - 0.4.4 is not even on the releases page. Given th...

charred monolithBOT
charred monolithBOT
rugged spire
charred monolithBOT
#

This could have been introduced with an upgrade from the (old) vencord-desktop package, 0.4.4-3 -> 0.4.4-4 (Pacman package on Manjaro). That would seem to line up with when people in my VC's started to notice the sound (For me, I installed that on Jan 3rd, just about 3 weeks ago). I'm more than willing to do the legwork to manually figure out what commit may have introduced this bug, but I have no idea what commits were a part of that package - 0.4.4 is not even on the releases page. Given ...

charred monolithBOT
austere talon
#

lol how did u even find that issue

charred monolithBOT
topaz thistle
austere talon
#

horror

topaz thistle
#

@austere talon I can build a workaround for this, which would be an additional function that would require me to know which node.id the screenshare node has, can you get that info from the JS side?

#

If I were to add it, you could simply call that function and venmic would manually fix the created links by electron

#

Could be an additional toggle in the audio tab

austere talon
#

yes

#

wait why does the js side need the node id

#

the part calling venmic would be native

topaz thistle
#

Because I need to know which node is the screenshare

austere talon
#

well you can check that from main

#

not from js

#

ohhh

#

okay i misunderstood

#

i assumed by js side you meant the renderer

#

but you mean js in general

#

yeah okay

topaz thistle
#

Yes

austere talon
#

it should be really easy

topaz thistle
#

If thats possible I can make a workaround

#

Which is really ugly

grave mangoBOT
topaz thistle
#

But fuck pipewire on Debian I guess

austere talon
#

getAppMetrics is what u need

topaz thistle
#

Does that also return the screenshare node?

austere talon
#

it should

#

but im not actually fully sure

#

just experiment with it

topaz thistle
topaz thistle
charred monolithBOT
#

Thanks for that. After reviewing that commit to the AUR package, probably rather unlikely that it was that given the very minimal changes. I noticed that on my end, Electron25 was updated from 25.9.4 to 25.9.6 in the late December timeframe. It has since again updated to some 28 version due to the manjaro meta package updating. I've already downgraded the system package, is there a way to force vesktop to use a specific Electron version? I tried --electron-version=25.9.4, but that didn't do it.

charred monolithBOT
#

Yes you can, contributions are always Welcome! Out of the ones listed here, a lot of them are already being done, but you could contribute any of the last 3

Or take a look at the open issues and see if there's any bug or feature request you would like to fix or implement

topaz thistle
#

Actually I'm not even sure if this will work

#

Because I think the redirection has to happen when the node is created not once it's already created

#

Got an idea

#

not the fanciest but should work πŸ˜΅β€πŸ’«

#

@austere talon since the issue is #15 I'm tempted to call the workaround flag burgerking_foot_lettuce

austere talon
#

horror

#

do it

topaz thistle
#

@austere talon Can I rely on the application binary to contain vencord?

austere talon
#

uh

#

wdym by that

topaz thistle
#

I need to figure out if the node is the screenshare audio node, before I can know it from JS Side

austere talon
#

the binary name should be vesktop, but i wouldn't rely on it if possible

charred monolithBOT
austere talon
#

just try logging all nodes and see if you can find it by name or smth?

topaz thistle
#

So I'd go with a combination of application.process.binary contains vencord and media.name being RecordStream

austere talon
#

binary would be vesktop most likely, but like i said i wouldn't rely on it

topaz thistle
#

node name would be "chromium input"

#

I guess with regards to the time frame we're working with it'd be ok if I just take the next node that's a RecordStream and Chrome related

#

Ah

#

Wait I can figure it out based on the PID

#

Because I can know that up front

topaz thistle
austere talon
#

that's better

#

also hate to be that guy but didn't u want it to work with browsers as well

#

you'd be throwing it out of the window

topaz thistle
#

no

#

will work with those as well

lime stone
charred monolithBOT
#

Describe the bug
I have noticed a CPU usage increase happening over time as I am streaming.

It should also be mentioned that I can feel the effect this bug has on my system, where if I am playing a game I notice the performance gradually degrading - until I restart my stream and the issue is resolved.

To Reproduce
Steps to reproduce the behavior:

  1. Start streaming.
  2. Wait a couple of hours.
  3. Monitor CPU, and see a massive increase in the electron process.

**Expected ...

topaz thistle
#

Can someone please invent break for ifs

#

I'm so close to using goto rn

charred monolithBOT
austere talon
topaz thistle
#

yeah I re-organized it properly

austere talon
#

but goto is fine as well tbh, idk why people think it's evil

topaz thistle
#

I also don't have a big problem with goto as long as it's not excessive

austere talon
#

vencord uses goto in some places blobcatcozy

topaz thistle
#

based

austere talon
#

well js doesn't have goto , but smth very similar

charred monolithBOT
austere talon
#

/run ```js
console.log("before block")

block: {
console.log("inside block")
break block
console.log("unreachable")
}

console.log("after block")

vital lionBOT
#

Here is your js(18.15.0) output @austere talon

before block
inside block
after block
topaz thistle
#

okay

#

I'm not sure if I want to keep the name

#

Imagine someone reads the code lmao

austere talon
topaz thistle
#

but I'll save the target as lettuce_target

#

because that is shorter than workaround_target

topaz thistle
austere talon
#

i don't think I've seen anyone use blocks like that tho

#

i like using things that most developers think is evil

#

i also like using var to hoist variables out of try catch / if else

topaz thistle
austere talon
topaz thistle
#

always take the most sane approeach to reach your goal

#

if that happens to be using goto

#

fine

charred monolithBOT
austere talon
#

i prefer the var version

charred monolithBOT
topaz thistle
#

was not aware that that works

austere talon
#

var isn't block scoped so yeah

grave mangoBOT
austere talon
#

you can do this as well

topaz thistle
#

insane

#

holy fuck

#

that's really useful

lime stone
#

i remember people being annoyed when i did so

lime stone
austere talon
#

well you can either choose var or let

#

both are mutable

#

there's a const method but it's uuuuugly

lime stone
#

exceptions are weird

#

in rust this is cleaner :3

austere talon
#

this would be solved if js had blocks as expressions

#
const thing = try {
   getThing()
} catch {
   return
}
#

many other languages allow this

lime stone
#

i'm not a fan of blocks as expressions...

austere talon
#

need this in js

lime stone
#

why the husk...

#

it makes code harder to read

austere talon
#

everything being an expression is hot

topaz thistle
#

Just remove try catch

austere talon
#

there's a reason tons of languages are adding it

topaz thistle
#

it's really ugly

austere talon
#

horror

lime stone
topaz thistle
#

expected<> πŸš€

limber skiff
#

I honestly love kotlin var thing = that ?: return

lime stone
#

with rust you can just do ?

#
let thing = dangerous_function()?;
limber skiff
#

true

dusky sonnet
lime stone
#

πŸ˜‹

limber skiff
#

I forgot you can do that with option

#

both are very good

lime stone
#

(do not critisise the approstophy, its' required to make it readable)

dusky sonnet
#

Result<(),Box<dyn std::Error>>

#

Did I do that right

lime stone
dusky sonnet
#

If you actually do it like that lmao

topaz thistle
#

Alright, moment of truth, now I need to make Vesktop use my local venmic build and check if shit explods

lime stone
#

with exceptions it's nice you can yeet stuff without any boilerplate*

* apart from writing a whole exception class

dusky sonnet
#

Anyway nah you gotta match every single dangerous call

#

Back to the point of block expressions lol

topaz thistle
#

@austere talon how can I make the package.json use my local package?

#

for venmic

austere talon
#

pnpm add ../package

#

or just replace the files in node modules folder trolley

topaz thistle
#

alr

#

thanks

austere talon
#

/run ```js
throw "pipe bomb"

vital lionBOT
#

@austere talon I only received js(18.15.0) error output


/piston/jobs/f003871b-af2d-47da-8f86-ce7cf0a3a7a2/file0.code:1
throw "pipe bomb"
^
pipe bomb
(Use `​node --trace-uncaught ...`​ to show where the exception was thrown)

Node.js v18.15.0
austere talon
#

Uncaught pipe bomb

lime stone
#

/run

struct ExceptionsMyBeloved : std::exception {
    const char *msg;
    const char *what() const noexcept override { return msg; }
};

int main() {
    throw ExceptionsMyBeloved{"pipe bomb"};
}
vital lionBOT
#

@lime stone I received c++(10.2.0) compile errors

file0.code.cpp:1:45: error: expected class-name before '{' token
    1 | struct ExceptionsMyBeloved : std::exception {
      |                                             ^
file0.code.cpp:3:17: error: 'const char* ExceptionsMyBeloved::what() const' marked 'override', but does not override
    3 |     const char *what() const noexcept override { return msg; }
      |                 ^~~~
chmod: cannot access 'a.out': No such file or directory
/piston/packages/gcc/10.2.0/run: line 6: ./a.out: No such file or directory
lime stone
#

c++ never works the first time

topaz thistle
#

@austere talon can I quickly get the vencord PID from devtools?

topaz thistle
austere talon
#

you can only get the pid from main process

topaz thistle
#

alright

austere talon
#

the best way to eval code in main is to add --inspect-brk or whatever it was to launch flags and attach a debugger

topaz thistle
#

okay yeah I'm just gonna run a new build then xD

austere talon
#

see the comment here

#

and copy paste that file into vesktop repo

#

pretty easy to set up actually

#

you can configure launch flags by copying .env.example to .env and editing it

#

could even create a vscode launch task that automatically launches vesktop with a debugger attached

topaz thistle
#

Alright artificially reproduced the bug

#

Time to test the workaround trolley

#

So that should work?

#

Do I need another pnpm install after?

charred monolithBOT
topaz thistle
#

@austere talon help

austere talon
#

add link: in front

#

and pnpm i

topaz thistle
#

like that?

austere talon
#

also make sure you have the same structure as the bundled package

topaz thistle
austere talon
#

it uses the prebuild folder

topaz thistle
#

uhh

#

ah

#

alright let me check

austere talon
#

might be easier to just manually replace the file in the node modules folder

topaz thistle
#

probably but I think I got it

#

nvm

#

will replace lmao

#

moment of truth

#

fuck

#

Nvm

#

Didn't even call it lmao

#

I have it exactly the same as easyeffects

#

yet shit refuses to work

#

identifying the node also works correctly

charred monolithBOT
topaz thistle
#

Lets goooo

charred monolithBOT
dapper crest
topaz thistle
#

qpwgraph

charred monolithBOT
charred monolithBOT
#

Discord Account

ezid

What happens when the bug or crash occurs?

The ShowMeYourName plugin doesn't update the name in the " is typing..." field at the bottom of Discord.
This is especially confusing with the option 'Username only' as you'll see names there that you wouldn't recognise from the chat.

([Initially reported in the support channel.](#πŸ₯-vencord-support-πŸ₯ message))

What is the expected behaviour?

When a u...

topaz thistle
#

@austere talon will you punch me for this

austere talon
#

uh

#

depends

topaz thistle
#

the data param's type isn't quite simple

#

so I'd rather use it like this

#

or do you have any suggestions?

#

Will make a PR shortly just review there I guess

#

@austere talon how can I add a Checkbo in AudioSourcePickerLinux?

austere talon
#

for what

topaz thistle
#

The workaround

#

What's the checkbox component called?

austere talon
#

why even add a checkbox, is that necessary

#

anyway check Forms

topaz thistle
#

Found it

topaz thistle
charred monolithBOT
topaz thistle
#

@austere talon does this look ok?

#

Text should probably rather be: "Workaround for issue that causes the microphone to be shared instead of selected audio"

austere talon
#

don't say debian

topaz thistle
#

Just Workaround?

austere talon
#

do you think mint or ubuntu users know what debian is

topaz thistle
#

True

#

I shall call it Burger King Footlettuce

austere talon
#

explain like the user is a 10yo (they are)

topaz thistle
#

Number 15 Workaround

#

So just:

Workaround

  • Workaround for issue that causes the microphone to be shared instead of selected audio

?

#

Or "Force Audio"?

dapper crest
#

"Linux fix:
Stops microphone audio shared in screeshare. Only use if you have problems"

topaz thistle
#

But it's not a Linux fix xd

#

The whole audio is already a Linux fix lmao

charred monolithBOT
dapper crest
#

It's a Debian fix. But they don't know it's Debian, but saying Linux helps narrow down the people who do use it

charred monolithBOT
#
[Vencord/venmic] New tag created: v3.3.0
austere talon
topaz thistle
#

It will make them even more confused

dapper crest
#

Ah

#

Maybe do some checks to see if it's Debian based and apply automatically

austere talon
# topaz thistle

"

Microphone Workaround

Work around an issue that causes the microphone to be shared instead of the correct audio. Only enable if you're experiencing this issue.
"

#

smth like that

topaz thistle
#

c&p

topaz thistle
#

looks good to me

#

Will open PR

#

Will have to wait for this motherfucker to finish before merging though

charred monolithBOT
#
[Vencord/venmic] New tag created: v3.3.1
#

EasyEffects now reads the custom PW_KEY_TARGET_OBJECT set by the user to the stream node and tries to not touch the stream if it is not recording from the same input device EasyEffects is using. There are some limitations. For example the stream has to be started when EasyEffects is already running. And if EasyEffects is started when the stream is already there there is a chance that we do not know yet which input device we have to use by the time pipewire tells us about the stream prop...

topaz thistle
#

Nice

austere talon
#

pog good work

austere talon
#

hmm

#

idk if i would

#

could the pid change?

#

probably best to not

#

considering this is a very rare call it's whatever

#

i just meant use variable instead of calling it twice in a row

topaz thistle
#

Alr

#

Will update tomorrow

#

Should we have a quick vesktop update after #360?

dapper tiger
#

@austere talon give me something to do for vencord or vesktop

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
charred monolithBOT
austere talon
#

surely this is old enouigh right

charred monolithBOT
#

Describe the bug
An error popup dialog is raised when updating vencord has failed due to GitHub being unreachable.
After closing the popup, another appears, this keeps going on and on.
This also happens on startup when the user has auto updating vencord enabled.
Meanwhile, nothing appears in the console.

To Reproduce
Steps to reproduce the behavior:

  1. Somehow make GitHub unreachable
  2. Go to Updater in settings, and click "Check for Updates"
  3. When pending updates a...
charred monolithBOT
charred monolithBOT
#

Describe the bug
On Windows, I'm unable to disable the unread notification count seen in taskbar.
image

I thought turning off this setting in Vesktop would work but it doesn't appear to do what I think it should do (i.e. disable unread notification count in taskbar). I can't really tell what this toggle actually does otherwise and so either this is a bug or this issue is a feature request.
![...

charred monolithBOT
topaz thistle
#

@austere talon it would be awesome if venmic supported more complex inclusion/exclusion logic

I thought about having the mode be either include or exclude but both modes support boolean expressions - that way we wouldn't need mixed include/exclude as well

#

The only problem is how to represent the logic expressions

#

I thought about writing my own boolean expression parser for this that supports a minimal amount of operations, in this case ==, !=, &&, ||, contains, startsWith, endsWith maybe?

#

So we could for example have the current system audio logic where everything except Vesktop is included be:

props["application.process.id"] != "1337"

#

And if someone wanted to include Firefox but not a specific instance for example it could be:

props["node.name"] == "Firefox" && props["application.process.id"] != "<some-pid>"

#

I don't think we have the need for complicated expressions like that right now but it could be useful in the future maybe

charred monolithBOT
#
[Vencord/venmic] New tag created: v3.3.2
charred monolithBOT
charred monolithBOT
topaz thistle
livid heath
#

yop

topaz thistle
#

How is that related xd

livid heath
topaz thistle
#

Huh interesting, but that would not be suitable for this use-case, as I'd need it as a library not as a cli tool

#

And I don't really need a JSON parser

#

A really simple expression parser is more than enough

livid heath
#

you'd have to decide on the syntax, write a parser and implement the filtering
jq can already handle that for you

#

iirc there are some jq bindings

topaz thistle
#

I've already decided on the Syntax and writing the parser is quite simple I think

#

And as I've already mentioned I don't need JSON parsing, iirc jq filtering only works on JSON

#

Then I'd have to serialize the data to JSON, run jq on it, deserialize it

#

and in the worst case even spawn a subprocess to Interact with jq

#

I don't see how that is any better than writing an expression parser

livid heath
#

Β―_(ツ)_/Β―

charred monolithBOT
#

Describe the bug
When I run Vesktop on Windows 7 x64, it says "Entey Point Not Found"
I am not sure how about windows 8/8.1.

To Reproduce
Steps to reproduce the behavior:

  1. Installed Vesktop as Administrator and All users
  2. When I clicked finish
  3. Error shows

Expected behavior
It should literally run fine, but it throws an error differently than I expected.

Screenshots
![Screenshot 2024-01-25 203101](https://github.com/Vencord/Vesktop/assets/127497974/9c939...

topaz thistle
#

Windows 7 husk

#

Saucer would actually support Windows 7 :)

turbid hatch
#

@austere talon can we kill supporting win7

#

theres not much point in trying to anymore

#

the OS has been dead for almost 10 years

charred monolithBOT
charred monolithBOT
#

Since the official client opted for a goofy loading GIF, I've thought that having Tux as the splash GIF seemed logical for Linux specific clients.

The splash is now checking navigator.platform to see if the user is running on Linux or not, and if they are, Tux is displayed as the mascot instead of Shiggy.

If other contributors think that this addition is just too much, a system for splash customization could be put in place.

Previews:
![image](https://github.com/Vencord/Vesktop/...

charred monolithBOT
charred monolithBOT
#

tried to build this to test with a dev install and I am getting the following build errors.

Build failed
Build failed with 3 errors:
../channeltabs/Vencord/src/plugins/channelTabs/components/BookmarkContainer.tsx:22:87: ERROR: No matching export in "src/webpack/common/index.ts" for import "ReactDnd"
../channeltabs/Vencord/src/plugins/channelTabs/components/ChannelTab.tsx:22:70: ERROR: No matching export in "src/webpack/common/index.ts" for import "ReactDnd"
../channeltabs/Vencord/...
charred monolithBOT
#

@zany130 you didn't add the webpack additions then as it works fine for me.

how do I do that? Thanks for helping. Sorry if this was answered somewhere else I tried to do a search through this discussion

Look at the files changed all the way at the bottom will be the webpack changes add those to the file path it gives as the name or the directory explorer on the left side.

charred monolithBOT
charred monolithBOT
spark pivot
#

im making a remix plugin but i can not for the life of me find a working and maintained ui image editing library

#

so im gonna make my own

#

wish me luck

austere talon
#

wasn't there alr one

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

spark pivot
#

any other one i found had no docs and were deprecated

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
rugged spire
charred monolithBOT
charred monolithBOT
#

Content

"use strict";var Vencord=(()=>{var Ww=Object.create;var pa=Object.defineProperty;var qw=Object.getOwnPropertyDescriptor;var Kw=Object.getOwnPropertyNames;var Yw=Object.getPrototypeOf,Zw=Object.prototype.hasOwnProperty;var Gi=(e=>typeof require<"u"?require:typeof Proxy(typeof require(e&&(t=e(e=0)),t);var Mh=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ye=(e,t)=>{for(var o in t)pa(e,o,{get:t[o],enumerable:!0})},Ph=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function...

charred monolithBOT
charred monolithBOT
#

I have a problem where desktop audio lower down while someone is talking, I guess is discord default but i can't seem to find it on the settings.

The other things is auto voice gain, since there are two option Voice Activity, Push to talk, and voice activity has a fixed threshold while on the official desktop is automatic.

charred monolithBOT
charred monolithBOT
charred monolithBOT
surreal fiber
#

I thought I'd ask here instead of support.. is it known that if you open rtc debug on vesktop you can't close it, it closes the main vesktop window instead

charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
charred monolithBOT
charred monolithBOT
spark pivot
#

anyway

#

ignore my todo list lol

#

hmm i might be able to spoof the remix tag

#

that would be quite silly

spark pivot
#

sadge

jagged cloak
#

ghar

#

typical discord

spark pivot
#

discord actually making their api do something WHAT

verbal pumice
#

could be spreading misinformation tho

spark pivot
#
            "filename": "1192174392839520346remix-1706336625969.png",
            "flags": 4,

flags 4 is remix, there is remix in the filename but idk

verbal pumice
#

prefix

#

also are you sure its flag 4 and not 1 << 4

spark pivot
#

docs say its 1 >> 2

verbal pumice
#

okay

spark pivot
#

yeah sadly doesnt work

charred monolithBOT
charred monolithBOT
still wasp
#

I assume patching out the chill zone would be bannable?

jagged cloak
#

prob would just return 429 or something

still wasp
#

Hmmm

charred monolithBOT
charred monolithBOT
still wasp
#

Holy shit i am unreasonably proud of this plugin

lime stone
#

a lot of plugins do that ig

#

also the name probably isn't appropriate for vencord

odd heath
#

Just replace the "fuck" with "no" and it's fine

charred monolithBOT
#

I think you could use IPC events instead of the interval to handle users joining/switching channels

How it is at the moment works; given it's never necessary to update this more than once a second. I agree, where could I find some example how to do/use this? I have 0 experience with this.

As per looks I think it looks kinda bad as the red color doesn't fit very well and it overlaps other things

I also agree. It's less than ideal to move elements around; there is very limited space...

charred monolithBOT
#

Some more suggestions:

For the looks maybe use a clock icon and then put the time in the tooltip if it's okay to be only visible on hover

For the IPC implementation just look into other plugins. For example
https://github.com/Vendicated/Vencord/blob/620c127b58e94ce4bf0b78d7e55fbce8e4f376e2/src/plugins/vcNarrator/index.tsx#L160-L188

The Plugin name doesn't need to be camelCase (also see other plugins for reference)

still wasp
#

Just showing it :p

austere talon
#

you can definitely send proper remix tag

spark pivot
#

With the files field

austere talon
#

no

#

show code

spark pivot
#

Not on computer rn I’ll go look soon

charred monolithBOT
#

For the looks maybe use a clock icon and then put the time in the tooltip if it's okay to be only visible on hover

<img width="165" alt="image" src="https://github.com/Vendicated/Vencord/assets/49804267/9e2e7fa2-ebf0-48d0-bf94-9c4e59cfb397"> (mouse is hovering on the user's clock icon)

Also implemented with a toggle switch setting (because I like not having to move my mouse to see the times). The default setting is with the icon + tooltip.

spark pivot
# austere talon show code
export function sendRemix(blob: Blob) {
    const body = new FormData();
    body.append("payload_json", JSON.stringify({
        content: "",
        attachments: [{
            id: 0,
            filename: "remix.png",
            flags: 4
        }]
    }));

    body.append("files[0]", blob, "remix.png");

    RestAPI.post({
        url: `/channels/${Util.getCurrentChannel().id}/messages`,
        body,
    });
}
austere talon
#

wtf

#

look at voice message plugin

spark pivot
#

i see

charred monolithBOT
spark pivot
# austere talon look at voice message plugin
export function sendRemix(blob: Blob) {
    const currentChannelId = Util.getCurrentChannel().id;
    const reply = PendingReplyStore.getPendingReply(currentChannelId);
    if (reply) FluxDispatcher.dispatch({ type: "DELETE_PENDING_REPLY", currentChannelId });

    const upload = new CloudUtils.CloudUpload({
        file: new File([blob], "remix.png", { type: "image/png" }),
        isClip: false,
        isThumbnail: false,
        platform: 1
    }, currentChannelId, false, 0);

    upload.on("complete", () => {
        console.log(upload);
        RestAPI.post({
            url: `/channels/${currentChannelId}/messages`,
            body: {
                channel_id: currentChannelId,
                content: "",
                nonce: SnowflakeUtils.fromTimestamp(Date.now()),
                sticker_ids: [],
                type: 0,
                attachments: [{
                    id: "0",
                    filename: upload.filename,
                    uploaded_filename: upload.uploadedFilename,
                    size: blob.size,
                    flags: 1 << 2,
                }],
                message_reference: reply ? MessageActions.getSendMessageOptionsForReply(reply)?.messageReference : null,
            },
        });
    });
    upload.on("error", () => showToast("Failed to upload remix", Toasts.Type.FAILURE));

    upload.upload();
}

the image sends but no remix tag

austere talon
#

message type 0 is likely wrong

spark pivot
#

what should it be then

charred monolithBOT
odd heath
#

0 seems correct

spark pivot
#

there isn't any other ones

odd heath
#

but it should be 19 for the reply case

spark pivot
#

replys still work on 0 lol

odd heath
#

oh

spark pivot
#

anyway it looks like discord strips out any attachment flags when you send them

#

so i don't think it's possible sadly

lime stone
#

what does mobile send?

#

it's surely possible if mobile can do it

spark pivot
#

true

#

mobile just sends everything normal except the attachment has flag 4

#

actually the CloudUpload platform param might do something

#

well it just breaks if i change it so thats a no

austere talon
#

discord type

#

is it connected to a webpack export

#

you'd usually put it in webpack commons

#

see how types work there

charred monolithBOT
topaz thistle
austere talon
#

patch-2

rancid dragon
#

Engineer's pronouns on discord are just the word "Engineer"

#

at least based on the id used in the author field

austere talon
#

webpack

#

search for the class in sources and you'll find the module

#

you can findByProps it

crude hearth
median rapids
#

@crude hearth why are you not the latest and greatest Windows 11

crude hearth
#

Windows 10 better

median rapids
#

norp

austere talon
#

that's react devtools

#

yes

charred monolithBOT
#

Describe the bug
Transparency is not working in latest Vesktop on Linux. This was working in previous versions of Vesktop via a workaround, however the option added in https://github.com/Vendicated/Vencord/commit/988435714e8b1de6e7e95885cbb5222113fb039c and https://github.com/Vencord/Vesktop/commit/b636b65e55235fde9092843a7d3f8dae02d9d720 does not seem to be working

To Reproduce

  1. Launch Vesktop
  2. Attempt to enable window transparency using Vencord settings
  3. Relaunch
  4. Ob...
shy veldt
#

its is_remix: true

#

then it will work

#

:3

spark pivot
#

wait whar

#

why does docs say its a flag then

shy veldt
#

is_remix applies the flag

spark pivot
#

silly discord

#

it didnt work lol

shy veldt
spark pivot
#

oh nvm just had to be in all caps

shy veldt
#

what?? 😟

spark pivot
#

IS_REMIX: true

shy veldt
#

worked fine for meℒ️

spark pivot
#

lowercase didnt work for me lol

shy veldt
#

issue of skill :3

spark pivot
#

clearly it is a skill issue then

#

i prob reloaded before it could finish building

#

anyway it work

spark pivot
shy veldt
#

while it doesnt have that you need to send is_remix, is_clip, is_thumbnail

#

it will.

spark pivot
#

ok time to make this look good and pr

#

oh yeah how can i load the color picker cause it doesnt find the module until you load the color picker somewhere else

shy veldt
spark pivot
#

yeah but it finds nothing if you havent loaded the color picker yet

#

I did something similar for the file upload button cause i stole that from some plugin

charred monolithBOT
shy veldt
#

i reloaded discord and it found it fine

spark pivot
#

whar

#

i reload discord and test the find and it says nothing

#

then i go to settings page and it works

shy veldt
#

well idk

spark pivot
crude hearth
#

dzuriwa

shy veldt
crude hearth
#

hello

shy veldt
#

are discords devtools lazy loaded or nah

#

since I'm pretty sure that their devtools have color picker

spark pivot
#

idk

#

never really used discord devtools

shy veldt
crude hearth
#

have you tried wndows 10

shy veldt
crude hearth
#

soon

charred monolithBOT
shy veldt
charred monolithBOT
charred monolithBOT
spark pivot
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

It occurred to me previously but I only realised it was an issue now. UserState does not dispatch updates for users in a guild that has not been opened (literally viewed on the client side). This plays into the issue I was trying to fix with https://github.com/Vendicated/Vencord/pull/2132/commits/5ebc2c8819b3fa489ce5e3bcaaa8083d00d65d33. I guess on the first open of a guild discord client bulk updates all users in the guide and then updates them when something actually happens. Essentially; i...

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
charred monolithBOT
charred monolithBOT
#

some opinionated styling improvements, perfectly understandable if you dont like them

  • adjusted border-radius for elements to be more consistent based on their size
    • 16px for large background panels
    • 12px for buttons, plugin cards, faq cards, etc.
    • 8px for smaller elements
  • reworked download page tabs
  • fixed inconsistent vertical/horizontal padding on faqs
  • removed 1px borders on some elements (doesn't look very clean), made them 2px borders on buttons
median rapids
charred monolithBOT
charred monolithBOT
spark pivot
mortal fractal
#

i feel bad for whoever has to review this pr

spark pivot
median rapids
jagged cloak
#

horror

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
#

VOICE_STATE_UPDATES does not dispatch updates for users in a guild that has not been opened (literally viewed on the client side)

There is the case where a user joins/moves channel that hasn't been opened and they end up without a time (in the userJoinTimes) and therefor no visual timer.

I can't reproduce this issue with the state of my PR. Can you give me more detailed instructions on how to reproduce it?
I have two Discord accounts open. With the Vencord one I'm just at the fri...

charred monolithBOT
#

I can't reproduce this issue with the state of my PR. Can you give me more detailed instructions on how to reproduce it? I have two Discord accounts open. With the Vencord one I'm just at the friends tab and when I log the voice state updates and search for my user ID I can clearly see the update looking fine on initial load (without oldChannelId) and when switching channels

After restarting Discord directly into DM's (somewhere other than a guild); I had added a console debug in the I...

#

On a side note I am not entirely satisfied with the location of this injection.

There is a case when a user joins/moves channel in a guild that without manually triggering a re-render (by clicking on the user or switch to another guild and back) the state will not update. Essentially showing an old timer that is still ticking from the last call the user was in or no timer in the case they had just joined a call. This was the location of injection on another modified discord platform.

fringe basalt
#

probably because of guild subscriptions

#

you'd have to dispatch gateway opcode 14 or 37 to subscribe to their events

verbal pumice
fringe basalt
#

the client has a function called updateGuildSubscriptions() i think?

#

you could use that one

#

i can get on pc in a moment and see

charred monolithBOT
fringe basalt
#

from a quick look at the caller, you should be able to dispatch GUILD_SUBSCRIPTIONS_FLUSH instead

#

tho im not exactly sure what params do you need to subscribe to the members voice events

#

that'd be something for dolfies xd

#

nvm figured it out

#

you only need typing: true

#

so something like this should workjs FluxDispatcher.dispatch({type: "GUILD_SUBSCRIPTIONS_FLUSH", subscriptions: {"guild id": {typing: true}}})

#

don't send a separate event for every guild

#

you can combine them all into the subscriptions field

limber skiff
#

you could also patch the gateway somewhere to log everything you send, and check what events are sent when you open a large server

#

that way you can mimic exactly what discord does

charred monolithBOT
fringe basalt
#

also this is exactly what discord does

limber skiff
#

true true

#

oh really

fringe basalt
#

yeah except discord subscribes to more events

limber skiff
#

why is it typing true πŸ€”

fringe basalt
#

but there's no need to do that in the background for that person's plugin

#

so just typing is fine

fringe basalt
#

ye

#

op 36 is request channel statuses

#

it's why you see a CHANNEL_STATUSES response

#

(aka irrelevant here)

#

ye

#

you don't need to subscribe to other events, just typing is enough for voice updates

austere talon
#

pretty sure this is a terrible idea

#

the inbox does this and if you're in a lot of guilds it gets you rate limited from the gateway and disconnects you

fringe basalt
#

inbox subscribes to individual channels

#

this doesn't do that

#

also the client is already subscribed to non-big guilds like that by default

austere talon
# austere talon the inbox does this and if you're in a lot of guilds it gets you rate limited fr...
GitHub

By default, when you open the Unread tab in the Inbox, discord spams a ton of GUILD_SUBSCRIPTIONS events to the gateway. If you're in a lot of servers, this can cause the gateway client to get ...

#

anyway it's still a bad idea i think

fringe basalt
#

but why

austere talon
#

personally im in a lot of very large guilds

#

the performance impact of subbing to all of those is probably bad xd

#

there's a reason discord doesn't do it by default

#

what's this for anyway

fringe basalt
#

a vc timer plugin i think

austere talon
#

why do you need to be subbed to all guilds for that

#

so you can show timers for random guilds you don't normally use?

fringe basalt
#

they're trying to track the times since client start i believe yeah

austere talon
#

i would just forget about these, you're not gonna have an accurate time anyway if people are already in vc when you open the client

#

just only use the guilds discord is already subbed to

#

but also why do u even care how long random people were in vc for

crude hearth
#

opening inbox tab still causes death on my discord

#

oh nvm now its running smoothly

#

increadible discord

hazy scaffold
#

fantaqistue

#

is ecxcellent

austere talon
#

will see what else can be added and then maybe make a release

#

but i also really wanna get auto updating ready sooon

#

cause its inconvenient otherwise

turbid hatch
#

@austere talon & other flatpakkers, has your arRPC experience been okay

austere talon
#

i don't use the flatpak

#

anyway that guy was in support earlier

turbid hatch
#

yes but when you tried it did you have issues with rpc if you ever played

turbid hatch
#

ah

#

i see

turbid hatch
#

shrug

#

i commented on the issue

#

one of the assumptions is really bad about multiple clients

#

but besides that it seems like an okay doc change

austere talon
#

they probably just have skill issue

#

i will try in a bit

median rapids
#

for guilds you aren't subscribed to, discord will periodically sync you the voice states

#

through the PASSIVE_UPDATE_V1 event

#

so you don't have to do this

median rapids
charred monolithBOT
#

The issue is not present at all in Fedora with the official Discord client, my viewers reported speeds and quality on par with the Windows counterpart. As far as I know the big difference is that Discord on Fedora uses Wayland to X11 video bridge under the hood.

I think that's because the official client can do GPU acceleration, at least it has an option for it in its settings.

austere talon
#

duh why do you think i marked that comment as spam

#

use your brain

charred monolithBOT
charred monolithBOT
austere talon
#

i dont have the issue

#

the only time my vesktop suspends is when my pc suspends but thats to be expected, also happens with stock discord

charred monolithBOT
charred monolithBOT
austere talon
vale idol
#

interesting thing, i found an extension that's able to disable CSP in firefox, which i thought was basically impossible because of extension restrictions

#

maybe a variant of this could be used to make the vencord firefox addon work again?

austere talon
#

vencord does exactly that

vale idol
#

oh huh

grave mangoBOT
# austere talon https://github.com/Vendicated/Vencord/blob/main/browser/background.js#L11-L32

**background.js: **Lines 11-32

chrome.webRequest.onHeadersReceived.addListener(
    ({ responseHeaders, type, url }) => {
        if (!responseHeaders) return;

        if (type === "main_frame") {
            // In main frame requests, the CSP needs to be removed to enable fetching of custom css
            // as desired by the user
            removeFirst(responseHeaders, h => h.name.toLowerCase() === "content-security-policy");
        } else if (type === "stylesheet" && url.startsWith("https://raw.githubusercontent.com/")) {
            // Most users will load css from GitHub, but GitHub doesn't set the correct content type,
            // so we fix it here
            removeFirst(responseHeaders, h => h.name.toLowerCase() === "content-type");
            responseHeaders.push({
                name: "Content-Type",
                value: "text/css"
            });
        }
        return { responseHeaders };
    },
    { urls: ["https://raw.githubusercontent.com/*", "*://*.discord.com/*"], types: ["main_frame", "stylesheet"] },
    ["blocking", "responseHeaders"]
);
vale idol
#

i see

#

seems like for the Last FM Scrobble presence to work it needs to unblock the endpoint URL for it as well

austere talon
#

it disables csp on all websites = shit security

vale idol
#

i know

#

its terrible security practice

austere talon
vale idol
#

i was hoping to find an extension that lets me modify it in a more fine-grained way

austere talon
#

so cant be on store

#

no cause its against mozilla rules

#

if u find an extension that does it on the store, its just mozilla being dum dum

vale idol
#

LMFAO

austere talon
#

they didnt notice it in vencord for like a year then suddenly flagged it

austere talon
#

ya not allowed

#

use firefox nightly and just install vencord

#

or use a firefox fork that enables installing extensions

#

mozilla kinda cringe

vale idol
#

yea..

austere talon
#

"we care about freedom and decentralisation" until you try to install an extension that doesnt follow their expectactions

vale idol
#

theres a problem specifically with the LastFMRichPresence plugin which fails due to CSP because it reaches out to ws.audioscrobbler.com

#

i could just like, use vesktop but apparently the webview for it cant use bitmap fonts so it uses the vector version which looks awful

austere talon
#

qhar

#

chromium issue

vale idol
#

lmao yup guessed so

#

extremely rare firefox W i guess

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

lime stone
median rapids
lime stone
#

when i suspend i often get logged out though

charred monolithBOT
livid heath
vale idol
#

(no, being not chromium doesn't count)

livid heath
#

colored font rendering (albeit for a short time)

#

better dev tools

vale idol
#

better dev tools are kind of subjective, firefox doesnt have lighthouse and stuff for example

austere talon
#

i hate firefox devtools so much

#

horrible

#

cannot use that shit

olive aurora
#

ff devtools is only good at css

austere talon
olive aurora
#

lighthouse u can run anywhere though

livid heath
#

we'll not talk about that

austere talon
#

you shouldnt use lighthouse in devtools cause its inconsistent

vale idol
austere talon
#

guh i need to fix accessibility

#

oh its just one single colour

livid heath
#

i cba to ever add aria-* stuff

olive aurora
#

this one color renders the page completely unsightreadable

#

aria is v simple but you don't need it most of the time

#

if you use html properly

vale idol
#

react-aria would like to have a word

#

me when the button has a morbillion aria tags

olive aurora
#

horror

austere talon
#

imo thats enough contrast

#

devtools disagrees

olive aurora
#

prob not accounting the font size/weight

austere talon
#

oh im 0.02 off

#

it needs to be 3 i have 2.98

#

thats why it looks fine, cause it is fine (nearly)

olive aurora
#

trolled

charred monolithBOT