#π₯-vesktop-development
1 messages Β· Page 35 of 1
chatgpt hallucinating
how
just because they're distributing it via the api doesnt mean you can use it in your app π
yeah that one ofc
oh yeah it's the same one https://discord.com/assets/7ba7fcf2c4710bb7.webm
playing this crashed my discord
old ass rn build moment
we should just not add it at all and users can figure it out themselves 
we dont wanna become lightcord 2
lightcord got dmca from discord cause they used their logo on their website lol
blows you up big and round
and once u got dmca it's like "damn what else might be infringing, we better remove anything that could be"
so I'd just preferably make sure nothing we do is potentially illegal in any way
we can just put it in the wiki
rewrite from scratch
they're all not really proper
like way too specific
I'm gonna make a generic implementation that also copies the chosen file to the vesktop cache dir so users won't put it somewhere where it gets deleted
i think this one would be kinda funny but I have to figure out who made it and if it's okay to use
also it's not a proper loop, have to fix that 
did you see this
should I pr the fix to electron
oh yeah also did u consider pring this to electron? Vencord/Vesktop#686
how do u even pr to electron do you have to build chromium from source 
need to buy a 9950X3D
i have a local branch with it working but puttered out when I looked at getting it merged π
same with linux accent access
took my r9 4900h like a day π
lmfao
i def didn't do it up to their standards and I was getting sick of building chromium
tbh even if it's not good enough still pr just to get the ball rolling
the cache would break/invalidate every few days
we need like distributed chromium build cache
ACTUALLY REAL
some tool that rsyncs build cache from some google server
SOOO UGLYYY
i thought I responded πmaybe you could get away with a simple find and replace and not even need to build electron
wait electron uses github runners right
yeah
fork commit and run the action on the fork
could just build on github
yea
you're a hater
horrible freeze in the middle
theres no sauce
!!!!
no flavour
cookie doesnt read anything i say...

