#👾-core-development

1 messages · Page 102 of 1

real flower
#

the virtmic binary

austere talon
#

YOU CANT KILL A THREAD

real flower
#

KILL A ME

#

waiut what

#

ytou canttt?

austere talon
#

yus it works

#

i think

real flower
#

uhohyayuh

charred monolithBOT
austere talon
#

not calling stop segfaults

real flower
#

LMAO

#

seegfult

#

as they say

#

add a uhh

#

mov 69420 rdi,

#

syscall

austere talon
#

i could use libuv instead of thread

olive aurora
#

libuv users when i expose them to lethal amounts of ultraviolet light

turbid hatch
#

@austere talon 🔥

#

labelling them for my own convenience so i can gauge how many were closed for this reason

austere talon
#

i hate c++

crude hearth
charred monolithBOT
lime stone
#

this is what Vesktop looks like after 0.3.2 for me lol

austere talon
#

unlucky

teal halo
#

looks cool

lime stone
#

0.3.1 fixed it 😭

#

weird, i guess you can't fix it for some people without breaking it for others

austere talon
#

ye

lime stone
#

I think I already posted it but the output is flooded with link failed but did not provide an info log lol

turbid hatch
#

yeah its just

#

busted

austere talon
#

try running with disable gpu flag

lime stone
#

yeah

#

that fixes it

#

i did it for vscode too :p

#

it's just quite weird that it started happening suddenly

austere talon
#

at this point its probably way easier to just turn it into a cli

#

and run it

#

and scratch the node addon idea

#

c++ threading is very painful

#

being able to just spawn & kill a child proc would be way simpler

radiant reef
lime stone
#

c++ is amazing

charred monolithBOT
charred monolithBOT
#
[Vencord/linux-virtmic] New branch created: rohrkabel-binary
lime stone
#

read

#

wait let me find the message xd

#

yeah

teal halo
#

even more pog

real flower
#

the hell is a cve

lime stone
#

nobody knows, they just pretend to know

real flower
#

LMAO

lime stone
#

in fact, the reason it exists is because somebody didn't know what it was called so they made those letters up

real flower
#

corkscrew volume earplug?

quaint sapphire
#

hey y'all
if I decide to make a plugin, is anyone willing to make the PR for me?

lime stone
#

*are you blocked? *

quaint sapphire
lime stone
#

are you even meant to be able to talk 😭

quaint sapphire
#

only blocked on github

#

was never banned from here, and ven hasn't blocked my discord

lime stone
#

yea but you had a nice limited edition role

quaint sapphire
#

lost it bc I left like a little bitch

lime stone
#

@austere talon decide what to do ig

#

technically mute evasion hypershiggy

quaint sapphire
#

nah I am actively ghosted, that won't help

lime stone
#

vee usually listens to me

quaint sapphire
#

anyways, it should be possible for a plugin to create sourcemaps for discord's code, right?

quaint sapphire
#

and prettifying the code using more sensible rules, dunno what the devtools are using to prettify

#

heck, we can even calculate static shit like "cat"[1] to be "a"

quaint sapphire
#

now comes the question, how would we know what filenames to give for each module?
that ain't preserved info

#

maybe we could have our own index that uses regex in order to identify modules, but that would need maintanance

charred monolithBOT
#
[Vencord/Vesktop] New branch created: virtmic
austere talon
quaint sapphire
#

within the devtools?

#

oooh, are you talking about the patched modules showing as different files?

#

hmm, that is nice and all, I really love that feature
but they don't have meaningful names, which makes sense

#

opinion on having a plugin that identifies modules by using regex?
we could name them ourselves

#

anyways, night night, will give this a go tomo

charred monolithBOT
lime stone
#

should i cursed or not cursed

#

i think using var may actually be better :p

#

otherwise it'll be any

olive aurora
#
const prefix = process.platform === "win32"
    ? "\\\\?\\pipe\\discord-ipc-"
    : (env.XDG_RUNTIME_DIR ?? "/tmp") + "/discord-ipc-";
#

is this finding discord's own ipc or

#

cuz i think it'd always use xdg_runtime_dir

charred monolithBOT
lime stone
#

?? won't account for if it's an empty string

olive aurora
#

m

lime stone
olive aurora
#

oh does it use all of that

lime stone
#

yea

olive aurora
#

cursed

#

tmpdir isnt even real

#

like any of those

lime stone
#

jagrosh's discord ipc lib seems to use them too lol

austere talon
limber skiff
austere talon
#

vesktop

#

on linux

limber skiff
#

ahh

#

makes sense

real flower
#

:D

#

audio support!!

charred monolithBOT
real flower
real flower
#

:DDDDD

#

mfw I'm cool and swag now

charred monolithBOT
lime stone
#

should you have contributor role

real flower
#

ask @austere talon

#

oh wait

#

AE_FacePalm guess I just asked

charred monolithBOT
lime stone
#

nvm the branch technically isn't merged

real flower
#

waaah

#

woaaahh

#

I'm even more swag

#

welp break over see y'all laters

charred monolithBOT
frail skyBOT
#
Bad Patches

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 668201
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

Bad Starts

Party mode 🎉:
T0.__getLocalVars is not a function

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
lime stone
#

