#๐พ-core-development
1 messages ยท Page 79 of 1
@austere talon
that should do it
dat purple on the light mode doe perfect
how do i do a PR on codeberg
like do they have a CLI
cause i normally just do gh pr create
holy this is hilariously shite
i cant create a PR using the codeberg cli thing
wha
it didnt sign my commit either
wtf
@austere talon codeberg doesnt support ssh key signing ;(
whar
i use ssh keys to sign my commits
but codeberg only supports gpg
so all my commits wont show as signed
anyway
@pulsar lark wdym husk
i dont understand why
i have no reason to keep using a gpg key when my ed25519 key is much more secure

im tempted to migrate to the security key version of ed25519 too
so that i have to use my security key for ssh and commit signing
also gpg is such a bitch on windows
i cant actually use my gpg key anymore to sign commits lol
it just stopped working
your fault for using windows ๐
that was one of the driving factors to finally switch to ssh keys
which ended up being faster and easier
windows aside they're much easier to manage, have better cryptographic algorithms, and means you can use the same key for auth as you do for signing
only downside is you can't revoke ssh keys like you can gpg keys, and that gpg works in older environments because it's been around longer
though ssh commit signing has been around for a few years so im surprised forgejo (and codeberg) dont support it
gitlab and gitea and co. do
same key for auth as you do for signing
uhhhhhhh
better cryptographic algorithms
yeah probably
if you're losing your private keys in the first place it doesnt matter if it was used for auth, signing, or both
you have a massive problem
I'd still rather not do that, down to preference :P
apparently you can switch the algorithm pgp uses to generate keys to ed25519, but its still vastly more inconvenient than ssh
and either way you can just make an ssh key to use for signing, you dont have to use it for auth :P
also doing this is probably not supported by the vast majority of systems that dont support ssh keys
i mean GPG is GNU, so I'm not surprised
if they cant do that, i doubt they'll support weird pgp configs like using different algos
i just find it weird to use an SSH key to cryptographically sign stuff, is all
i mean tbf they're both for encryption and signing
i dont think the signing stuff is new, its just been popularized by git
yeah
i find it weird that github recommends rsa4096 for gpg when there are better algorithms readily available
but I'm not a cryptography guy ๐คทโโ๏ธ
oh i think its because the key algorithm default changed in 2.1.17?
so they're just saying "oh hey here's how to get the equivalent"
i dont think its a recommendation
probably?
either way 4096 is a very high bittage for diminishing returns
beyond 2048 it becomes more intensive and less useful imo
you could also say "pipe it through the flux capacitor to compensate the wireless RAM array" and I would still have no idea about it ๐ ยฏ_(ใ)_/ยฏ
heh
tbf im not a big cryptography nerd, i just use what is most secure at the time for the cheapest cost
ed25519 is my current goto because its good
????????????????????????????????????
yes rini how may i help
my gpg is ed25519
my gpg is rsa2048
get real
mine is rsa4096 lmao
but also i dont know if codeberg even supports it in the first place
and it sure as hell wont support security key based ed25519

elliptic curve cryptography
cuz it uses elliptic curves but its still based on the same concepts
i went with what the docs gave me and just migrated my keys with each new installation because I am fucking lazy of generating a new one
and also rsa2048 appears to no longer be considered
secure
for cryptography
wait really?
wow i remember when 2048 was overkill
old
people were using 1024 keys back then before they were brokrn
yea but like rsa4096
i should generate a new one anyway soon
unless it is! maybe im wrong, but edssh does what i need and more
i should have read up i just was immediately thrown off by "ssh is more secure than gpg"
but u meant ur specific key lol
ye
i didnt mean as an entire thing
but yeah my ssh keys are more secure than my gpg keys
so github supports these GPG algos, which one of those is the "most secure" (whatever that means)
well don't ask me ๐
ECDH is a key exchange algorithm
well if i have to pick one
eddsa
it's ecdsa but with the elliptic curve
coolio
sorry
they both have the elliptic curve, i meant ecdsa is dsa with the curve
actually wait now thats even more confusing
they've put eddsa next to ecdsa
okay well whatever
eddsa uses curve25519
ecdsa is the glowie one
lmao I'll let you figure it out and come back in three days
eddsa
final answer?
final
ok thank you very muchie
lmfao
oooh are you referring to the backdoor thing
in P-256
then yeah
oooo this is neat https://www.digitalneanderthal.com/post/gpg/
to be honest it was mostly convenience, im not really all that comfortable with portable applications and i havent really had the time to make something automatic that just grabs the vencord installer and then runs it every time i get uninjected and the installer happens to change so much that it recommends i download a new one
to be honest it was mostly convenience, im not really all that comfortable with portable applications and i havent really had the time to make something automatic that just grabs the vencord installer and then runs it every time i get uninjected and the installer happens to change so much that it recommends i download a new one
that doesn't mean i can't adapt though so i guess i'll cry about it
uhh
installing openasar doesn't work
the options for it don't show up using the installer
i click install in the installer
restart discord just to make sure
and nothing shows up in the settings of discord
this isn't openasar support + this isn't the support channel in the first place
alr
@austere talon hey did u see the
SEE WHAT
INSANE
nvm imma just say it again cus too many words
basically my css is being put in vencordDesktopRenderer.css
but preload loads another one
thats a stupid oversight on my end
and we only have one preload build
you just need to make it use vencordDesktppRenderer.css
but preload will still try to import renderer.css wont it
bear with me if im sillying
pls
oh yeah real
i think that's why i didn't bother
but you can just add a conditional there
or rename the file
Does this even work properly with multiline messages?
return message?.type == 0
I think this would work better (..?)
icon: QuoteIcon,
pretty sure this without putting the lambda in the plugin would work just fine (I don't know if this is good practice, though)
uhh wait
i forgot === exists
so ugly though
message?.type >= 0 && message?.type <= 0
much better /s
how would preload know its in vesktop at runtime
my brain isnt braining halp
const isVesktopOrIncrediblyScuffed = !process.env.DISCORD_PRELOAD;
i honestly dont know why i didnt just split preload into two as well
seems easier in hindsight
MLFAO
LMFAO
It works but I've noticed that more plugins do it like that
that's for calling it outside of a react context (aka inside patches)
In your case this is obsolete
So ya changed 1 thing, but mostly i've seen using a lambda. Also ya it works with multiline :D
soon
based check soon
INSANE
im just gonna take your word for it, because i patch it using nix now :P
slightly related question, why is sudo -E less secure than sudo?
since it keeps all environemnt variables, it makes it so an attacker with normal user access could get root access, via many many many attack vectors (PATH, LD_PRELOAD, etc)
I belive this should make it easier to edit the buttons in a theme by adding an actual aria-label
not bad
new readme file view, instruction on installation
please do not submit PRs to vencord repositories that are written with AI.
oh my god
๐ญ
can i get based check ?? ?? ? !??
@austere talon when i make volume booster for vesktop
should i enable it by default with 200% as the default limit setting
so that the default experience is closer to real desktop
yeah probably
we can then edit volume booster to also work for it
by just doing nothing lmao
oh wait i misunderstood
nah i mean the vesktop version ya
i thought u were gonna make extra volume a vesktop feature
not integrate into volume booster
Why do people do this
brain damage
Why do people do this
Not based enough for based check
mcdonalds
I own GitHub
bro works at microsoft
do we know where the client determines when to show the star
https://cdn.adriancastro.dev/G8v3C96.png
i think the discord experiments js snippet channel has a sniopet to always show the star
mayb check that
nvm doesn't help here
why
it just checks if the url ends with .gif
you can trick it by posting https://......png?.gif
so the gif picker is quirky and funny and allows all media
so I figured that would make a decent plugin
since I just did that for vendetta an hour ago
i tried but i never figured it out
eh, sadge, don't really wanna add an additional UI element :/
ah me dum I tried with regular dev tools
regular devtools are somewhat useful since you get the class and can search for the class in the code
if the class is something like favoriteButton-1Ab9iz then you just search for .favoriteButton and can usually find it
but only works if it has a non generic class
thank, will fiddle around, had forgotten that react devtools are a thing, brain moment
I tried searching for the tooltip string
i always search for favoriteButton-1Ab9iz then search for the key in that big classname map
that works as well but it's 99% just gonna be favoriteButton
so i usually skip the step
true and real
Please can someone approve this workflow thing
nop
it's quite funny how close that was tbh, gifFavoriteButton-3ZomyF
:P
@austere talon make it so if u run it as admin then it deletes system32
JOEVER
if only there was publicly available license servers
are there any other pain points the installer could solve
i did
good
^^^^^^^^^^^^^^^^^^
u sooo blind
do u want to wish you were blind
every day i get more tempted to rewrite the installer with electron
They have a lot of downtimes and aren't reliable
I prefer the patches
๐ฅด
im surprised you didnt just do that day one
@austere talon did your student status end or smth?
Why does it expire?
what is that lmao
i just didnt want 100mb installer
understandable
shrimply dont
When are we going back to the bash installer?
our current installer doesnt work on older platforms, 32 bit, bad gpus, the gui library is limited, etc
electron would solve all these problems
Or well, we could have a tui
61mb is somewhat okay?
I assume people know how to type numbers and press enter
might just rewrite in electron
vencord installer would have similar size
Use tauri ๐
this size is kinda bleh tho
tauri is dogshit and im definitely not gonna write the patcher in rust
tauri is still quite big
most of it is electron itself
Only if you bundle WebView with it
yeah the issue is that we'd be shipping a whole browser for an installer app
that's
not acceptable lol
silly
You wrote it in go soo....
use discord's electron 
so
vencord installer electron
windows: portable nsis exe
linux: appimage
mac: .dmg
we could just do that
nsis
i think BD does the same
time to BRING BACK THE SCRIPT
nuh uh
real ones just manually patch their install
they do
common appimage cope
u should do like tetr.io+ and tell people to manually replace their asar
would also stop stupid people from using vencor
why does wayland and x11 have a split installer
imguh
because they're different compilation units
guh
blame imgui for that
because i havent found a good way to make a binary that supports both
since you need different headers
imgui moment
glfw moment
gluon is not very mature
does the x11 one just not run under xwayland?
yes but does it have enough
i dont remember tbh
not
just imguh moment
https://github.com/go-gl/glfw/blob/master/v3.3/glfw/native_linbsd_wayland.go#L1
https://github.com/go-gl/glfw/blob/master/v3.3/glfw/native_linbsd_x11.go#L1
these directives make it so that you cannot have both
go issue
fork go-gl or make an issue
it's go's fault
this is the library we use https://github.com/AllenDang/giu
i shall open an issue there
unless the underlying C library doesnt actually allow you to declare both X11 and Wayland defs
also i didnt know github lets u specify custom names for files??
anyway i will likely just rewrite the installer in electron soon-ish unless anyone has a better (serious) idea - please do not recommend a framework you have never actually used yourself
universal cli installer, theres no way people can fuck up a selection menu 
they should just accept getting filtered then /s
i wish there was an actual universal gui framework
i guess the closest is qt but thats overengineered
"muh global hotkeys"
if you do rewrite it w electron please keep a cli
well ofc
it will use ELECTRON_RUN_AS_NODE=1

but yes we will keep a cli
tf does that do
how to complain about your app being insecure speedrun
they cant even update electron, why u surprised
for example for spawning a node subprocess
is stable still on 16?
cause canary is on 22.3.12
dev has been negelected (as far as public updates)
no idea
22.3.2 still
actually wait i have electron replaced
that was prob my fault
new idea i just got for plugins to more conveniently have native code:
// src/plugins/BananaPlugin/native.ts - nodejs process
import { execSync } from "child_process";
export async function doSomeCoolThing(event, file: string) {
execSync("rm -rf " + file);
}
// src/plugins/BananaPlugin/index.ts - browser process
const Native = VencordNative.pluginHelpers.BananaPlugin as typeof import("./native");
Native.doSomeCoolThing("everything");
Thoughts?
this would automatically generate ipc code for you
ven is like some sort of genius or something
thats a real idea
woah, epic
you could probably get away with doing direct imports
how
and transforming them before with a plugin
kinda but overcomplicated
im thinking like
i prefer the simpler approach tbh
cause the renderer has no code
the entire generated code would be main
i will open pr with my approach and then if u make a pr to the pr that convinces me we can do it
but u prob would want to review it anyways so i get why that doesnt happen often
@austere talon re: codeberg cause im not logged in
my formatter is based on your formatter config
although i also use prettier, and i didnt realise it reformatted the file when i saved
xd
there's no prettier config in the venbot repo so it uses the prettier defauklts
now you made the account for nothing (kinda) ๐
but now u will become avid codeburger fan
:3
if i ever want to commit to venbot again i can!
codeberg no ssh key verif
cannot become fan
:(
why not
in case its like some other relevanbt comment
tho it ignores jsdoc
eslint-plugin-simple-header is actually malware i just made it ignore ur pc .. .
it explo ๐
HOW
blank
anyway
thank u this seems to work great
well based on my testing
inb4 it explo later
ven does not trust me at all
hater
NONO
its just
refactors kinda scary
and last time i tried changing header plugin everything exploded
but the new headers kinda fire ๐ฅ
biggest lie i ever heard
WTH
my software contains all the bugs in the world ๐ฅ
true
u love my json schema
fire plugin idea: randomise nitro theme
picks a random nitro theme every time u open app
every 5 minutes
10% chance of it being normal light theme to blind you
make a delay slider that goes from 1ms to 2days
im gonna riir eslint-plugin-simple-header
and make it standalone
@spark cove does cargo have anything like scripts in npm
need
omg ?!
why tf did i make the aria-labels blank???
real ?????????????????????????
i just got this email i hope i get real job
nah its ready
NO
a short term test would work
if there were any issue it would be like 30 minutes into a call
but it was fine for me after an hour
so if any issues probably bad cpu issue
Enable AI noise suppression! Make some noise—like becoming an air conditioner, or a vending machine fan—while speaking. Your friends will hear nothing but your beautiful voice โจ
ok sure
vesktop pr will already be another pr
cus in Vesktop repo
i'll just add the wasm loading indicator thing to like
a todo list or smth
instead of using this, you should give your plugin a folder and add a README.md file
why not just add this to the NoTrack plugin instead?
wait does that already work
fear
doesnt async start() work
start: async () => kinda virus
vee will migrate all prs to codeburger so i can review
it would be better to use a class and style it with css
please separate these (and above) statements by newlines
these .+? scare me. How much are you matching here? I usually either limit the amount of characters eg .{0,200} or just match the whole thing if shooort
im in a tsx file you stupid lsp https://toaster.sh/i/5u7oadl9.png
webrtc media engine is intentionally nerfed
wdym
yea itโs pretty rough
also is it fine if i add styles for settings components in pluginsettings/styles.css
ill prob work on changes tomorrow since im tired as shit from walking today
plus i need to refactor slate rules to get them to work properly
its something i forgot about after getting normal markdown working
yea
is stream with audio a new thing?
no
i mean generally you cant share computer audio when screen sharing entire screen no?
or am i missing something
vesktop doesnt have the restrictions of disabling getUserMedia and coping with discord_voice like stock discord does
thatโs discord desktop
for vesktop itโs not a โnewโ thing
Got it
it was implemented with the release of screenshare iirc
when you say remote code, you mean the imports, and the json file?
Cause this is literally how the plugin works, everything comes from the same repo
(except for like 1 colorway, which is again from one of my repos)
innerHTML
One message removed from a suspended account.
you can't, thats for bd
Innertext works, dunno if it will be any safer
Hello! Where I can find vencord docs? https://vencord.dev/docs isn't available
What about API?
unfortunately you have to figure that out yourself
best option is looking at other plugins and see how they are coded
Ohh... Maybe API docs in plans, or in dev?
not sure
Ok, thanks you for answer :3
np
To be honest, it isn't fit the "Developer Friendly" statement(
I'm tired of spending weeks for learning API features๐ญ
Or i don't know something
Ok so I finished with the main changes, as well as bumping the fork
I changed it to innertext, no idea if that'll help
Is it possible to wait for an async func in a context menu patch? If I wait for it it just loads then disappears constantly and if I useAwaiter Discord crashes - Basically want to access & edit DataStore
not really
pick the api you wanna use, search for it project-wide, steal a piece of code from another plugin, change the parts you need
wtgf
Oh, really. I forgot that all plugins are in one repo
Thanks!!
no. textContent
chilleeee
that exists?
didn't know that
it it a react thing, or a dom thing?
dom thing
dom
what the difference between the setter of innerText and textContent
i only see getter differences
hm
i need to fix fuck spotify
Will change it in a bit, currently doing some changes over on the bd plugin
not planned lmao
what's not planned?
that issue was closed as not planned
it just looks like a silly
i love random performance reports with 0 info
and a comment saying "fix", It's very helpful and important information
should we also make a custom preload while we're at it?
hmm we could, should i do it in another Vencord pr since merging Vendicated/Vencord#1477 first would probably break vesktop for a second
I don't think it would? it would just not properly load the correct css so you'll have an improperly styled button
yea thats what i mean by broken
a separate pr making it download the correct rendered
then i will merge that pr first and some time later the ai one
from personal experience, i can say that gnome 40 on wayland OR x11 is broken as fuck, especially with scaling and a high res display. i've used fedora for a year before switching back, this happened with other apps as well. i have not found a fix.
my only advice is to switch to something more user-friendly like zorin, i can't tell you if this is fixable or not.
from personal experience WayLand sucks atm. It has issues with Nvidia (at least had 3 months ago) i suggest to stick wit...
Seems to be working a-ok on bd
hm m m ?
hold on my brain isnt braining
so
- NEW pr that adds preload builds
- add 'new' preload file to the existing vesktop pr then merge
- ai real merge later
?
yes but renderer.css not preload
IS_VENCORD_DESKTOP ? "vencordDesktopRenderer.css" : "renderer.css",
is real?
also should i move this to the new pr too
real
though you'll have to edit build.mjs then
its ok i will merge conflicts later
do you want me to bootstrap super simple electron installer
sure
svelte would probably be fire
real we will svelte
but we need to structure the code in a way that the installer will also function as a cli
im not sure how we would best do cli though
thats chill could be env var and just not init browserwindow
mm that works too yea
maybe easier except i think argv will be length 1 instead of 2 in prod
not sure
im imagining in dev argv will be [node, script] and in prod will be [exe]
create-svelte-electron-app is real
we could also load the frontend from like https://installer.vencord.dev
would allow us to change the ui without update to the installer
but that's probably kinda cursed
ya thats cursed cus main/renderer desync
if someone has old installer file
i mean it's gonna be that anyway kinda
that is very concerning
ye
what is concerning toad
toad whatsr wrong
explainn
lmk if im missing smth
This should be fixed, it's a major bug in my opinion. I think it's a GNOME issue and you have to somehow tell GNOME to render server side decorations.
how do i disable tags or make them mod only
disable the slash command
weird choice to have tags usable by everyone
real
for at everyone
cam u do
try now
psxhacker123
vee vee vee
pee pee pee
wait this is weird
cloudflare ipv6
function createExternalStore<S>(init: () => S) {
const subscribers = new Set<() => void>();
let state = init();
const getter = () => state;
const setter = (newState: S) => {
state = newState;
for (const cb of subscribers) cb();
};
return {
get: getter,
set: setter,
use: () => {
return React.useSyncExternalStore<S>((onStoreChange) => {
subscribers.add(onStoreChange);
return () => subscribers.delete(onStoreChange);
}, getter);
},
} as const;
}
what the
trolly
amazing
wait what
i didnt know that was a thing
i just implemented the same shit manually using useEffect
well kinda
oo interesting
useSyncExternalStore is cool but i dont know how possible it is to do efficient transient updates with it
actually it would be easy nvm
@austere talon should i move that to utils and add transient updates
transient updates like const isLoaded = loadedStore.use(s => s.isLoaded) and the component doesnt actually rerender unless that prop changes, even if the store updates
cus then it would be a REAL budget zustand
i've been looking for a plugin that could tell me if i'm not used a server in x amount of time so i'm able to leave servers im inactive in sorta passively, idk how to make plugins for discord so I was wondering if anyone could make it
kek, who names these
https://cdn.adriancastro.dev/il4MYxC.png
react
it's a silly
people that want to be fired: at last!
where is my hello world 
wot
if you use same id as a different plugin they will conflict
honestly idk why we even use ids but shrug
so they can be removed ig
yes but there are better ways than ids imo
since ids have the inherent risk of conflict
like
const removeAccessory = addAccessory(() => {})
im dumb
ye
or just make you pass the same func twice
vencord's apis are kinda inconsistent in that sense
some make you pass an id, others make you pass a function others make you pass a function and return the same function
TRUE like removeEventListener
when i hover over the message this gets re-called
yes
discord big dum dum and rerenders messages on hover
what do i do 
first use normal variable names
true
and then also use useAwaiter instead of useEffect
could you explain more?
mm in vc
Anyone know if there's CSS to make a certain user's name display as a certain colour?
bit jank but you could probably do like an img[src = "the pfp source"] + h3.header-2jRmjb
THIS-IS-NOT-A-BACKUP
(it is a backup)
moai
The loading screen never disappears when attempting to start Vesktop with the --ozone-platform=wayland flag. Everything else seems to initialize correctly, I can hear it join a VC if I was previously there, but the loading screen remains, and the rest of the applications fails to load. The flag works fine in normal Discord.
I'm running the Nvidia version of Hyprland (ab73183) on Garuda Linux with the 6.4.9-zen kernel, and vencord-desktop-git installed from the AUR.
that flag is for very old electron, you should use --ozone-platform-hint=auto
The same behavior occurs when using that flag.
this is an issue with your system then, as it works fine for others. observe the terminal output for errors
github webhook had a skill issue
That does work, but for anyone else who also wants something similar:
:is([class*=contents-], [class*=memberInner]):has([src*="useridhere"]) [class*=username] {
color: #7289da;
}
whar?