maybe this is more to your liking
horrible thought just entered my mind
it might be a chromium internal that runs the xdg command
no it's electron
u sure?
get a caitlyn edit
maybe just email Ubuntu
tell them to back port the fix
i bet no one has mentioned it
it's one single line change π
electron takes forever to tag
ig Ubuntu might take forever too since it's so minor
god I hate electron
horrible horrible
electron is nice until it isn't
So, I guess a little bit of an update, chromium upstream now defaults to wayland by default, this had been known that it would happen for a while now:
https://www.phoronix.com/news/Chromium-Ozone-Wayland-2025
And it seems with chromium 140 it already defaults the ozone platform to wayland.
This is chromium just installed from flathub, no configuration from my side:
<img width="1920" height="1080" alt="Image" src="https://github.com/user-attachments/assets/be3f0073-5a92-4f7e-ba7f-35afaee94d...
@alper-han Can I ask how you disabled some codecs with JavaScript in Vesktop?
That would be very much appreciated, especially with a notification badge! I have to use Doll in the meantime.
this behavior should be off by default
menu bar icon goes against macOS principles ykyk
Do you guys have any updates on this?
I have the same problem here on Equibop and Vesktop, using fedora 42, the mic quality is really bad.
Ive noticed that the switchers in noise-cancelling thingies doesn't work, and in official discord client everything works
not quite the same but i also use fractional scaling on wayland and had very fuzzy fonts until I added --enable-features=UseOzonePlatform --ozone-platform=wayland to the .desktop. I honestly don't know entirely what that does but it was recommended for VSCode which also uses electron so I gave it a shot here. Seems to have worked great for me so far.
not quite the same but i also use fractional scaling on wayland and had very fuzzy fonts until I added
--enable-features=UseOzonePlatform --ozone-platform=waylandto the .desktop.
That just enables native wayland on chromium/electron, and from that you only need --ozone-platform-hint=auto (I don't think this works on weston but weston has basically been relegated to being a car infotainment compositor so it doesn't matter.
20 billion comments about the same thing day after day
literally google "electron blurry Wayland"
not quite the same but i also use fractional scaling on wayland and had very fuzzy fonts until I added
--enable-features=UseOzonePlatform --ozone-platform=waylandto the .desktop.That just enables native wayland on chromium/electron, and from that you only need
--ozone-platform-hint=auto(I don't think this works on weston but weston has basically been relegated to being a car infotainment compositor so it doesn't matter.
It does seem like that has the same effect! thanks for p...
I've built an icon file (let me know if you find any mistakes!), but I don't exactly know how the build system for this project works so I wasn't able to make a PR.
All that needs to be done is bundle this Assets.car file into Resources and modify Info.plist to include:
<key>CFBundleIconName</key>
<string>icon</string>
The old icon.icns should not be updated with the new macOS 26 icon as users in older versions would likely prefer the old icon.
Here's the prebuilt Assets.car I made an...
Ah, I found these:
https://github.com/electron-userland/electron-builder/issues/9254
https://github.com/MultiboxLabs/flow-browser/pull/159
I'm going to try to make a PR using this workaround for now.
doesn't appear to work on COSMIC. or i can't find where cosmic shows the keybinds that this branch adds.
alpha DE
@SIGSTACKFAULT that is because cosmic does not yet support the global shortcuts portal
Content
building vencord is missing dependencys
[root@Poketcomputer Vesktop]# pnpm start
vesktop@1.5.8 start /home/defaultuser/Vesktop
pnpm build && electron .
vesktop@1.5.8 build /home/defaultuser/Vesktop
tsx scripts/build/build.mts
/home/defaultuser/Vesktop/node_modules/electron/dist/electron: error while loading shared libraries: libXcomposite.so.1: cannot open shared object file: No such file or directory
βELIFECYCLEβ Command failed.
im trying to build vencord on a xpe...
how does one even manage to not have this library
Firefox depends on it and almost every Linux distro comes with Firefox preinstalled
gtk also depends on it
how does bro not have gtk installed
omg it's a Linux phone π
that's crazy
WOKE
god forsaken app
it's beta now actually
Content
Electron had a performance regression regarding macOS 26 where it would increase WindowServer's CPU excessively due to a cornerMask API override it did causing problems. (See: https://github.com/electron/electron/issues/48311 https://github.com/electron/electron/pull/48376)
It has been fixed and merged to Electron versions:
- 39.0.0-alpha.7
- 38.2.0
- 37.6.0
- 36.9.2
The current Vesktop stable build uses Electron 37.2.0 (and I believe HEAD receives the patched version already bec...
@woeful current liquid ass being ass 
Apple moment
get to work
vee you have lost it
@vernal lintel, SHUT THE FUCK UP!
It's a bug alright - in the Vesktop. How long have you been a
maintainer? And you still haven't learnt the first rule of Vesktop
maintenance?
If a change results in Apple perfection breaking, it's a bug in the
Vesktop. We never EVER blame the Apple perfection. How hard can this be to
understand?
To make matters worse, commit f0ed2ce840b3 is clearly total and utter
CRAP even if it didn't break applications. ENOENT is not a valid error
return from an ioctl. Never has been, never will be. ENOENT means "No
such file and directory", and is for path operations. ioctl's are done
on files that have already been opened, there's no way in hell that
ENOENT would ever be valid.
We (I?) decided that we won't be using this one (as much as I love it) because it doesn't really convey the function/purpose of the app and isn't really neutral (i.e. something everyone would like having on their desktop)
https://github.com/wingio came up with this design instead, which I'm currently considering moving forward with
<img width="128" height="128" alt="image" src="https://github.com/user-attachments/assets/33e28b20-a0d1-48f7-b7a3-e49a3e2538e9" />
<img width="1130...
Honestly sounds like Apple should really test new releases more to ensure regressions like this don't happen. Even if this was due to Electron using a private api, breaking so many popular apps is never acceptable and should have been handled better by them.
Anyway we will make a new release some time soon. Affected users can just build from source for now
vee doesn't know that github has mentions
(im fine with being mentioned on gh bc it doesn't annoy me)
i deliberately sent link instead of mention so you don't get @d π
also is samara still here
if they left then i don't think i can tell them about the icon
no
@vernal lintel, SHUT THE FUCK UP!
It's a bug alright - in the Vesktop. How long have you been a
maintainer? And you still haven't learnt the first rule of Vesktop
maintenance?
If a change results in Apple perfection breaking, it's a bug in the
Vesktop. We never EVER blame the Apple perfection. How hard can this be to
understand?
To make matters worse, commit f0ed2ce840b3 is clearly total and utter
CRAP even if it didn't break applications. ENOENT is not a valid error
return from an ioctl. Never has been, never will be. ENOENT means "No
such file and directory", and is for path operations. ioctl's are done
on files that have already been opened, there's no way in hell that
ENOENT would ever be valid.
they used a private api they kinda deserved yk
fine
53da081 Add splash image customisation & change default... - Vendicated
Adds an API & UI for customisable assets. Only splash for now but can easily be extended to further types in the future (mainly tray for now)
Needs vencord: protocol whitelisted in Vencord CSP before it can be merged
https://github.com/user-attachments/assets/8596d847-daad-4ed7-9156-2c70e3e6acf4
yop
@vernal lintel want me to update this PR with the new svg or just close
I'll update tmrw if i dont forget
@topaz dove send me the svg please
was one for Mac made as well?
samara made one but i don't have the file
womp
is that the black on top or bottom
bottom
its the same one i sent in modchat
youre a hater
make a better default splash
@topaz dove what font did you use for the text? the same in the current server logo?
@vernal lintel dont listen to cookie
tux spin good
made a macos version @vernal lintel
i do feel like they need more pizzazz
maybe a shadow on the text and a highlight on the message bubble
did u see this
yehg but thats liquid ass
so one for the old style was needed too
ah
it looks so squishy like yumm
the shadow is there
ill kill you
find me an svg template for it
90kb
hortor
π
i love svgs with pngs in them
WONDERFUl
is that the png
yeag
surely that can be remade with svg
???what virus did u sneak in that 90kb @slim tartan my inkscape is bugging tf out
btw cookie ur pr removes icon from tray right
we're gonna have to add it back for customisable tray
no i just moved the file location
oh
its the same old vc
no i mean
u removed the explicit icon override
so it just uses the app icon
or am i going insane
yea
oh wait that was splash
thats not the tray thou
yeah okay
ur going insane
its okay
im a little tea pot short and spout
i know
im playing around with it
?
the smaller sizes are getting this white artifact
evil
there was a useless invisible path
you love figma
</3 the one im generating is 1/4th the size
horrifying unoptimized png
yum
i have glee in my heart
wtfhg vesktop spell check is broken againn
@vernal lintel fix
why is it so bad
illl kill u
native macos slop
how
gleep
didn't use one
how do we feel
i intentionally didn't add little flourishes
they become pretty much invisible at small sizes
couldn't find a place where we use it in a large size
its usually just an app or social icon
little flourishes likethat are def visible as social icons
480i monitor π
nop I'm on my phone
i can see it clear as day on my phone
the contrast is a little bad if i turn my phone brightness down tho
also i think the letters i made match the overall "bubbly" feel of the logo better
mh yeah
dont like it
did u send the same image twice
i like the changes to the V but im not sure about the grey
maybe rename the icon files
icon.ico -> icon-windows.ico
icon.icns -> icon-mac.icns
icon.svg -> icon-linux.svg
so it's clearer
could probably also drop the icon- prefix if its in an icons folder
works for me
is icon pr ready to merge? @humble mortar
we gonna keep the old tray icon?
i made a monochrome version of the new logo we can use
if we're gonna add macos tray it should be monochrome
on macos
add option ykyk
I like this icon very much but the mac icon that was provided in the recent changes feels very lackluster.
<img width="297" height="275" alt="image" src="https://github.com/user-attachments/assets/3ca42286-e842-4a2b-9d45-b35680077fdb" />
I decided to make one that should fit the feel and style of recent macos versions (Tahoe) while also having it feel appropriately for light/dark/glass appearances.
<img width="316" height="287" alt="image" src="https://github.com/user-attachments/ass...
does the more saturated pink not work as well?
does the more saturated pink not work as well?
@wingio you can be the judge of that
<img width="440" height="405" alt="image" src="https://github.com/user-attachments/assets/db55b704-4d11-497f-a933-71903257e91f" />
does the more saturated pink not work as well?
@wingio you can be the judge of that
<img width="440" height="405" alt="image" src="https://github.com/user-attachments/assets/db55b704-4d11-497f-a933-71903257e91f" />
i think that works
When it comes to the tray icon we can probably use some variation of wings icon but without the chat bubble
<img width="64" height="64" alt="tray" src="https://github.com/user-attachments/assets/e6f626eb-c7c3-490d-bac4-3aa9aef2531c" />
oh in the discord I posted a monochrome version
any would work, most importantly should be clearly recognizable within the tray
e3701ec use single eventemitter for whole app - Vendicated
Superseded by #1179 which implements this in a generic & extendable (and safer) way for both splash and tray images
Thanks for your work though!
@khcrysalis I made the icon currently included with the idea that it would be for older macos versions while yours would be for macos 26+ with the new format.
This file will also work on lower versions, just so people know.
If it does work for lower versions & it's okay for the liquid glass style icon to be used on older macos ill swap it
Can you update the VC path, I tweaked it in the latest push.
Also is the icns file you're sharing the right format? `electron-userland/electron-...
@topaz dove @vernal lintel
these are solid dark/light
do we want it like that or with the pink
heres what that looks like
i really hate how electron passes it as a bitmap
even if you specify a system path (it being a system path would allow themes to override the icon by providing an icon with the same name)
seems a big too big compared to the others? (maybe just an issue with ur desktop)
likely a combo of my icon theme and it being non symmetrical making it feel bigger
this is it with breeze icons & heroic/spotify
ill commit and push so u can try on ur system
erm memory leak if tray gets destroyed at some point
just move this to the top level outside of this function
why tf is the tray getting destroyed
if you toggle the setting
does it not need a restart
ill kill gnome devs with a hammer
yeah and it is invisible on light schemes
oh it has that shadow
still looks ass
what de are u on
plasma
breeze classic
could just make it pink
or add a shadow like discord does
.
we should make it default pink
and in settings be insane and provide an svg that gets recoloured
thats what i meant
https://www.electronjs.org/docs/latest/api/native-image#nativeimagecreatefromdataurldataurl
lol we could totally be insane and ship the tray as an svg and inject colours easily
Create tray, dock, and application icons using PNG or JPG files.
dont even need to do that
you can also do that for adding notification dot etc
guh just do in renderer
this or solid pink
this is good
way too much effort for an option 99% of people wont care for
make a variant with notification dot
speaking of that
eh nvm
i was gonna yap about the dot following the system accent
it's not that much effort...
i can do it if you want
electron doesnt have accent support on linux
true
cause chromium already fetches the accent
electron just doesnt expose it
i vibecoded it 
you are an evil being
see it worked
give me a hex code for the notification dot @vernal lintel
erm steal from discord ykyk
i hate their red
seethe
ok im picking one
actually if u dont wanna vibecode
we can yoink code from somewhere
horror image
it really isnt hard to implement
should we do this
no thats horribly evil and bad
how
just do the 3 line patch for electron
i already have a bazillion times
this looks so ass
@vernal lintel @vernal lintel @vernal lintel @vernal lintel
on macos are notif badges also monochrome @slim tartan
should macos tray even have a unread icon
yeah
i wont then
gub
if we want the macos unread icon to have colour it cant be a template
which then also means the macos tray icons would have to handle dark/light switching
yep
can u show macos in dark mode @slim tartan @slim tartan @slim tartan @slim tartan
the tray
the macos badge has the dot for unread
does the tray really need it
no itd need to be baked in
sucks that Templates cant have non black colours that dont change
the tauri video capture situation is so terrible
it'd be a pain in the ass
tauri will be good once the implement cef support 
real and true
i didnt vibecode this time
{
"targets": [
{
"target_name": "libvesktop",
"sources": [ "libvesktop.cc" ],
"include_dirs": [
"<!@(node -p \"require('node-addon-api').include\")"
],
"cflags": [
"<!(pkg-config --cflags dbus-1)"
],
"libraries": [
"<!(pkg-config --libs dbus-1)"
],
"dependencies": [
"<!(node -p \"require('node-addon-api').gyp\")"
],
"defines": [
"NODE_ADDON_API_CPP_EXCEPTIONS"
],
"cflags!": ["-fno-exceptions"],
"cflags_cc!": ["-fno-exceptions"]
}
]
}
idk if u need all that
I just adapted godot code lmao
it can read colours, ints and bools from dbus settings
u can strip everything else and assume everything but a valid 6 char hex is an error
why is it chonky
ur not compiling with optimizations
i like
i think it works
need to handle 3 billion errors tho
I love C style error handling
bool write_key_value(DBusMessageIter *dictIter, const char *key, const void *value, int type, const char *contained_signature)
{
DBusMessageIter variantIter;
if (!dbus_message_iter_open_container(dictIter, DBUS_TYPE_DICT_ENTRY, nullptr, &variantIter))
{
return false;
}
if (!dbus_message_iter_append_basic(&variantIter, DBUS_TYPE_STRING, &key))
{
dbus_message_iter_close_container(dictIter, &variantIter);
return false;
}
DBusMessageIter v;
if (!dbus_message_iter_open_container(&variantIter, DBUS_TYPE_VARIANT, contained_signature, &v))
{
dbus_message_iter_close_container(dictIter, &variantIter);
return false;
}
if (!dbus_message_iter_append_basic(&v, type, value))
{
dbus_message_iter_close_container(&variantIter, &v);
dbus_message_iter_close_container(dictIter, &variantIter);
return false;
}
if (!dbus_message_iter_close_container(&variantIter, &v))
{
dbus_message_iter_close_container(dictIter, &variantIter);
return false;
}
if (!dbus_message_iter_close_container(dictIter, &variantIter))
{
return false;
}
return true;
}
cleaner with C++
struct DBusIterScope
{
DBusMessageIter *parent;
DBusMessageIter iter;
bool open;
DBusIterScope(DBusMessageIter *p, int type, const char *sig = nullptr)
: parent(p), open(false)
{
if (dbus_message_iter_open_container(parent, type, sig, &iter))
{
open = true;
}
}
~DBusIterScope()
{
if (open)
{
dbus_message_iter_close_container(parent, &iter);
}
}
DBusMessageIter *get() { return &iter; }
operator bool() const { return open; }
};
bool write_key_value(DBusMessageIter *dictIter,
const char *key,
const void *value,
int type,
const char *contained_signature)
{
DBusIterScope entry(dictIter, DBUS_TYPE_DICT_ENTRY);
if (!entry)
return false;
if (!dbus_message_iter_append_basic(entry.get(), DBUS_TYPE_STRING, &key))
return false;
DBusIterScope variant(entry.get(), DBUS_TYPE_VARIANT, contained_signature);
if (!variant)
return false;
if (!dbus_message_iter_append_basic(variant.get(), type, value))
return false;
return true;
}
This adds a libvesktop C++ native node addon for dbus messaging. It uses gdbus because it's much saner than normal dbus and chromium depends on GTK anyway
Implements the following methods:
export function getAccentColor(): number;
export function requestBackground(autoStart: boolean, commandLine: string[]): boolean;
export function updateUnityLauncherEntry(count: number): boolean;
I haven't tested the requestBackground one but it should work probably. Also haven't hoo...
it uses gdbus afterall @humble mortar cause normal dbus is insane
you have to use dash to dock on gnome to get unity number lmao
not sure if we should always build the library as part of Vesktop or if we should just include prebuilds like we do for venmic
it builds fast but you need to have c++ build tools and glib2 devel installed
ad2363f remove redundant binding.gyp fields - Vendicated
vee forgot to change the icon back on his own pc
nah
I used Claude Sonnet 4 to clean it up
it came up with the smart pointer deleter stuff
i didnt forget 
erm maybe we should rename node-gyp to node-scam
ykyk
yop
lmaooo nodejs/node-gyp#2168
thread seems sane
they want to remove it but can't for historical and technical reasons
and they're moving away from it anyways
@khcrysalis I made the icon currently included with the idea that it would be for older macos versions while yours would be for macos 26+ with the new format.
This file will also work on lower versions, just so people know.
If it does work for lower versions & it's okay for the liquid glass style icon to be used on older macos ill swap it
Can you update the icon I tweaked the VC in the latest push.
Also is the icns file you're sharing the right format? `e...
tldr: There's no new format in terms of macos icons, but there's a new way to make them. We only need the end product for Vesktop.
i do also want to say that i don't like the speech bubble being outlined
in what logo
mostly i just think it looks worse but i also don't want the icon used on one operating system to be substantially different from the others
the one that was made for macos
the other one
i thought we would go with samaras
After a bit more research, we need to bundle an additional file containing some more icon assets that I've missed
Assets.car.zip
vc.icns.zip
i should see how gnome tweaks queries this
so we can have a proper isEnabled check that uses a portal instead of our own config bool (might be wrong if user manually disables autostart)
I'm confused doesn't this mean this code (from GNOME and canonical) is memory leaking
oh i missed this line
what does floating mean
god I hate manual memory management
https://docs.rs/glib/latest/glib/ soooooon
Rust GLib and GObject bindings
hop on cmake.js
.cc extension 
@vernal lintel unity count is int64 not int32
does the node module have to be built every time or is it like venmic
explain
doesn't the library already use int64
Also js can't even store numbers that big
and no one is ever gonna have more than that many notifications...
rn every time but we could publish to npm or just push prebuilds to the vesktop repo
although I'm kinda considering riir ngl
napi rs seems amazing
why is the hello world so chonky tho lmao
its taken in as 32 then gdbus casts it to 64 so nvm
also the api shouldn't be 0 as hidden
it should be null as hidden
so you just call gorp() to hide
and gorp(6263) to show
that's something that is annoying about electrons wrapping
badges can be negative 0 or positive it doesnt matter
0 makes sense as like an unread thingy
lots of things get bundled by default
having a native module for this stuff is so dumb
electron should just be better
yeah true
that's why i used -1 and 0
it can still display 0 and negatives
but we're not doing that
we could
and discord already has the option to disable the unread app badge if people dont like the 0
0 would look retarded
now the question is should we just push prebuilds to the vesktop repo or should we make a proper npm package for it
it's essentially the same
npm package just "hides" the binaries
do you mean upload libvesktop binaries to the repo?
if so 
i feel like building vesktop should also build the native modules
you will love having to install c++ compilers and glib headers just to run vesktop
venmic is already included as prebuild
evil...
you mean to build vesktop?
yes
yeah if you're building vesktop wanting a c++ compiler and glib headers is reasonable
no it isn't
you have lost it
we can just make it easy for people to build from source if it's so important
me when it's unreasonable to need c++ build tools to build a project that uses c++
i see no issue with providing native binaries, but building from source should be default
maybe some command/script to download the prebuilt binaries
that's worse
at least if the binaries are in the repo you can see that they haven't been changed
insane
if you will provide native binaries in the build, at least build with -ggdb3
wtf is that
debug info for gdb at level 3
why in the world would the release build include debug info
you're providing the binaries in the repo for people who just want to build vesktop from source without needing a c++ toolchain
or am i misunderstanding
@vernal lintel least insane hardcoded path
wait why not use giomm if you're using c++
b3eec63 add prebuilds + way to build from source - Vendicated
fbe3856 Discard changes to .vscode/settings.json - Vendicated
2118a06 Delete .vscode/c_cpp_properties.json - Vendicated
vscode does ts automatically
27f0770 handle error when loading binary gracefully - Vendicated
Pull Request Overview
This PR introduces a native C++ module libvesktop that enables D-Bus messaging for Linux systems, improving the integration of app badge notifications and system autostart functionality by replacing Electron's default mechanisms with D-Bus calls.
- Adds a C++ native addon using gdbus for D-Bus communication
- Replaces app badge counting with Unity launcher integration via D-Bus
- Implements autostart functionality using D-Bus Background portal with desktop file fa...
The TODO comment indicates a known circular dependency issue that should be resolved. Consider refactoring to use proper dependency injection or moving shared state to a separate module.
// Circular dependency fixed: shared state moved to separate module
import { State } from "./state";
function makeAutoStartLinuxPortal() {
return {
isEnabled: () => State.store.linuxAutoStartEnabled === true,
enable() {
if (requestBackground(true, process.argv)) ...
there are so many options bro I just used whatever worked
also maybe we could disable exceptions to make the binary smaller
the only thing using exceptions is the napi c++ wrapper but could just use normal C napi
one day I will fix it but not today
yeah but when you commit it, it's annoying when it changes
also i'd gitignore compile_commands.json as well (generated by things like cmake and bear
iirc it's such a pain to use the c napi
https://github.com/Vencord/Vesktop/blob/libvesktop/scripts/build/build.mts#L60-L64
If someone uses a local build for debugging, will it be in build/Release or something like build/Debug
build.mts: Lines 60-64
await copyFile(
"./packages/libvesktop/build/Release/vesktop.node",
`./static/dist/libvesktop-${process.arch}.node`
);
console.log("Using local libvesktop build");
no one is gonna run the entirety of vesktop in gdb
you can just make a basic js script for testing
husk
no reason to not also check debug build
Content
Hi, thank you for your great work on this project! π
I would like to request a new feature: multi-language support.
Adding localization would make the project more accessible for users worldwide, and it would also allow the community to contribute translations.
Suggestion:
- Implement a localization system (e.g., JSON,
.po, or.tsfiles). - Open the door for contributors to submit translations via Pull Requests.
This would be a valuable improvement and I believe...
@sly cairn would vesktop translations also be a part of translation v3
not initially
vesktop doesnt really have that much to translate regardless so it'd probs just use a simple system in comparison
they're probably meaning they want it for vencord
@humble mortar check out and test that pr if u have time, it's ready
yeah I can tmrw if i dont forget
also if you can I'd really prefer if it used prebuilt binaries
needing gcc/make and python as a dep of the aur packages would make me kms
it does yeah
oh real?
HUSK ITS IN TREE
I think the git package should build from source
it's not too difficult to do
well yea but the non git packages exist
just need build essentials and glib2.0 headers
yeah
i added a Dockerfile for building on oooold debian
these are all the deps u need (minus the aarch64 stuff, it's just for cross compiling arm64 binary, normal users won't need that)
curl??
curl is used right below for fetching node-source
the nodejs in the debian11 repos is like node10 lmao
so old that you get errors from npm

the error was so fucking confusing
the error was like "Unexpected token ?"
i thought it was coming from building c++ or smth
couldn't figure it out until I asked chatgpt and it immediately knew it was cause ancient nodejs trying to run optional chaining (nullable?.prop)
eh I didn't wanna bother making it a npm package
just more painful cause it decouples it from the repo and it would just copy the files from the node_modules folder anyway
pushing 100kb of binaries to the repo is fine, it's no different to storing pngs in the repo which we have mbs of
My C++ code had some memory leaks until I asked claude to clean it up
GLib / dbus is a fucking landmine, every method call returns an object you have to free
Did you strip out all the unneeded return handling
idk in nodejs it's kinda normal to ignore return values if you don't care about them
In C even if you don't care about the return value you still have to clean it up π
wdym?
do you mean the horror code I showed the other day of handling errors and freeing before return
I switched from dbus to gdbus so that's all gone
dbus is very low level, gdbus is a high level wrapper
accent only needs tuple double and its container handling everything else you can assume is an error
let me just look
the clamp shouldn't be needed
out of range (1-0) means its an error
it's a value between 0 and 1
the spec specifies out of range means you should discard and assume theres no accent
github mobile code review is so ass oh my god
BRAINROT
the wonderful !std::isfinite(v)
okay
how π
Authored-by: Copilot (ihatetheenvironment@github.com)
this lint rule is so troll
no it fucking can't cause esm doesn't support .node files π
you're too woke oomfie...
gosh I'm so sorry π
copilot didn't write shit in this pr but Claude cleaned it up for me β€οΈ
throw it in grok for a double check
π
actually it was in Copilot
these are ClaudeCode (actually yeah that's copilot)
but it makes a lot of sense
i forgot smart pointers existed but theyre sooooo good
can u tell i am bad at C++
@vernal lintel your brain is full of holes
they might not even work here if the gio api expects things to be freed by their methods
extra cleanup or wtv
that was the case with this variant
I cleaned it up myself and got really weird errors from glib
turns out g_variant_new returns a "floating" reference and _emit_signal cleans up the floating reference for you
xD
well youre passing the reference directly to it .. it'd expect it to handle it
what else is gonna happen
the mind of a typescript dev
i mean the doc said the caller has ownership of the data
I missed a single line in the doc that said it will clean up parameters for you
@vernal lintel throws you in the garbage collector
!!
this would all not have been a problem if I had just used glib C++ wrapper
but i didnt realise until sadan told me and now it's already written with the C methods
nobody has glib++ installed
wrapper for your wrapper
goes hard
erm it's part of gio https://gitlab.gnome.org/GNOME/glibmm/-/tree/master/gio/giomm
ask grok to convert it
why grok π
I doubt grok is good at code
if anything I'd ask Claude Sonnet 4

I get a bunch of free requests with gh copilot
We are building Grokipedia @xAI.
Will be a massive improvement over Wikipedia.
Frankly, it is a necessary step towards the xAI goal of understanding the Universe.
he is such a dweeb oh my god
grokking it on the grokipedia
omw to consume 1/3 of the power grid to run wikipedia thru grok to dewoke the articles
I'm going to kill myself in front of you with my last words being "stop using AI"
it can't do it
it doesn't know giomm
i tried a bit more but it just doesnt know
it's just like me
We need to do this for the Assets.:car: (https://github.com/electron-userland/electron-builder/issues/9254)
<img width="1318" height="717" alt="image" src="https://github.com/user-attachments/assets/a5ef646a-1e31-4461-b6ca-29b4b55bd0d7" />
I made the aforementioned changes but needs testing on Mac
@mild bone you will test:
git clone https://github.com/Covkie/Vesktop
cd Vesktop
git checkout feat/icons
pnpm i
pnpm package -c.mac.identity=null
should have working liquid ass icon
okay
working
anytime
im getting samara to modernise this screen
love
i have a horizontal version of the logo we can use in there
it works but for some reason the images inside the Assets.car file are overly compressed and thus look terrible, so we have to fix that first
crunchiest 330bytes png ever
<img width="2078" height="1576" alt="image" src="https://github.com/user-attachments/assets/9f25d35e-9e74-420a-b390-c4b031598971" />
also we might be able to remove the .icns file entirely, will have to confirm with samsara
Content
Good afternoon, I have a question, will default support be enabled in the next release? Since electron 38.2 has it enabled.
should be good to go now
@vernal lintel before tagging can we please use the dynamic arrpc db patches
1.5.8 is now 1700 game matches out of date
okay but 1699 of those are bad games so it doesnt really matter yk
also we might be able to remove the .icns file entirely, will have to confirm with samsara
Please correct me if I'm wrong, but I don't think older macOS systems can utilize icons inside Assets.car with the new Liquid Glass format so the icns should still be kept for compatibility with older macOS versions.
The current way icons are configured should be good; macOS <26 will use CFBundleIconFile to find the icon and macOS 26+ will look at CFBundleIconName to pick it up from the Assets.car...
Assets.car is supported on older versions too so it should technically be enough
But if you don't specify an icns file, electron-builder will copy a default Electron icon in, so we won't remove it for now to avoid that
kill
can we please merge this 1 year and 6 month old pr???
i dont like adding it like that
we should just vendor a fork
should we start updating social avatars/icons to the new logo?
server, github
thats just the vesktop icon silly
gluh
@iblowmymind We've done a lot of testing on what macOS takes priority when it comes to icons using CFBundleIconName and CFBundleIconFile
https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleiconfile
https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleiconname
While yes CFBundleIconFile does technically support more macOS versions, Vesktop does not support below macOS Big Sur so this is not an issue for us....
Ah, understood, I thought versions below Tahoe simply ignored icons in Assets.car. Thanks a bunch!
I'm going to blow you up with a bomb
I've been saying that for forever
THEN DO IT
fork in the org and give me push perms
sooooooon
gleep gorp
should I just implement the new tray with dot rn
abandonware
husk
why would it?
accent
oh yeahg the icons need to change
that was ripped out
we should use the system accent colour
shouldnt be
yes cause the PR shouldnt have customisation
since I'm doing that myself
and there shouldn't be a colour picker
just use system accent
what about systems without a defined accent
use a default value
paige said some apps do it but then we'd have to handle dark/light switching ourselves since templates cant have any colour
they show unread by how intense the icon is????
what fuckery is that
worse imo
it's kinda awkward with the empty space
eh, i dont think so
and this looks horror too
give fixed
TIL that the RequestBackground portal just creates a file in .config/autostart lmao
i thought it'd be more sophisticated than that
gonna add start minimized
can you send π
i love org.chromium.Chromium.desktop π
method call time=1759519283.468133 sender=:1.802 -> destination=org.freedesktop.portal.Desktop serial=46 path=/org/freedesktop/portal/desktop; interface=org.freedesktop.portal.Background; member=RequestBackground
string ""
array [
dict entry(
string "autostart"
variant boolean true
)
dict entry(
string "commandline"
variant array [
string "/opt/Vesktop/Vesktop"
string "--start-minimized"
]
)
]
idk how to fix this
there is https://docs.gtk.org/gio/func.bus_own_name.html but it's for server, not client
Reference for Gio.bus_own_name
but when I run the code in vscode it uses code as the name
vesktop uses org.chromium.Chromium even when packaged
isn't this a breaking change? electron-userland/electron-builder#9068
it changes the default executableName
it's technically a bug fix but I would still say it's a breaking change
how are you launching vesktop? from your app launcher .desktop?
if not its simply a limitation of the desktop portal registration
it might be cause of this ngl
we yapped about this a while ago with the shortcuts portal
yeah
uhh I'll be able to get u the updated badge icon and review the native module Monday btw
im gonna comment cause i think that's definitely a breaking change and I wasted a good amount of time debugging cause of it
too slow...
i wanna releeeease
ive been hella productive
you're slowing me down 
I'm touching grass ππ
wtf is on vac
who tf abbreviates vacation as vac
me
no its on my laptop
ur a weirdo @vernal lintel
hey maybe relax from your vibe coding and see the sun @vernal lintel @vernal lintel
IM NOT VIBE CODING
im gonna remove the I just spent a good amount of time
i dont wanna sound rude
thats nicer i think
yeah okay i get it you go outside
yes
it just always names this file org.chromium.Chromium.desktop
only in flatpak it uses the right name
@humble mortar for arrpc, using a cli on windows is terrible
i think we should use a small binary
either that or arrpc full native module
maybe rpc-rust
im tempted to do this
does arrpc not support mac
it does
wtf tokio supports named pipes and unix sockets
im tempted to do arrrrrpc riir
this shouldn't be too hard unironically
expecially cause I can just see how arrpc does things
vrpc
rust so fat
this rust shit is easy
somehow adding more libraries and code made the binary smaller
I'm actually gonna make arrpc riir
oh wait cause I commented out this code
sub 1mb with tokio included no way
wait why r u using tokio here
r u planning to have multiple threads later
yes
hmm
i was gonna say u could use something like smol and u wouldnt need to include the whole tokio runtime then if ur not rly using tokio's features
you can not include parts of tokio if you only use specific ones
a55b1f0 Add splash/tray image customisation & change de... - Vendicated
Superseded by #1179 but thank you anyway
tray badge was added via #1179
missing libunity will be resolved via #1180 (you still need a DE that supports the unity launcher, like KDE or "Dash to dock" on gnome)
so this pr is no longer needed. but thank you anyway!
I just added tray customisation via #1179 so if you rebase on that, you can add customisation back!
Getting the system accent colour will be made possible via #1180 so then we can just use the user's system accent colour for the badge modifier colour
I don't think this is something Vesktop should have a toggle for, as it also requires the user to disable middle click paste in their system
I documented it in the vesktop wiki, that should be good enough
If Chromium uses it by default, then yes. Just try it yourself by building from source with latest electron
This would have to be done in Vencord, not Vesktop. 95% of text you see in Vesktop comes from Vencord
This is something we might add at some point in the future, but is in no way a priority or something that is currently actively being worked on
I don't think this is something Vesktop should have a toggle for, as it also requires the user to disable middle click paste in their system
I documented it in the vesktop wiki, that should be good enough
Custom splash and tray has been added via https://github.com/Vencord/Vesktop/pull/1179 and will be in the next release
Changing the app icon will never be a feature, because Apps aren't really able to change their own icon. Just change it yourself. For example, on Linux, run locate vesktop.png (vesktop.svg next update) and replace all results with a properly scaled icon of your choice
Either way, the app icon will also change next update, to a more neutral icon, via https://github.com/Vencord/Vesktop/commit/6e2da1d29472c452548f47500e635af7ea7007bf
I think this has been fixed upstream, does anyone still experience it?
Vesktop already adds this command line flag if the SteamOS env vars are set:
if [[ "$SteamOS" == "1" && "$SteamGamepadUI" == "1" ]]; then
echo "Running Vesktop on SteamOS, disabling sandbox"
IS_STEAMOS=1
fi
So I think this issue is resolved? If you think this should be documented, you can add it to https://vesktop.dev/linux/tips/ - just click the edit button on the bottom
Didn't happen to me and some friends in ages so I'd guess it's okay to close this issue
Yeah I think so too
I'll close this for now
Awesome, thanks! I tried with a simple ping, and the tray icon does react to that
<img width="74" height="33" alt="image" src="https://github.com/user-attachments/assets/5d9d603c-8fd5-403e-99f7-dc7b07064bcc" />
<img width="69" height="32" alt="image" src="https://github.com/user-attachments/assets/f4c2b01e-36ae-417e-a5f7-d84e833bbbc9" />
Might be a bit too small right now, but I can probably get used to it. It's a completely new icon, after all.
I can finally ditch the proprietary...
Might be a bit too small right now
If you're talking about the dot - Yeah it's meant to be bigger but Cookie is busy right now so she can't send the fixed icon
<img width="776" height="396" alt="image" src="https://github.com/user-attachments/assets/a161f58a-a7eb-41ed-a4f2-7ce1e716bf61" />
also if you just want the tray badge, you shouldn't need this PR for that, building from main should work fine! This pr just improves taskbar / dock badge compatibility
Then why https://github.com/Vencord/Vesktop/issues/298 is still open and is being closed by this PR?
8cc34e2 bump dependencies, migrate to new Vencord Switc... - Vendicated
Anyway the answer is yes, but we can't upgrade to that Electron version yet because of https://github.com/electron/electron/issues/48430.
So it won't be in the next update unless electron releases a fix for this issue fast
loooovely electron/electron#48430 @humble mortar
when you try to open devtools, the app just full freezes, can't even ctrl + c it or close via tray / ctrl + q
have to send sigkill
x11 my beloved
On x11, or with xwayland
A couple of my friends on the official discord app also get this problem, so it could be a Discord-related issue.
I've been experiencing this with the official app for the last year or so. Especially happens during load or anything dealing with graphics, e.g. screen sharing. I recently switched distros and before enabling rtkit it would be happening nearly constantly under load, which suggests to me some failure to recover from latency or dropped samples. I've not yet tried Vesktop, but th...
that PR is about the dock/taskbar icon, not the tray. these are two separate things!
Are they though? The title doesn't specify where the badge is not working, I also don't know when it supposedly got fixed on main branch, and I couldn't find a closed issue about it. I guess it was fixed very recently? Because I did update my system on 11th of August, the previous time. And it was still broken, obviously.
Oh. Yeah, I had to copy my config to @vencord/vesktop directory because of that. I also was surprised why the dir must be changed all of a sudden.
why is this guy yapping so much π
Ubuntu 25 Ships the fixed version of XDG Utils: https://ubuntu.pkgs.org/25.04/ubuntu-main-amd64/xdg-utils_1.2.1-2ubuntu1_all.deb.html
I don't think this is something Vesktop should have a toggle for, as it also requires the user to disable middle click paste in their system
I documented it in the vesktop wiki, that should be good enough
For me this link leads to a 404 error. However, I can find the page manually on the wiki. But following the instructions listed there doesn't work. When I try to add the --enable-blink-features=MiddleClickAutoscroll f...
The problem is still present in Vesktop v1.5.8 on Windows 11, and it appears to be related to issue #1047.
The file %AppData%\vesktop\state.json correctly saves the window size and position when the application is closed.
However, after restarting the app, the window size changes unexpectedly, while the window position remains correct.
Example Data
Values on application close:
{
"firstLaunch": false,
"windowBounds": { "x": 2041, "y": 56, "wi...
What are the current blockers holding up merging this PR?
I would like to use Vesktop as my daily driver, but need keybinds, so am happy to assist in implementing required changes.
abandonware moment
when we bring back cookie from the dead it will stop being abandonware
Having this issue on CachyOS (Arch Linux), any idea on what the cause may be from everything posted?
I'm on EndeavourOS and I'm having the same issue. I'm not sure if this is related to the low quality of screenshares when audio is also shared.
Thank god the icon is finally getting a change, im ngl it was so ass looking in my tray βοΈππ₯
bad advice, /usr/share/applications/vesktop.desktop can be overriden with updates
the right thing to do is to copy it to ~/.local/share/applications and make the edit there
btw, doesn't https://vesktop.dev/wiki/linux/troubleshooting/#some-videos-dont-play-or-only-play-audio require video hw accel (plus normal hw accel) to work?
senzawa pfp
5734a1d libvesktop: native dbus module for autostart & ... - Vendicated
This issue is still happening. Other people report a framerate of 5 fps for my screenshares. Another issue is that fullscreen applications will not be captured at all.
im also gonna link electron and chromium doc