,

frail skyBOT
#
Bad Patches

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 668201
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

Bad Starts

Party mode 🎉:
T0.__getLocalVars is not a function

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
austere talon
#

uh

#

i fixed icon i think

#

yus

charred monolithBOT
lime stone
charred monolithBOT
austere talon
#

hardest fix of my life

lime stone
#

i just stumbled upon this

austere talon
#

100% volume is a Discord desktop feature

#

doesnt exist on browser

#

vap wanted to port

#

@spark cove

#

what happened

lime stone
#

@spark cove let's ping vap

spark cove
#

motivation 0

#

amazing

lime stone
#

watch this

spark cove
#

stay inside me duck

charred monolithBOT
austere talon
#
• electron-builder  version=24.6.3 os=6.2.9-300.fc38.x86_64
  • loaded configuration  file=package.json ("build" field)
  • description is missed in the package.json  appPackageFile=/home/vee/Coding/Vesktop/package.json
  • writing effective config  file=dist/builder-effective-config.yaml
  • packaging       platform=linux arch=x64 electron=27.0.0-alpha.6 appOutDir=dist/linux-unpacked
  • building        target=flatpak arch=x64 file=dist/Vesktop-0.3.2-x86_64.flatpak
  ⨯ flatpak failed with status code 1  failedTask=build stackTrace=Error: flatpak failed with status code 1
    at ChildProcess.<anonymous> (/home/vee/Coding/Vesktop/node_modules/@malept/flatpak-bundler/index.js:71:16)
    at ChildProcess.emit (node:events:514:28)
    at maybeClose (node:internal/child_process:1091:16)
    at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
 ELIFECYCLE  Command failed with exit code 1.
#

very useful error

charred monolithBOT
#
[Vencord/linux-virtmic] branch deleted: rohrkabel-binary
lime stone
#

interesting, this looks a lot like the discord code i've been looking at trolley

olive aurora
#

its electron

rancid dragon
#

"yeah you got an error, yeah it was made in the error emitting function"

lime stone
#

true

olive aurora
#

not worth

#

ven is also not allowed to write rust

#

i dont allow him

austere talon
#

rust so bad

#

id rather write c++ than rust

austere talon
#

ur mom isnt memory safe

real flower
#

I'm using this on you

olive aurora
#

i am going to drop(vending_machine)

burnt turtle
lime stone
#

average argument

austere talon
#

wheres the argument

#

i thought u were just trolling

#

i am

burnt turtle
#

average rust user

lime stone
#

new and delete my beloved

austere talon
#

i like the vencord logo here

austere talon
lime stone
#

delete all the things

burnt turtle
#

@fringe basalt whats your input on this

lime stone
#

smol

austere talon
#

?

#

also i was kinda reformed somehow

#

i installed fedora + gnome like today afternoon and the first few hours i hated gnome

#

now after using it for ~6h i like it!

lime stone
#

yes welcome to the club!

austere talon
#

nahh

#

i still have dualboot

lime stone
#

traitor

olive aurora
#

gnome is neat

austere talon
#

i really like the software store tbh

olive aurora
#

but tiling wms ...

austere talon
#

and the store is pretty cool

#

the gnome recorder is broken for me tho

#

💔

#

so annoying

lime stone
#

ferris chef kiss

austere talon
#

JAVA

lime stone
real flower
real flower
#

what gpu you have

austere talon
#

nothing to do with gpu

#

it just creates an empty file lol

real flower
#

the fUcK

#

send the file

#

all 402 bytes

austere talon
#

its a valid webm but no data

real flower
#

weird

lime stone
#

_ _

austere talon
#

system update fixed it

#

silly

lime stone
#

balls

charred monolithBOT
charred monolithBOT
charred monolithBOT
crude hearth
#

dumb discord

#

apply this patch

#

I do not want to make another pr

#

since you will definiletly not see this imma spam dms

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
real flower
#

stars

charred monolithBOT
real flower
#

truly stars

lime stone
#

🤩

real flower
#

i think i figured out the issue with wayland

#

this shouldnt launch the screenshare picker

#

it should launch the streamsettings window

#

im gonna work on this

#

upon further inspection

#

i might have to rewrite the streaming logic for wayland entirely

#

basically that's a long way of saying i have to make a new function because streamsettings requires stuff we dont get from a wayland stream

#

ill just

#

do that when i have more than 10m free time

#

(later today)

lime stone
#

interesting

#

it looks like discord is running rpc ipc in the renderer process

topaz thistle
# real flower the virtmic binary

