#๐พ-core-development
1 messages ยท Page 139 of 1
but you don't really need to take all my advices
(?<==)\i=>{let{children.{20,100}decorationGridItem
false
nookies hates automata based regex
ok decor now uses the new find, grouped patches, and has improved patches now
we love backtracking
i can probably do some destructuring that you implemented
lemme take a look
this totally could couldn't it
actually no it can't bc of the tostring thing
but i should move that to use the byCode filter
yep
Discord Account
troopical
What happens when the bug or crash occurs?
The bug completely looping crashes discord and vencord (both dev and normal build) on desktop versions (web version works fine).
The bug is caused by developer tools in advanced (not sure if this is a dev vencord only bug but once the bug happens, it's applied to discord unpatched, patched, etc.)
;
export const { persist }: typeof import("zustand/middleware") = findLazy(m => m.persist && persistFilter(m.persist));
is the destructuring nested
i assume i cant destructure this mf
yea
no point switching it at all then tbh
HOWEVER
i can update that find i think
yes you can just use findByCode
no i can't
you can
unless it changed
findComponentByCode I mean
there's this annoying ass bug where my states just reset upon switching channels
i've tried getting the previous value and what not it just doesn't work
hello typings my old friend
this is fine right
wait could i destructure the type.. no right
i don't think i can
can
i love how the fucking avatar decoration plugin is pushing the boundaries of the current vencord apis
they're pretty different in how they function

i think findComponentByCodeLazy doesn't work in this case
i need to use this w/o using lazycomponent
easy enough
it was not easy enough
NoopComponent fucks it up
i should just leave this as the proxylazy tbh
findLazy*
ah ok so this fucks up this whole file
im just gonna leave this one untouched
@lime stone do i put the reply ping before everyone or after
since all the options are at the left wouldn't having it at the left be better for UX?
wait, this is editing?
yes
eh this looks good enough to me
you can't really change pings after an edit though, so what's the point
you definitely can
Hi, so I am currently using BetterDiscord, but considering swapping to Vencord since it supports TypeScript and their TOS isn't wack. ๐
Is there any API documentation? I went looking, but didn't find any.
@lime stone :)
why doesn't the ping toggle appear without a <@!>
also you can't really
it won't do anything
i forgot to add a condition to render the bar if there are no mentions but it is a reply edit
it won't actually notify the user when you edit with a ping
so i can't see a use-case
it wont notify them, but the highlight is toggled
an option is better than no option imo
not atm
best we have is https://github.com/Vendicated/Vencord/blob/main/CONTRIBUTING.md and looking through how other plugins use stuff
sounds like a valid reason
although in that case i prefer making another option to enable this feature

are we waiting on anything for my svg
I try to screenshare on Hyprland, but everytime I do it gets on a infinite loading and I get this error on the terminal
`[68597:1122/113233.029446:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[68557:1122/113244.469201:ERROR:egl_dmabuf.cc(608)] Failed to record frame: Error creating EGLImage - EGL_BAD_MATCH
[68557:1122/113244.469235:ERROR:shared_screencast_stream.cc(940)] Dropping DMA-BUF modifier: 144115206334822913 and trying to reneg...
why does it
yes we're waiting for you to shut up
stop asking so much
@austere talon I was thinking of doing something to make webpack common components Noop for default to avoid react crashes, what do you think?
kinda like I default to it here
im not sure i like that
errorboundaries solve it too
is this
import lightStyleFixes from "./lightModeFixes.css?managed";
...
start() {
enableStyle(lightStyleFixes);
...
},
stop() {
disableStyle(lightStyleFixes);
...
}
what Ven meant by "make your css managed"
yes
css you import is always active even if your plugin isn't enabled
if you make changes that affect discord itself you need to make it managed
just like that
thanks
LightClientTheme is ready for review again
honestly I really like light theme like this
lightreader
will do
...
Edit QuickCSS
</Button>
{Vencord.PlainSettings.plugins.ClientTheme.enabled && (
<Button
onClick={() => openModalLazy(async () => modalProps => {
return <PluginModal {...modalProps} plugin={Vencord.Plugins.plugins.ClientTheme} onRestartNeeded={() => { }} />;
})}
size={Button.Sizes.SMALL}
>
Edit ClientTheme
</Button>
)}
is there anything absolutely wrong about the way I implemented this?
you can use Vencord.Settings instead of PlainSettings
{!unFixableContrast && <Button onClick={() => swapTheme(theme)}>Swap Theme</Button>}
function swapTheme(currentTheme: string) {
yeah that looks better
also check the props for button component, I think you can make Reset Theme Color be red
you should make the red text stand out more somehow
hexToLightness
contrast is a diff function since hsl isnt normalised: ```ts
function relLuminance(colour: number) {
const [r, g, b] = unpackRgb(colour)
.map((x) => x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4);
return r * 0.2126 + g * 0.7152 + b * 0.0722;
};
tbh it may not i need to re-test
well I might remove it
cuz ven prefers to use ErrorBoundary instead
The code i'm running these finds through does not like proxies so
i'll give it another try i guess
it works
but it's kinda like if it ain't broke don't fix it?
why wouldnt the second work though
@limber skiff what are your thoughts on just making the error section use the default discord background color to ensure it always has good contrast?
The problem with the current system is that having a variable background color screws with our ability to pick something that contrasts well
it does work, i thought it was causing issues but it was the other bit of code in that
i added destructuring this at the same time and confused the two
if it doesnt look bad sure lol
ah
but still i'm not sure if there's a point to switching to this new find in this case
not really other than it being more compact
yeah but he only searches it to extract some module ids lmao
doesn't even use
yeah
oh lmao that's right
arent you using the stickerpickerpreview component?
not as a component
damn that doesnt look good lol
okay it doesnt matter then
I'm keeping it like that until we find a better solution, looks better than an warning for poor text contrast with poor contrast itself
kk
actually do the opposite theme background color
so white in that case
maybe that will look better
I'm thinking of how to adding the color picker here
//@ts-explode
maybe a section like the "Color" one under the theme picker?
maybe we can even add it to Preview themes?
users are stupid
๐ค
the eol eslint setting seems to be fucked in the vesktop source?
i would attach an image but its literally just an error at the end of every line
looks fine
this bg color contrasts better with black
i said that func does it better
what
this
wait im dumb
ohh
if you want to find good values for all the warnings using that function then go ahead and review it in
current system of looking at luminance works fine enough and I don't understand relLuminance well enough to get it implemented proper myself
maybe transparent dark bg to make it always fit the theme while letting the text be readable, idk
maybe (i dont know anything abt design
99 commits
fear.
I am happy with how I have it looking currently
try this (just git apply mrw.diff)
also maybe good to let contrastWarning = false bc typescript is crying
how do you make diff files
git diff
no.
issue on your end
Button on the right of the sync button
I can prob style the picker to be round lol
@olive aurora
Here is that diff with better values for warnings
You can add this to my pr, I wouldn't want to take credit
its set to lf in prettierrc.yaml and all the line ends are carriage return
you can just add it no problem
id have to open a PR
if you really want you can commit it with Co-authored-by: rini <rini@rinici.de> at the last line
moving from #๐ฅ-vencord-support-๐ฅ; does electron not have any way to use WMI apis? vesktop starting wmic every 4 seconds to get all programs just looks silly and sus https://i.imgur.com/aLSyxzY.png
Quick Question, will Vencord Support @var like BetterDiscord is planning on implementing?
probably
vencord supports pretty much everything else BD does theme-wise, wouldnt make sense to suddenly not
Ok cool, thanks
a real issue I have with it is that this is spamming my Process Hacker logs while I'm figuring out some other issue
Last commit was pretty big, as it added another generator
I switched to generating light mode fixing css because:
- Overriding white-500 screwed with font color rendering
- Manually writing overwrites for every single usage of white-500 for a background is not fun. (the generator makes 80 lines of css)
- Manually written overrides will break, and a major part of the plugin is to generate css so it doesn't break when discord changes/adds/removes stuff.
Also in this commit, lots of ...
What would be better words for "Swap Theme" here that would better imply the switch from light to dark/vise versa
depending on current theme, change the wording
if you're in light theme: "Change To Dark Theme"
if you're in dark theme: "Change To Light Theme"
also how does it handle the nitro themes
Nitro themes are just skins on top of dark/light mode
yeah i just checked i guess they're called "colours"
I will add an error when there is an active nitro theme
meh don't
WMI uses COM
just a short note that they aren't supported
you said it yourself there are people that use kt without gradients
is that an answer?
the entire world is aware
we'd have to write a bunch of VC++ or what have you
COM is the worst thing ever created
.NET has simple apis for WMI where they deal with COM shit and you just write an sql query
its just a warning, won't stop the people who use both
@topaz thistle have you worked with COM on windows before
Its stuck saying there is a "Changes requested 1 review requesting changes" when I have already resolved everything
aight
this whole time I have been trying to find a store that would give me the info I need but I don't know how and have been guessing ever since I saw fakenitro didn't have my answer
actually you could probably do it in plain C++ compiled with MSVC
but it's still nightmarish
I don't think you need to write a native module or something. just make that .net program send stuff with IPC to Vesktop every 4 seconds, run the program once
bad
but better
then we have to run a background process
wait
findStore("UserSettingsProtoStore").settings.appearance
what info
we might as well just make it a native
if a nitro theme is enabled
oh
I will have to check when I'm home
but I'm almost sure there is a proper place to know it without accessing the proto
maybe something with Gradient
const nitroThemeEnabled = findStore("UserSettingsProtoStore").settings.appearance.clientThemeSettings.backgroundGradientPresetId !== undefined
so not this
search for appearance.clientThemeSettings on the devtools
see where it's used
to maybe find the store for it
which part of the devtools?
only those?
yup
maybe search for backgroundGradientPresetId instead
that's gonna get you a lot of results though
I'll help you when I get home if you still need
I will just reverse engineer the selector for gradient themes to see what it uses
IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?=!1===\i.\i\.hasRelevantUnread\(this\.record\))/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 493334
Match: /(?<=getChannel\(\i\);return null!=(\i))(?=.{0,150}?hasRelevantUnread\(\i\))/
ShowHiddenChannels (had no effect):
ID: 120817
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i\.record)\))/
ShowHiddenChannels (had no effect):
ID: 268760
Match: /(?<=if\(null==(\i))(?=.{0,160}?hasRelevantUnread\(\i\))/g
ShowHiddenChannels (had no effect):
ID: 283848
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i)\))/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
TypingIndicator (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
None
None
IgnoreActivities (had no effect):
ID: 52028
Match: /LISTENING.+?}\),(?<=(\i)\.push.+?)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?=!1===\i.\i\.hasRelevantUnread\(this\.record\))/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=renderLevel:(\i\(this,\i\)\?\i\.Show:\i\.WouldShowIfUncollapsed).+?renderLevel:).+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 319839
Match: /(?<=activeJoinedRelevantThreads.+?renderLevel:.+?,threadIds:\i\(this.record.+?renderLevel:)(\i)\..+?(?=,)/
ShowHiddenChannels (had no effect):
ID: 493334
Match: /(?<=getChannel\(\i\);return null!=(\i))(?=.{0,150}?hasRelevantUnread\(\i\))/
ShowHiddenChannels (had no effect):
ID: 120817
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i\.record)\))/
ShowHiddenChannels (had no effect):
ID: 268760
Match: /(?<=if\(null==(\i))(?=.{0,160}?hasRelevantUnread\(\i\))/g
ShowHiddenChannels (had no effect):
ID: 283848
Match: /(?=&&\i\.\i\.hasRelevantUnread\((\i)\))/
PinDMs (had no effect):
ID: 631316
Match: /===\i\.DMS&&0/
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
Experiments (found no module):
ID: -
Match: ("showNewSearch")
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
ShowHiddenChannels (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
TypingIndicator (found no module):
ID: -
Match: .UNREAD_HIGHLIGHT
None
None
That took me far too long
const NitroThemeStore = findStoreLazy("ClientThemesBackgroundStore");
function ThemeSettings() {
...
const nitroTheme = useStateFromStores([NitroThemeStore], () => NitroThemeStore.gradientPreset);
const nitroThemeEnabled = nitroTheme !== undefined;
Minified react is hell
imagine hideattachments but for things that aren't attachments
some moments i could really do with that
elaborate
like
it hides the content of the message just like how hideattachments does it
but for the text content
probs easily possible by slightly modifying hideattachments
just the content, so the name and avatar are still there and such
there are some messages i just don't want to see
and this envisioned plugin could solve that
who's new find?
also this error sucks @limber skiff
who is new find? idk you tell me
I don't grammar with apostrophes well
not intuitive to me
there made it better
for some reason that find fails the first time you open a profile, but works the second time
seems like a race condition with lazy loaded code
I was thinking of it as
ven's = property/owned by ven
who's new find = who owns that find
๐ ๐ ๐
changing the find fixed it?
oh that's what handleModuleNotFound is for lol
yes it prints this error
im changing it again rn
xd
lol
I wish we could do something like null | undefined | any for find returns
that way people are forced to ?. or something when using them
horror
i made consoleshortcuts put all webpack commons on the window
to avoid errors like "trying to access property banana of undefined"
pog
omg this is a thing
vendetta has a plugin for that too i think
didn't notice vencord does too
@austere talon what is there to remove from webpack? like the outdated stuff
mapMangled...?
kinda still needed i think
well actually
let me see
i think no xd
rewriting everything that uses it rn
lol this is broken and noone noticed
noone uses that
i just removed it
lmao
that module doesnt even have openUntrustedLink anymore
wait
the permission viewer context menu doesnt show
oh its in a diff place
ok seems to all be working
i killed mapMangledModule
๐ญ it deserved more
next we should remove nested webpack search
**spellCheck.tsx: **Line 78
ContextMenu.close();
guhh have to update this now (cause it's now ContextMenuApi.closeContextMenu)
๐
i mean its not a big deal
its just slightly bad UX
but doesnt cause any actual issues
okay lets just see how bad it breaks if i just remove nested search
wait it all just works
yeah all works
but im scared theres smth i dont catch rn but causes issues later xd
way faster than before
I wonder if thatโs the actual accuracy or floating point precision errors
Probably the latter
Cause javascript
?
Notice how thereโs like 10 digits of decimals
me yesterday:
i just removed it with no changes
and everything seems to work
but please test for me as well
i turned on all plugins
and it all seems to work
omg this is horror
WHY IS EVERYONE IDLE
STOP BEING IDLE
@limber skiff you will finish your reporter change that tests webpack finds

WE NEED IT RN
horror what are u doing
I wanna understand it
its pretty simple
no way it didnt break anything
i can explain it to you if you want
sure
actually what exactly are you trying to understand
actually no need to
I'm almost finished reading the file
I'll tell if you if I have questions
love this though
should test if that still is needed
legit when i wrote the code it kept crashing with cryptic errors and that try catch fixed it
HOW DOES THAT CODE FAIL
doesnt happen anymore
I noticed something
we can probably remove it
what
we can probably remove the if statement cause it works even for arrows
neat
yweah works
what's the 0, for
is this what makes the patched code searcheable on the sources
no but it gives them a good name
these names
otherwise they would be called VM23604 lol
hi vee question
oh
actually yeah it doesnt seem to search unnamed files
how does this not make it appear on the search though
i could find this out from the source code so sorry for asking; those modules you provide in the vencord api do you find them or do you like retrieve them the moment they're added to the webpack chunk
ahhh
that makes sense
most stuff in Common is retrieved the moment they are added
but most ones specific to plugins are searched on first use
I get it now
did you test dev
nop
I'm still in debugger lol
wait why are we doing this in the patcher
we should do it when we change all replacements to array
eh
why
thats more work
doing it there makes it so that its only done on demand
not for all of them
wait werent we meant to remove this lmao
i removed it latest commit
oh i didnt poush
oh
how far from done is ur webpack find tester
๐ I didnt start lmao
horror
ig we could
i wanna test all finds first
to make sure none broke
i tested surface level and its all oki
but just to make sure
god this is such a large refactor
im worried many things will break somehow xd
are we sure no mod exports an object we need to search the props outside of .default?
cuz wouldnt that make byProps filter not work for them
wdym
there shouldnt be any such case
cause you'd just findByProps that export name
right
we already had to fix all filters that were now changed to named exports during rspack update (so basically all filters that relied on nested search)
cause the length check made all of them fail
anyway we should just finish the find tester
it should not be hard tbh
just monkey patch all webpack find methods to push into some array
then once all chunks are loaded force run all of them
should we do it before merge to main
cuz like a lot of stuff is broken in main it needs an update soon
wtf
if exports is t.exports, why do we have to set exports to module.exports, it's literally it already?
damn nice zoom discord
there are 3 images btw
okay I understand how it works (webpack patching, not the curse above)
webpack patching is a thing of all time
This is especially annoying because the Loading Vesktop... popup is always on top and both the popup and tray is not interactable until you press Ok on the error message.
lmao we are logging traces for non successfull finds
yes
is that intentional
I was so confused how those finds were running before patching webpack
it's because waitFor executes them
trace is unaware of how the function added
anyway
dont change webpack rn
im changing it
kk
o
then we can just access an prop on all of them from tester to force run them
then check if there are errors
WHY IS THIS A THING
hmmm but how to do it for components
javascript is insane
LOL what
how to trigger lazycomponents
any idea?
I think you should add the factories to the array
so you can just run them
hmm true
@austere talon i run the dev branch and just updated to your DISGUSTING webpack refactor and it.blew up my computer. i will be contacting your lawyers "vendicated" (if tnat is even your real name)

rini is watching
rini is always watching day and night
the only case it inlines funcs is x => x (and sometimes just doesnt because fuck you)
so bad
hop on terser when
oh
it only works with function x()
declarations
esbuild so dumb
@austere talon
@limber skiff
its kinda meh that we don't have a way to know where the find came from
unless we use stacktrace?
vencord logs your search history..
yeah...
but then we should add a new esbuild define
IS_REPORTER
babel macros when
meant to reply to this
you will Error().stack
yeah
stolen
@mortal fractal said something about the client jpegging them
we should test non lazy finds too
well yeah but they'll already error
oh right
and tbh i dont think we have amny
truee
cuz 1 plugin uses it
i think it didnt work
why doesnt it give u console log output
does it look like this for you
yes
Got unexpected error %c[LoginQRSocket]
font-weight: bold;
color: purple;
Could not complete QR code login, trying to restart with a new QR code.
its stuck on login??
let me run it locally
wha
and some of these are lazy loaded
^
yeah
buildEmojiReactionColorsPlatformed is hiddenChannels
is that lazy loaded or just borked
wtf
why was it cause of this
that's the only error
just urs
yeah
๐
in waitFor
Uncaught TypeError: kt is not a function or its return value is not iterable
did we even touch it
๐คจ
and doesnt properly initialise it
wait no it hoisted those funcs
it moved them out of the module
check this
the wrappers are hoisted and webpack find is inside some module
esbuild bug??
take a break
wtf
what does g( do
When I click on the โscreenshareโ button and choose a screen or app, nothing happens. Additionally, when I click the button again, the window for selection does not open anymore.
oh i know why
lmao why does it move that stuff to another place
oh
i will just lazy import
we love circular imports
or better yet move LazyComponent to a different file
made esbuild isnt minifying as hard
I HATE CIRCULAR IMPORTS
oh wait
i should add back maybe
or not?
it will make it so that late waitFor wont resolve ever
yeah add it back
push to main?
issue with your system. pipewire capture is not working
Pipewire is working, Iโve verified its status with systemctl, and this issue does not occur with the older Flatpak version.
yeah
ofc theyre a nixos user
its always nixos users with the scuffed systems
scary
ahhh shit
time to break vencord for thousand of users
now we wait for the complaints
idk how to write
ok gn
wow can't believe you'd give me vulnerable code @mortal fractal
wait she can't see that
i cant see it
ill just dismiss it
@mortal fractal btw have you found a way to stop this horrible image compression?
havent looked yet
aight
destructuring lazy is in main branch now right?
yeah
shouldn't be too hard probably
thanks 
okay i am wrong about it being clientsided
so it was indeed the proxy
what is it
oh yeah i noticed that yesterday
oh it's that dumb thing
I saw that too
let me try to help you find where it's set
didnt know it was broken lol
i mean
how can i integrate my car into discord
actually it might just be broken because i made it a dev build this release
it wasn't previously
and devbuilds throw on failed finds
so maybe it threw
we should stop using devbuild again and instead add a new define
i can do that tmrw
patch src to remove format query param 
<@&1069716270695583934> .SUPPORTS_WEBP&&
thats so dumb of them
yeah
@mortal fractal
no idea how that happened but ok
Vencord.Webpack.findByProps("SUPPORTS_WEBP").SUPPORTS_WEBP = false
no
yeah that breaks gifs
it's one of those
do not husk me ven, i dont like webp
omg this image quality
this is still a solution
i wonder if avatar decos have webp versions on the cdn
and this is getSrc
looking at getImageSrc rn
return null != o && (c.format = o),
(s !== n || a !== r) && (c.width = 0 | s,
c.height = 0 | a),
!i.isEmpty(c) && (u += "?" + l.stringify(c)),
found it
here is enough prob
it happens in getSrc yeah
proxyLazy(() => {
for (const id in wreq.m) {
const module = wreq.m[id].toString();
if (module.includes(".replaceIcon") && module.includes(".AtIcon")) {
return wreq(id as any).default;
}
}
})
please tell me there's a better way to do this
honestly we could just replace d.SUPPORTS_WEBP with false
^ i did and gifs broke
id personally rather do it in getImageSrc
i say we patch format to be null so it uses whatever format the image is
instead of forcing it it to be webp or png
true
why does this break gif on hover wtf
d.SUPPORTS_WEBP && (n || !e.isAnimated(this.props))
because .webp is used for animated (gifs count as animated)
wait
no
guh why does gif on hover rely on it being webp instead of fucking using passthrough like apng does
discordddddddddddddddddd
if my plugin depends on a store do i add that store to webpack common or in the plugin 
given that store isn't already in common
does fakenitro not use it?
search all files and see if anything else uses it
the passthrough shit is so hacked together i feel
the moment they make their cdn not strip animation it's over
no results except my plugin

๐
top notch quality
{
find: "getImageSrc:",
replacement: {
match: /(?<=ratio:\i=1,)format(?=:\i=null)/,
replace: "_format"
}
}
ofc there is
@austere talon do you recognize what I did here?
yop
(the function is wrapped by .replaceIcon so findByCodeLazy doesn't work)
does this not break gifs
omg images look so good
nope
wtf
are u sure
oh wait
yeah I tested with this one
wait
i think discord's gif check is stupid enough that it just expects .gif at the end
bu-but redesigned icons toggle 
they work fine
use one on the cdn
cdn gif
I'm making the format null
this is what the format can be
webp or png
I dont see how that affects gifs
works
i will loose redesign toggle then 
what was the reason for this again
return d.SUPPORTS_WEBP && ((!animated || !autoPlay) || !e.isAnimated(this.props)) ? c = "webp" : (!animated || !autoPlay) && (c = "png"),
I would rather patch this place though
okay who gives a shit
okay i'll copy paste
that you can't webpack search them cause they're all wrapped
and we had many issues in the past where svg searches broke
sad
{
find: "handleImageLoad=",
replacement: {
match: /(getSrc\(\i\){.+?format:)\i/,
replace: "$1null"
}
}
this works too
@austere talon should I?
Did I get tagged somewhere?
For me, it seemed like the service xdg-desktop-portal-wlr.service and xdg-desktop-portal.service were not starting by themselves. I had to enable them and then after configuring Sway as @MrShelbySann suggested, then it worked. I rebooted to see if the config was permanent and it seems like it was.
For me, it seemed like the service
xdg-desktop-portal-wlr.serviceandxdg-desktop-portal.servicewere not starting by themselves. I had to enable them and then after configuring Sway as @MrShelbySann suggested, then it worked. I rebooted to see if the config was permanent and it seems like it was.
Yes, thatโs exactly the issue I had.
I had to declare some environment variables to make mine stick on Wayfire, but now it works.
It took a lot of fiddling to find out why those 2 service...
What happened to this? Did it get removed?
There is no discussion #1335 ๐
discussion is disabled
How come?
what
Oh
Adds role icon between role circle and role name (if icon exists)
is progress indicator necessary? there's UploadAttachmentStore which handles everything (except the progress event) so adding progress indicator would require mirroring (like 50~100 lines) the handlers of UploadAttachmentStore
For me xdg-portals are working, but vesktop, armcord, vencord, not working on NixOS stable.
LOL that can actually be a problem
but in this case it's obviously not
computers are dumb
Why isn't this just 3 separate plugins?
Having them all together is kind of dumb imo
I don't care for show media names or allowed mentions.
From the viewpoint of someone looking for cool plugins, I appreciate the name of a plugin being very self describing so I look at it
Extra complexity when it could just use the existing plugin toggler
AllowedMentions/MentionControl, EditAttachments, ShowMediaNames lol
I don't like the pascal names, why are they not just spaced I can't remember
i can separate the last but the first 3 share some patches 
but i felt grouping them was better since they have one purpose of making messages better
Vencord has a system for plugins being required as dependencies does it not
yes but idk about patches
i apple
Agree
STOP DOING NIXOS
i use nix btw
perish
is this true
hey! just popping in to ask if the maintainer of the clearURLS plugin would like to look at my PR? https://github.com/Vendicated/Vencord/pull/2005
thank you 
@limber skiff heyy do you think you'd be able to review more of decor? I'd like to try and get it as refined as possible so we can get it merged quickly
alright no worries, and if you're willing to review it at any other point i would greatly appreciate it
got it working by just running straight through electron. awesom
why do people come with the most niche setups and expect us to figure out what they messed up
@austere talon I found out when we force load all chunks not all actually get required
wait wdym
oh do you mean the modules itself are not all required
yeah
I mean that's fine, no?
that's why UserSettings finds are not being found in the reporter
we patch them anyway
it only actually requires the modules when we open UserSettings manually
ohh
let me show you why
is this for webpack find testing
yeah
ah ic
createPromise: ()=>n.el("420610").then(n.bind(n, "420610"))
el loads all these chunks "shared", "app", "64827", "73850", "15556", "86213", "57832", "62597", "56122", "48528", "75232", "29232", "98904", "495" and then requires 420610 itself later
however 420610 itself is not a chunk id, so when we call wreq.e with all the chunk ids 420610 is not required
however 420610 itself is not a chunk id, so when we call wreq.e with all the chunk ids 420610 is not required
as in it's not present in this mapping
we just need to wreq() all the keys on this mapping
but it's not exported ๐
After setting transparent to true in ~/.config/VencordDesktop/VencordDesktop/settings/settings.json as well as enabling Splash theming in the GUI, the splash screen is successfully transparent:
But not the app:
This is what it's supposed to look like (`armcord --enable-features=UseOzonePlat...
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
that's not a problem
how would we access it
420610 is the id of the entry module of that chunk
it's like
loadChunks().then(() => require(420610))
yes I know
then what's the question
but we can only know that using the non exported object or by looking at every .el() call on modules
as I said 420610: "some chunk url" doesn't exist
this
what are these?
basically, every key on this object is the entry point of executing some part of chunked code (which can be formed of more than one chunk)
createPromise: ()=>n.el("420610").then(n.bind(n, "420610"))
chunks it loads: "shared", "app", "64827", "73850", "15556", "86213", "57832", "62597", "56122", "48528", "75232", "29232", "98904", "495"
when you open the UserSettings that el() function call gets executed
discord loads all those chunks (shared, app. 64827, etc)
and then requires the entry point for the UserSettings which is 420610
in the current approach we force load every chunk and require the entry point of it using the map inside webpack.u, but that doesn't necessarily require all the modules of that chunk
for example it doesn't require 420610
we can't really require all modules
it'll cause issues
many modules require on other modules being initialised
yes that is true
or even can't be required outside of a specific context
but if we were able to access that non exported object we could call.el on every key
are you sure it wouldn't cause issues
which would require pretty much all the code discord does use
is it only the settings module that's causing issues
yeah, surprisingly enough only finds that depend on it are causing issues
I doubt it, but idk how we would get access to it too
so it's only settings?
then why not just specifically require settings but nothing else
lol
i think cause we generally avoid using modules that are lazy loaded
yeah
we only use settings ui code cause it's safe to do so in our settings code
I'm thinking of manually fetching discord webpack entry point script and regex matching the object
we can't patch it cuz it's the webpack entry point
so idk another way than fetching
not a problem
i mean fetching it is fine but also seems unnecessary
i will check in a bit
@limber skiff you could try and search for this https://github.com/Vendicated/Vencord/pull/910/files#diff-41dbe18403537328a3c7357c73fe6525be0a23ed0f6a7427f7f4e0ed2e15d7bfR11-R12