Hi, I'm the maintainer of rohrkabel, I noticed that you guys are trying to implement screenshare-audio support to vencord through rohrkabel and seeing that you're reusing some of the code from discord-screenaudio (which isn't all that optimal) and planning to do implement the thing by spawning a child-process I'd be open to offer some help to build a more sophisticated implementatiom that doesn't depend on spawning a child process

let me know if you'd be interested on working on this together

topaz thistle
#

Anyways, if you need help with the native implementation of the thing, feel free to hit me up ^^

real flower
topaz thistle
#

Maybe a plugin that gets installed by default on linux, also please don't use sub-processes to manage that - imho it would be insecure and somewhat of a code-smell

real flower
#

I'm gonna look into making it a plugin at some point once it's working and stable

topaz thistle
#

If you'd be open for it I'd suggest an FFI Approach instead of sub-processes

#

A node-addon would probably be even better

real flower
#

heh

#

that was the first idea

#

v dropped it pretty quick (I'm new to a lot of this so I don't really understand it all a bunch)

topaz thistle
#

Foreign Function Interface

topaz thistle
#

Yeah normal node-addons are not the best approach considering that pulling dependencies in is cumbersome and node-gyp is... well node-gyp.

But I think cmake-js could be worth a try, because if it works properly that would definitely be better than a sub-process

elder depot
#

is it possible to disable noise suppression and echo cancelation on the voice message plugin?

topaz thistle
#

Someone on the Soundux discord once claimed that some form of noise-suppression and echo cancelation may be applied server side

#

(If I remember correctly)

elder depot
#

ahh I see, good thing to know. thanks!

austere talon
#

but i couldn't figure out the threading stuff

topaz thistle
#

If you don't mind I can take care of that

austere talon
#

so as far as I understood, killing threads from a different thread is not possible, instead you're supposed to set an atomic variable that the thread regularly checks

however, the pw main loop blocks forever, so how would the pw thread regularly check the variable?

topaz thistle
#

rohrkabel supports channels, you would send a please-exit message to the main-channel and exit from there

austere talon
#

oh huh

topaz thistle
#

There is a threaded example in the rohrkabel repo

austere talon
#

I tried storing the main loop in a variable and then calling quit on it from the other thread

topaz thistle
#

Don't do that

austere talon
#

but i only got segfaults lmao

topaz thistle
#

Pipewire is not thread safe

austere talon
#

yeah that's probably why

#

i have basically no C++ experience, especially not in the threading department 😅

#

I basically just wrote code and googled a bunch to find solutions

topaz thistle
#

I can write a native-addon for creating a virtmic and so on - then you'd only need to call it from TS/JS

#

I'd probably have some time next week, I'll post a github link when I start ^^

austere talon
#

like i said I already had the native addon and it worked, the only issue was stopping it again

topaz thistle
austere talon
topaz thistle
#

Yeah I saw that ^^ You'd need to cover a few more edge-cases, maybe I'll just submit a PR to the repo and make it a node-addon

austere talon
#

that'd be really nice!

#

you need a different implementation for discord desktop and discord web

#

also remember that web by default has absolutely no screen share picker inside discord, so there is not really a good way to even present the audio picker on it

vesktop adds its own picker that also allows you to customise quality and fps (another thing you can't do on web normally), and we just added the audio picker there

however i do have plans to eventually port the vesktop picker to web so web can also use full quality and audio (though you'll have to run some virt-mic binary yourself)

then on desktop you'd need to patch DiscordNative a bit

#

so basically three different implementations

topaz thistle
#

however i do have plans to eventually port the vesktop picker to web so web can also use full quality and audio (though you'll have to run some virt-mic binary yourself)

This would require some sort of server mode, we could easily add that into the node-addon as well, basically allowing you to choose which "wrapper" you'd want to compile, the core code will be the same.

The node-addon would require exposing "c" functions and the standalone binary would just use some http-framework

austere talon
austere talon
austere talon
topaz thistle
topaz thistle
austere talon
topaz thistle
austere talon
#

ohh that's how you meant it

#

I thought you meant the native node addon would spawn the server

#

yeah that's fine lol

#

what library do people use, uwebsockets?

elder depot
topaz thistle
austere talon
#

ig

#

idk why i was thinking so much of websockets

#

been working with too many things requiring websockets

#

you're right just a plain server would suffice

topaz thistle
austere talon
#

there's an upload file button

#

you can just send the raw audio file as voice message

elder depot
austere talon
#

anyway yeah that sounds great

charred monolithBOT
topaz thistle
#

I'll get to it next week (In case UNI doesn't fuck me too hard)

real flower
#

:D

austere talon
#

oh you're friends with nico

topaz thistle
#

yes, we're roommates ^^

austere talon
#

oh damn

#

that's cool

topaz thistle
#

Just curious: Does the current screen-audio work by feeding two audio-inputs into discords voice-system?

real flower
#

nope
the audio from the virtmic is directly fed into the stream
through monkey patching the navigator.mediaDevices.getDisplayMedia function

topaz thistle
#

Ah alright, would it be theoretically possible to feed audio into discords voice-system without having noise-supression et al applied to it? (Not talking about screenshare here)

austere talon
#

it queries the virt mic via getUserMedia, then adds its audio tracks to the normal screenshare track

real flower
#

that

austere talon
#

idk if there's even any noise suppression

#

you tell me

real flower
#

brb class

austere talon
#

if there is, we can likely disable it

topaz thistle
#

I'm not thinking about the screenshare audio track here but the normal microphone audio

#

or could you share arbitrary audio through the screenshare audio track without even streaming anything?

austere talon
#

yes

#

should be possible

#

on web

#

idk about desktop but maybe?

topaz thistle
#

Okay that's amazing that would mean I could write a plugin that integrates with Soundux to improve the soundboard audio quality

charred monolithBOT
topaz thistle
#

I may come back to this sometime and ask you out about some things if you don't mind ^^

austere talon
#

oh you would like to play audio alongside discords normal voice audio?

#

on web yes, there's a vencord plugin for free soundboard that does that

on desktop no not possible (most likely)

topaz thistle
#

Well we currently do that already by simply feeding our soundboard audio into the system microphone but that can sometimes degrade audio quality due to noise supression and so on, but I was thinking maybe we could use the screen-share audio track to feed sounds into it without the user actually streaming

austere talon
#

I don't think so

topaz thistle
#

Ah, too bad

austere talon
#

i think screenshare is a different connection

topaz thistle
#

Thanks for the insight though ^^

austere talon
#

you know how you gotta click watch stream

topaz thistle
#

Oh true I forgot that for a second

austere talon
#

and the Media engine store has two connections if you're streaming

topaz thistle
#

Maybe we could have a plugin that just temporarily disables all audio processing features of the client while the soundboard is used

austere talon
#

it highly depends on whether you want to target web or desktop

web uses normal webrtc where you can definitely do stuff like this from plain js

desktop uses discords native module discord_voice, I don't think you can do things like this via it, if anything you'd have to like patch the native addon

topaz thistle
#

We'd probably target desktop for that

#

Well maybe I'll dig into it at some point but for now the solution we have is good enough as it's just how a normal soundboard works, would just be nice to have something that can prevent some audio-processing on discords part to increase the audio quality

austere talon
#

well you probably know about discords own soundboard

#

what they do is send a request for it, that then dispatches it to all users in voice and it locally plays the audio for all of them

#

obv you can't do that, but maybe if you don't need too many soundboard invocations you could make it automatically upload the sounds to a server and use them that way

topaz thistle
#

Hm, probably but that's way too much effort just for a little improvement

real flower
#

or none

charred monolithBOT
real flower
#

i accidentally ran into that a few times while testing

#

black screen but audio worked

charred monolithBOT
nimble plaza
#

(unrelated to above i just remembered something i want to do) nvm too confusing bonk

austere talon
#

what'd u wanna do

nimble plaza
#

try to setup a homebrew cask

#

the updater for macos is fucky

austere talon
#

fucky?

#

how

nimble plaza
#

it just redownloades the .app

#

ideally it would either replace itself or download the .dmg

tawny cipher
#

does electron not support sparkle

nimble plaza
#

wtf is sparkle

#

no it doesnt

#

Electron already integrates with an auto-updater, namely Squirrel.
You can read more about it here: master/docs/api/auto-updater.md
pureagony

tawny cipher
#

yikes

nimble plaza
#

yeah reading more into that, nope

austere talon
#

auto update doesn't work without signing

austere talon
#

.app is a folder

#

how do you download a folder

nimble plaza
#

i mean

#

.app.zip

#

but macos automatically unzips

austere talon
#

wha

#

it should download dmg

#

oh yeah

#

for some reason this does zip

#

idk why, it should do dmg

#

just change that code to download dmg instead

tawny cipher
nimble plaza
#

it just gets the first

#

appears before

#

also the dmg doesnt match that find at all

tawny cipher
#

downloading dmgs would be a bad update flow anyway so that's good

nimble plaza
#

how ?

tawny cipher
#

it should just replace itself like other apps do

nimble plaza
#

oh yeah

#

thats what i said, i meant we should change it to download dmg only if replacing self isnt feasable

austere talon
#

so do it

charred monolithBOT
real flower
#

okay my uh

#

my fork

#

branch wayland-fixes
uses electron 26.2.3

#

but

#

it has working screensharing with audio under wayland

#

s O

charred monolithBOT
real flower
#

last thing required for proper wayland support stare

#

i need to figure out how to not call getlargethumbnail

#

oh god tf happened now

nocturne haven
#

Either !isWayland && ... or use logical isWayland || ...

real flower
#

oHH YEAH

austere talon
#

isWayland ? Promise.resolve(source.url) : VesktopNative...

real flower
#

o HSDHGHJKLHJKLFG

real flower
#

hmm i think its because the getthumbnail is goin wacky

charred monolithBOT
real flower
#

even without the changes

#

lemme check something

real flower
#

i broke something somewhere

#

time to compare

#

okay i made it better

#

i have to define this in main

#

but get that info to renderer

#

oh i have idea

charred monolithBOT
real flower
#

i just need to pass isWayland in somehow

glass cedar
real flower
#

no need

#

skipPicker is the same boolean

real flower
#

i just need to get it out of this function

#

and in here

#

and then i can use it for isWayland

#

(i am not very good at typescript)

austere talon
#

just use the skipPicker variable silly

real flower
#

its not accessible in that scope

#

i just kinda goobered it

#

and now isWayland is accessible

#

now it only asks 2 times on wayland

#

once for thumbnail

#

once for screen

#

that's a bit better

lime stone
#

are you using an adwaita theme?

real flower
#

shhhhh

#

maybe,,,,

#

why

#

how could you

#

tell

austere talon
#

don't make it global

real flower
#

its still only within the function openScreenSharePicker

#

i have to get it out somehow

austere talon
#

yes so you pass it as an argument to the other function

real flower
#

OH

#

i think i understand?

real flower
austere talon
#

?

#

you just pass it along functions

real flower
#

what

#

(i am so dumb dont kill me pls)

austere talon
#

you should learn better js first if you're struggling with that

real flower
#

i bARELY KNOW ANYSFHGJSDHJGFSGHJKDF

real flower
austere talon
#

upgrade ur website

#

make a cute webgame

real flower
#

none of those have any meaning tho

austere talon
#

just make anything that teaches u the basics

#

how does making a pretty website have no meaning

real flower
#

i like it how it is

austere talon
#

you can use it to express yourself

real flower
#

i dont want any more

#

that IS an expression of myself

#

lmao

austere talon
#

anyway while I understand not feeling as great making something that's "meaningless", with that mentality you won't get far

#

sometimes u just gotta do something ultimately meaningless to improve

real flower
#

i know its just like

#

really really really hard

austere talon
#

is it really meaningless if it helps you become better :3

#

I made so many fucking useless discord bots and other garbage noone ever used

#

now look where I am now

#

people actually use my shit

real flower
#

if im not solving a problem i dont really know why im doing stuff and then my depression kicks me off the table and i explode

lime stone
#

you used to make garbage that nobody used, you now make garbage that people use

austere talon
#

real

real flower
#

sorry im complaining, i dont mean to be annoying

austere talon
#

you're not

austere talon
#

where something is missing

real flower
#

there really isnt
at least nothing i can notice (life is a LOT worse than anything else ive experienced)

austere talon
#

for example when I was using linux i was annoyed that there wasn't any good application launcher that was like I wanted it so i just wrote my own

#

noone but me ever used it but hey it served its purpose

real flower
#

i understand that but like genuinely i havent been annoyed with anything

#

this was the first time

#

hence why i

#

acted on it

austere talon
#

this is why you don't use gnome

#

things just work that's so boring

real flower
#

i used to use xfce

#

and before that, i3

#

i got tired of setting up a config every time i reinstalled linux

austere talon
#

life is only fun if you make it unnecessarily hard on yourself by using some garbage like i3 or dwm

#

/hj

austere talon
real flower
#

i get that but im gonna be honest
life is way too much for me to create problems for myself
i have far too much stress to be able to handle creating problems
like if i come home and my pc doesnt work i just go to bed

austere talon
#

catfrown 😔

real flower
austere talon
#

CLOUD CONFIG

real flower
#

WITH WHAT SERVER

austere talon
#

WRITE WRITE WRITE

#

GET A SERVER

real flower
#

MINE IS SLOW AS SHIT

#

LMAO

real flower
austere talon
#

turn your old phone into a server bitch

real flower
#

AS IS ILL BARELY HAVE ENOUGH TO MOVE OUT LMAO

austere talon
#

I genuinely use my old phone as a home server

real flower
austere talon
#

listen

real flower
#

neither are able to be powered on

austere talon
#

my old phone has no home button, the entire screen is purple

#

but it works as a server

real flower
#

how the fuck did you access it

#

i cant even turn it on because the screen is M I S S I NG

#

it wont power on

austere talon
#

i used it in that state for half a year lol

real flower
real flower
#

or just

#

move it to the next without it escaping the first

#

because i did a LOT of research on that a bit ago

#

and almost everything involves either a return value or a global variable

#

every post/docs page ive seen

mortal fractal
tame escarp
#

leech servers from oracle trollformation

real flower
#

(technically i have a server it just sort of barely functions)

mortal fractal
real flower
real flower
mortal fractal
#

could be wrong

real flower
#

just get an always free server with like 24gb ram

tame escarp
#

ran out of banks? commit identity fraud and get more credits cards from all the same banks!

real flower
real flower
austere talon
real flower
#

cuz i cant return

austere talon
#

I just used my mums cc

#

yes I don't have a cc

real flower
#

how

austere talon
#

why would i have one

real flower
#

you're like old or something lmao

austere talon
#

i have a debit card & paypal

real flower
#

uSE your debit

#

that's what i did

austere talon
#

they don't accept it

real flower
#

the FUCK

austere talon
#

they only accept credit cards

real flower
#

nO??

#

they took my debit

austere talon
#

so u have an oracle vps

#

why did u say ur server is bad 😭

#

oracle vps are crazy

#

the entire vencord infrastructure runs on oracle cloud

real flower
#

whAT

real flower
#

the oracle one isnt but i dont use it

austere talon
#

huh why not

real flower
#

it just hasnt been turned off in months

#

idk tbh

#

i dont feel like moving all of my infrastructure

austere talon
real flower
#

cuz like uhhh

#

id have to move all of this

#

i do NOT have the energy for that

#

although my SearXNG server would take less than 30s to search which would be nice

austere talon
nimble pendantBOT
austere talon
#

jumpscare

real flower
#

wtf

#

did it

#

send the neofetch

austere talon
#

ve require("child_process").execSync("neofetch --off", "utf-8").toString("utf-8")

nimble pendantBOT
# austere talon ve require("child_process").execSync("neofetch --off", "utf-8").toString("utf-8"...
'\x1B[?25l\x1B[?7l\x1B[0m\x1B[1m\x1B[31m\x1B[1mvendy\x1B[0m@\x1B[31m\x1B[1mvendymachine\x1B[0m \n' +
  '\x1B[0m------------------\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mOS\x1B[0m\x1B[0m:\x1B[0m Oracle Linux Server 8.8 aarch64\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mHost\x1B[0m\x1B[0m:\x1B[0m KVM Virtual Machine virt-4.2\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mKernel\x1B[0m\x1B[0m:\x1B[0m 5.4.17-2136.321.4.1.el8uek.aarch64\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mUptime\x1B[0m\x1B[0m:\x1B[0m 47 days, 21 hours, 7 mins\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mPackages\x1B[0m\x1B[0m:\x1B[0m 1043 (rpm)\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mShell\x1B[0m\x1B[0m:\x1B[0m zsh 5.5.1\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mResolution\x1B[0m\x1B[0m:\x1B[0m 1024x768\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mTerminal\x1B[0m\x1B[0m:\x1B[0m /dev/pts/3\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mCPU\x1B[0m\x1B[0m:\x1B[0m (4)\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mGPU\x1B[0m\x1B[0m:\x1B[0m 00:01.0 Red Hat, Inc. Virtio GPU\x1B[0m \n' +
  '\x1B[0m\x1B[31m\x1B[1mMemory\x1B[0m\x1B[0m:\x1B[0m 7805MiB / 23366MiB\x1B[0m \n' +
  '\n' +
  '\x1B[C\x1B[30m\x1B[40m   \x1B[31m\x1B[41m   \x1B[32m\x1B[42m   \x1B[33m\x1B[43m   \x1B[34m\x1B[44m   \x1B[35m\x1B[45m   \x1B[36m\x1B[46m   \x1B[37m\x1B[47m   \x1B[m\n' +
  '\x1B[C\x1B[38;5;8m\x1B[48;5;8m   \x1B[38;5;9m\x1B[48;5;9m   \x1B[38;5;10m\x1B[48;5;10m   \x1B[38;5;11m\x1B[48;5;11m   \x1B[38;5;12m\x1B[48;5;12m   \x1B[38;5;13m\x1B[48;5;13m   \x1B[38;5;14m\x1B[48;5;14m   \x1B[38;5;15m\x1B[48;5;15m   \x1B[m\n' +
  '\n' +
  '\n' +
  '\x1B[?25h\x1B[?7h'```
real flower
#

as bytecode

austere talon
#

LOL

real flower
#

omg

austere talon
#

amazing

real flower
#

my actual server

tame escarp
#

amd athlon ii is crazy

real flower
#

yk what

#

its staying as a global variable for now

#

im fixing something else until i figure it out

austere talon
#

ve require("child_process").execSync("neofetch --off --stdout").toString("utf-8")

nimble pendantBOT
# austere talon ve require("child_process").execSync("neofetch --off --stdout").toString("utf-8"...
'vendy@vendymachine \n' +
  '------------------ \n' +
  'OS: Oracle Linux Server 8.8 aarch64 \n' +
  'Host: KVM Virtual Machine virt-4.2 \n' +
  'Kernel: 5.4.17-2136.321.4.1.el8uek.aarch64 \n' +
  'Uptime: 47 days, 21 hours, 9 mins \n' +
  'Packages: 1043 (rpm) \n' +
  'Shell: zsh 5.5.1 \n' +
  'Resolution: 1024x768 \n' +
  'Terminal: /dev/pts/3 \n' +
  'CPU: (4) \n' +
  'GPU: 00:01.0 Red Hat, Inc. Virtio GPU \n' +
  'Memory: 7809MiB / 23366MiB \n' +
  '\n'```
austere talon
#

there you go

real flower
#

oh my fucking god

#

it was

#

that easy

#

i just got it

#

oh

#

my

#

fucking

#

god

austere talon
#

mantika running java programs again or smth

real flower
#

THE ONLY REASON THIS WAS CRAZY GOOBLER

mortal fractal
real flower
#

WAS BECAUSE I NEEDED TO ADD IT HERE

#

ASIKJLDH ASJKLFHLKJSDKLHJFHSJKLHDF

austere talon
real flower
#

im gonna explode

#

aLRIGHT

charred monolithBOT
real flower
#

now i just need to pass the first screenshare portal data into the stream

#

so it doesnt ask again

austere talon
#

btw I realised u can get genuine fumos for ~60€ (including shipping) now without even needing a proxy

#

i shall cop one

mortal fractal
#

i dont really want to get into it again for like the 20th time just for my own sanity

austere talon
#

dw

real flower
#

okay

#

code should be formatted with eslint and prettier

#

only 2 portals on wayland now

#

on my wayland-fixes branch

mortal fractal
#

i think the simplest explanation is i cant really do online banking cause i dont have a phone number and dont want to leech someone elses

real flower
#

working on making that 1

mortal fractal
#

irl side of things can just be left a mystery where it belongs

real flower
#

fair enough

#

oh my god

#

im still trying to make all of my drives btrfs

#

MY HARD DRIVES ARE SO SLOW WTFFFF

#

AAAAAAAAAAAAA

charred monolithBOT
crude hearth
#

@austere talon apply patch

#

ven

#

VEN

#

HELLO

#

you will die

austere talon
#

hi

crude hearth
#

ply patch

#

@austere talon I am about to break several laws

#

I can no longer manage my anger

#

Soon

#

NO

#

Who are you

#

Spam vens dms

#

Pipe bomb ven

charred monolithBOT
vivid bay
#

are there any plans for plugins without recompiling? or is this even possible?

#

i just recently switched to vencord and the only problem i have is not being able to edit plugins without recompiling over and over again

#

i understand that vencord modifies the webpack components instead of injecting afterward, so there won't be any hot reloading or anything, but just being able to restart vencord instead of recompiling and installing

austere talon
#

why

#

just pnpm watch

vivid bay
#

or do i have to pull from the main repo every time there is an update

austere talon
#

the updater still works if you follow instructions correctly

vivid bay
#

so it won't override user added 3rd party plugins

dire thicket
#

would a single-click reset server profile be possible

#

it'd be really useful for us

charred monolithBOT
teal halo
#

technically speaking yes

#

pronouns need a separate request but thats a detail

#

but i don't think a lot of people would use that

jagged cloak
#

server profile is a seperate request from server avatar and nick

#

so doing two requests is very possible lol

#

3 if you implement their refresh thing they do when you press save (better just use their function lol)

teal halo
#

nah thats fucked up

#

goofy api

#

just set allat to null and boom tho

royal bane
#

aa

median rapids
#

you can send them there and it works

#

definitely do not try that on a bot

teal halo
median rapids
#

they separated member/user objects and profiles in what's quite possibly the shittiest way possible

#

it is what it is

teal halo
#

mfw %40 and @

median rapids
#

yea i swear they just randomly choose whether to encode a url

austere talon
#

can bots set pronouns that way

median rapids
austere talon
#

give me node fetch code

#

im lazy

median rapids
#

you cant fetch bot api from a browser

austere talon
#

?

#

wdym

median rapids
#

bot token + browser ua = cf firewall block

austere talon
#

?

#

where correlation

median rapids
#

?

#

anyway yeah it does just work lol

real flower
#

oracle really hypes themselves up

median rapids
#

UNBREAKABLE ENTERPRISE KERNEL

real flower
#

ITS SO FUCKING FUNNY

#

UNBREAKABLE

#

(me with a hammer)

#

GET THIS

#

THATS A REPO NOT A PACKAGE

austere talon
#

so via PATCH /guilds/{guild.id}/members/<@&1027248917756268596>?

#

god i hate that role

alpine acorn
#

LMAOOOO

real flower
#

who the hell has <@&1027248917756268596>

alpine acorn
#

me

austere talon
#

the person who just LMAOOOOd

real flower
#

jUST you?

alpine acorn
#

just me

real flower
#

LMAO

alpine acorn
#

i said you could change it lol

austere talon
#

why do u even have that role

#

i dont reemember

alpine acorn
#

the uuuh

jagged cloak
#

the uuh

alpine acorn
#

that one web game where the target score was 700 something

median rapids
# austere talon where correlation

oh i just realized i completely missed the word node lol

fetch("https://canary.discord.com/api/v9/guilds/1015060230222131221/members/@me", {
  headers: {
    accept: "*/*",
    authorization: "Bot balls",
    "content-type": "application/json",
  },
  body: '{"pronouns": "gnarp gnap"}',
  method: "PATCH"
});
alpine acorn
#

this was like last year ish

austere talon
#

so it is patch

jagged cloak
#

not the silly zerebos game

austere talon
#

i tried with oceanic but

median rapids
#

it is yea

austere talon
#

they pick the nick only

#

so bad

#

oceanic SUCKS!!!!!!!

median rapids
#

raw req!!

austere talon
#

lol it worked

#

discord moment

jagged cloak
#

discord moment

median rapids
#

you doubted me? 🥺

austere talon
#

also why tf did that res have cookies

#

dont tell me i have to reset token

median rapids
#

nah

#

cookies are harmless

#

the journey pronouns went through to end up like this is really funny

austere talon
#

can u do the same in the user update

#

or nah

median rapids
#

nah unfortunately

austere talon
#

💔

median rapids
#

the <@&1027248917756268596> ep is special cased for bots

#

to only support username/avatar

austere talon
#

silly

#

omw to make my bot set pronouns on guild add

median rapids
#

do

#

you love this

austere talon
#

cope

median rapids
#

i will cry

frail skyBOT
#
Bad Patches

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 626298
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

Bad Starts

Party mode 🎉:
w0.__getLocalVars is not a function

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
#
Bad Patches

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

BetterRoleDot (had no effect):
ID: 461884
Match: /"dot"===\i/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 626298
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

Bad Starts

Party mode 🎉:
w0.__getLocalVars is not a function

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
broken pasture
#

what's an easy way to get my own discord id in the plugin's start() function?

charred monolithBOT
austere talon
#

UserStore

broken pasture
#

noob question but how do it get that? is it thought the global Vencord variable?

#

nvm found it import { UserStore } from "@webpack/common";

#

follow-up question, is there an easy way to get the userstore in the discord console to mess around with? using import() doesn't seem to work

nimble plaza
#

Vencord.Webpack.common

charred monolithBOT
spark cove
#

which is a typescript thing

olive aurora
#

it wouldn't work at all because the code is already bundled

#

silly vap

spark cove
#

i was gonna say that when they responded

#

: (

dire thicket
charred monolithBOT
jagged cloak
#

yes

charred monolithBOT
charred monolithBOT
verbal pumice
#

jumpscare

turbid hatch
#

@limber skiff for consistency make sure to close them as not planned and lock them

limber skiff
#

kk

lime stone
#

yeah, i use close as not planned for anything that's invalid too

charred monolithBOT
nimble plaza
#

if i disable this will i still get the webpackmoduleblablabla sourcemaps

#

i dont want devtools to spam console with failed to load sourcemap

austere talon
#

that's vencord created modules

real flower
#

devtools already spams my console LMAO

nimble plaza
#

yeah i mean

austere talon
#

you will lose vencord sourcemaps though

nimble plaza
#

it uses sourcemaps to display them no?

#

okay

austere talon
#

no

#

it doesn't

#

they show separately because we eval them as a new source

#

it doesn't rely on sourcemaps

nimble plaza
#

OHHHHHHHHHHH

#

tysm

real flower
#

doES SUPPORT HAVE A role requirement

austere talon
#

nah

#

<@&1088566810976194693>

real flower
#

oh LMAO

austere talon
#

makes you unable to type anywhere but support

#

for dumbasses like this

real flower
#

HAHAHA

#

HAHAHAHAHAHAHA

#

THATS AMAZING

#

ohh support is goobered because of people going WAAAH CLOUDFLARE

stark axle
#

owo its back

charred monolithBOT
nimble plaza
#

who up forking they vesktop 😂 🤣 😹

real flower
#

they better pr something good

austere talon
#

95% of forkers never pr

charred monolithBOT
austere talon
#

idk if using beta is a good idea

real flower
#

idk either

#

I'd like to but it's probably cause edge case issues

rain shard
#

kde wayland is just shit

charred monolithBOT
teal halo
charred monolithBOT
real flower
rain shard
charred monolithBOT
nimble plaza
charred monolithBOT
charred monolithBOT
#

Doesn't work on wayland, the XDG portal window picker opens just fine and allows to select a window but then the vencord picker is empty:
image

In addition, pipewire seems to error after selecting something in the portal picker: 'loop->recurse > 0' failed at ../pipewire/src/pipewire/thread-loop.c:426 pw_thread_loop_wait()

(Tested both on Hyprland 0.30.0 and GNOME 44.4)

turbid hatch
#

yes

lime stone
#

yes

charred monolithBOT
charred monolithBOT
charred monolithBOT
#

Since it wasn't really updated, I've made a flatpak https://github.com/MiMillieuh/vesktop-flatpak

It has desktop and hopefully all it need to work.

You just need flatpak builder to build it by running build.sh in the folder

As for updates, you have to edit the metainfo file with changelogs and version and the yml with the current version and url to the appimage (it's built from the appimage version so as long as the appimage version exists it should work)

nimble plaza
#

kills

charred monolithBOT
nimble plaza
#

i thought atleast lewi was against it?

charred monolithBOT
austere talon
#

but their flatpak has a lot of issues

charred monolithBOT
rocky grotto
#

just bumping this lmao

lime stone
#

lol

rocky grotto
#

would help me and the guys out over at bo3 mod tools

charred monolithBOT
austere talon
#

oh my fucking god

lime stone
#

can you make the font 500px and red

#

that might work

mortal fractal
#

at least h1 it

#

tbh i really dont think this is a vencord bug as is

lime stone
#

you'd need to have a redirect page

#

github surely doesn't let you do that

#

pretty sure it's plain text

mortal fractal
#

yes

#

contact_links in config.yml

#

oh we already have them

austere talon
charred monolithBOT
patent flint
lime stone
teal halo
#

iq test niko_amazed

nocturne haven
#

Put a math question

real flower
#

make them solve a quaternion

woeful sable
#

1 + 4

  • 2
  • 6
  • 12
real flower
#

i pick

#

D: 37.823

lime stone
real flower
#

yes

lime stone
#

i am very good at webdev

real flower
#

that could use some css

#

some more css i mean

lime stone
#

it does use css

real flower
#

actually

#

no

#

the fact that it clashes so much

#

scares people into paying attention

lime stone
#

WHAT? it's beautiful

real flower
#

fucking cloudflare

lime stone
#

Invalid SSL certificate

#

:content:

real flower
#

ITS ANNOYING I HAVE TO MANUALLY RENEW THEM

lime stone
#

where is this emote from?

real flower
#

autorenew isnt working

lime stone
#

perfect

real flower
#

i have no idea what is up with my site rn

charred monolithBOT
lime stone
#

DanTDM

forest lava
#

lmao

woeful sable
#

beautiful

lime stone
#

regarding PermissionFreeWill

  • maybe the plugin could, maybe in future, have a way to bypass the "pretty sure you don't want this" by pressing a button every time
  • the patches look like they might break easily?
mortal fractal
#

they changed something with webpack on latest canary

shy veldt
mortal fractal
#

yeah neither does hh without double patching modules breaking everything

austere talon
half notch
#

jumpscared by default dark mode

#

yeah canary brokey