#πŸ–₯-vesktop-development

1 messages Β· Page 35 of 1

vernal lintel
#

im not reading trademark law bucko

#

where

humble mortar
#

chatgpt hallucinating

vernal lintel
humble mortar
#

fetched

vernal lintel
#

just because they're distributing it via the api doesnt mean you can use it in your app 😭

vernal lintel
humble mortar
#

old ass rn build moment

vernal lintel
#

we should just not add it at all and users can figure it out themselves BijouNod

#

we dont wanna become lightcord 2

#

lightcord got dmca from discord cause they used their logo on their website lol

humble mortar
#

blows you up big and round

vernal lintel
#

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

humble mortar
#

yeyop

#

are you gonna use the existing asset PRS of just write from scratch

vernal lintel
#

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 love

#

did you see this

#

should I pr the fix to electron

#

how do u even pr to electron do you have to build chromium from source BijouMemStare

#

need to buy a 9950X3D

humble mortar
#

same with linux accent access

vernal lintel
#

why

#

do you think it's not quality enough

humble mortar
vernal lintel
#

lmfao

humble mortar
vernal lintel
#

tbh even if it's not good enough still pr just to get the ball rolling

humble mortar
#

the cache would break/invalidate every few days

vernal lintel
#

lmaooo 😭

#

thats atrocious

#

how much disk space did it cost you

humble mortar
#

at least 30gb I forget

#

its been months

vernal lintel
#

we need like distributed chromium build cache

humble mortar
#

ACTUALLY REAL

vernal lintel
#

some tool that rsyncs build cache from some google server

humble mortar
vernal lintel
#

yeah def

#

i just wanna test it optimally

humble mortar
#

wait electron uses github runners right

vernal lintel
#

yeah

humble mortar
#

fork commit and run the action on the fork

vernal lintel
#

could just build on github

humble mortar
#

yea

vernal lintel
humble mortar
#

horrible freeze in the middle

humble mortar
humble mortar
#

no flavour

vernal lintel
#

cookie doesnt read anything i say...

humble mortar
vernal lintel
humble mortar
#

it might be a chromium internal that runs the xdg command

vernal lintel
#

no it's electron

humble mortar
#

u sure?

humble mortar
vernal lintel
#

this one is totally just on ubuntu anyway

#

fix has been out for more than 2 years

humble mortar
#

maybe just email Ubuntu

#

tell them to back port the fix

#

i bet no one has mentioned it

vernal lintel
#

it's one single line change 😭

humble mortar
#

electron takes forever to tag

#

ig Ubuntu might take forever too since it's so minor

#

god I hate electron

#

horrible horrible

vernal lintel
#

electron is nice until it isn't

simple groveBOT
#

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...

simple groveBOT
simple groveBOT
woeful current
#

menu bar icon goes against macOS principles ykyk

vernal lintel
#

erm no

#

not if it's an indicator

#

for vc

woeful current
#

oh yk

#

just add proper overlay ykykw

#

iiwii

simple groveBOT
simple groveBOT
#

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.

simple groveBOT
#

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.

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.

woeful current
#

@humble mortar fix vesktop

#

make Vesktop 2

humble mortar
#

never

#

discord as a whole needs to die

#

evil platform

humble mortar
#

literally google "electron blurry Wayland"

simple groveBOT
#

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.

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...

simple groveBOT
#

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...

simple groveBOT
woeful current
#

alpha DE

simple groveBOT
simple groveBOT
#

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...

vernal lintel
#

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

humble mortar
#

god forsaken app

scenic hollow
simple groveBOT
#

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...
grizzled hemlock
#

@woeful current liquid ass being ass blobcatcozy

woeful current
#

@vernal lintel HELP

#

i was wondering why my system slowed down

vernal lintel
woeful current
#

get to work

vernal lintel
woeful current
#

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.

simple groveBOT
#

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...

topaz dove
#

(im fine with being mentioned on gh bc it doesn't annoy me)

vernal lintel
#

i deliberately sent link instead of mention so you don't get @d 😭

topaz dove
#

also is samara still here

#

if they left then i don't think i can tell them about the icon

vernal lintel
woeful current
# simple grove

@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

vernal lintel
#

can you stop shitposting here constantly

#

it's really annoying

woeful current
#

fine

vernal lintel
simple groveBOT
#
[Vencord/Vesktop] New branch created: custom-splash
woeful current
#

maybe add some presets ykyk @vernal lintel

#

tux viggy chomik

vernal lintel
#

yop

humble mortar
# simple grove

@vernal lintel want me to update this PR with the new svg or just close

vernal lintel
#

no it's good I think

#

do update if you wanna

humble mortar
#

I'll update tmrw if i dont forget

#

@topaz dove send me the svg please

#

was one for Mac made as well?

topaz dove
humble mortar
#

womp

vernal lintel
vernal lintel
#

I can make a group chat if you want

topaz dove
#

its the same one i sent in modchat

simple groveBOT
humble mortar
#

tux as the default splash is so bad 😭

#

ugly creature

vernal lintel
vernal lintel
humble mortar
#

@topaz dove what font did you use for the text? the same in the current server logo?

grizzled hemlock
#

tux spin good

humble mortar
#

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

vernal lintel
humble mortar
#

so one for the old style was needed too

vernal lintel
#

ah

humble mortar
#

it looks so squishy like yumm

#

the shadow is there

#

ill kill you

#

find me an svg template for it

#

90kb

#

hortor

vernal lintel
#

why is there a png in there

humble mortar
#

😭

vernal lintel
humble mortar
#

is it the shadow

#

😭

vernal lintel
#

i love svgs with pngs in them

humble mortar
#

WONDERFUl

vernal lintel
humble mortar
#

yeag

vernal lintel
humble mortar
#

im turning the shadow back into a vector

#

yeah

#

😭

vernal lintel
#

yeah so easy

#

erm akshually there's much more math to this

humble mortar
#

???what virus did u sneak in that 90kb @slim tartan my inkscape is bugging tf out

vernal lintel
#

btw cookie ur pr removes icon from tray right

#

we're gonna have to add it back for customisable tray

humble mortar
vernal lintel
#

oh

humble mortar
#

its the same old vc

vernal lintel
#

no i mean

#

u removed the explicit icon override

#

so it just uses the app icon

#

or am i going insane

humble mortar
#

yea

vernal lintel
#

oh wait that was splash

humble mortar
#

thats not the tray thou

vernal lintel
#

yeah okay

humble mortar
#

ur going insane

vernal lintel
#

its okay

humble mortar
#

im a little tea pot short and spout

#

i know

#

im playing around with it

#

?

#

the smaller sizes are getting this white artifact

#

evil

humble mortar
#

you love figma

#

</3 the one im generating is 1/4th the size

#

horrifying unoptimized png

humble mortar
#

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

vernal lintel
humble mortar
humble mortar
#

how do we feel

topaz dove
#

i intentionally didn't add little flourishes

#

they become pretty much invisible at small sizes

humble mortar
#

mhm but what about the opposite

#

using it as a larger logo

topaz dove
#

couldn't find a place where we use it in a large size

#

its usually just an app or social icon

humble mortar
#

little flourishes likethat are def visible as social icons

topaz dove
#

barely

#

i cant even see the details in the V in the current server icon

humble mortar
#

480i monitor 😭

topaz dove
#

nop I'm on my phone

humble mortar
#

i can see it clear as day on my phone

#

the contrast is a little bad if i turn my phone brightness down tho

topaz dove
#

also i think the letters i made match the overall "bubbly" feel of the logo better

humble mortar
#

mh yeah

vernal lintel
humble mortar
vernal lintel
#

did u send the same image twice

humble mortar
#

no

#

smoothed the tips of the V and changed the white to be less harsh

topaz dove
#

i like the changes to the V but im not sure about the grey

vernal lintel
#

maybe rename the icon files

#

icon.ico -> icon-windows.ico
icon.icns -> icon-mac.icns
icon.svg -> icon-linux.svg

#

so it's clearer

topaz dove
#

could probably also drop the icon- prefix if its in an icons folder

vernal lintel
vernal lintel
#

is icon pr ready to merge? @humble mortar

topaz dove
#

we gonna keep the old tray icon?

#

i made a monochrome version of the new logo we can use

vernal lintel
#

show

#

i dont think tray should be monochrome tho

topaz dove
woeful current
#

on macos

#

add option ykyk

simple groveBOT
#

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...

vernal lintel
simple groveBOT
simple groveBOT
simple groveBOT
simple groveBOT
simple groveBOT
#

@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-...

humble mortar
#

@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)

vernal lintel
humble mortar
#

ill commit and push so u can try on ur system

simple groveBOT
humble mortar
#

why tf is the tray getting destroyed

vernal lintel
#

if you toggle the setting

humble mortar
#

does it not need a restart

vernal lintel
#

no

#

it's in real time

humble mortar
#

husk

#

ok

vernal lintel
#

wanna know smth funny

#

gnome uses a dark status bar even on light theme

humble mortar
#

ill kill gnome devs with a hammer

vernal lintel
#

discord always uses white tray on linux

#

on windows too

humble mortar
#

yeah and it is invisible on light schemes

vernal lintel
#

is it

#

show

#

this is gnome light theme

humble mortar
#

oh it has that shadow

vernal lintel
#

yeah

#

border

humble mortar
#

still looks ass

vernal lintel
#

what de are u on

humble mortar
#

plasma

vernal lintel
#

show plasma light theme

#

do we really have to add desktop detection lmao

humble mortar
#

breeze classic

humble mortar
#

or add a shadow like discord does

humble mortar
#

we should make it default pink

#

and in settings be insane and provide an svg that gets recoloured

vernal lintel
#

well

#

I added tray customisation to my pr

#

could just have smth there

humble mortar
#

thats what i meant

vernal lintel
#

yeah

#

send bytes to renderer, put into canvas, make changes, send back

humble mortar
#

dont even need to do that

vernal lintel
#

you can also do that for adding notification dot etc

humble mortar
#

god i hate electron

#

createFromDataURL doesnt work with svgs

vernal lintel
#

guh just do in renderer

humble mortar
vernal lintel
humble mortar
vernal lintel
#

make a variant with notification dot

humble mortar
#

speaking of that

#

eh nvm

#

i was gonna yap about the dot following the system accent

vernal lintel
#

eeeeeh just make it red

#

i mean it could follow accent ig

vernal lintel
#

i can do it if you want

humble mortar
vernal lintel
#

true

humble mortar
#

it would if i finished that PR

#

it's literally a 3 line change

vernal lintel
#

i experimented with making a native addon yesterday for dbus

#

libvesktop

humble mortar
#

electron just doesnt expose it

vernal lintel
humble mortar
#

you are an evil being

vernal lintel
#

see it worked

humble mortar
#

give me a hex code for the notification dot @vernal lintel

vernal lintel
#

erm steal from discord ykyk

humble mortar
#

i hate their red

vernal lintel
#

seethe

humble mortar
#

ok im picking one

vernal lintel
#

actually if u dont wanna vibecode

#

we can yoink code from somewhere

#

horror image

humble mortar
#

it really isnt hard to implement

vernal lintel
humble mortar
#

no thats horribly evil and bad

vernal lintel
#

how

humble mortar
#

just do the 3 line patch for electron

vernal lintel
#

oh

#

do you wanna build electron from source...

humble mortar
#

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 blobcatcozy

#

real and true

vernal lintel
#

i didnt vibecode this time

humble mortar
#

what are you linking against

#

pure dbus?

vernal lintel
#

yeah

#

could also do gdbus

humble mortar
#

horror dont

#

chromium links pure dbus

vernal lintel
#
{
  "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

humble mortar
#

idk either ive never touched native node

#

look at venmic

vernal lintel
#

it can read colours, ints and bools from dbus settings

humble mortar
#

u can strip everything else and assume everything but a valid 6 char hex is an error

vernal lintel
#

why is it chonky

humble mortar
#

ur not compiling with optimizations

vernal lintel
#

erm i think i am

#

why is binding.gyp python

topaz dove
vernal lintel
#

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;
}
simple groveBOT
#
[Vencord/Vesktop] New branch created: libvesktop
#

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...

vernal lintel
#

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

simple groveBOT
topaz dove
#

vee forgot to change the icon back on his own pc

vernal lintel
#

nah

topaz dove
#

fym nah

#

i see it in the screenshot

vernal lintel
#

it came up with the smart pointer deleter stuff

vernal lintel
#

erm maybe we should rename node-gyp to node-scam

#

ykyk

topaz dove
#

yop

vernal lintel
topaz dove
#

thread seems sane

#

they want to remove it but can't for historical and technical reasons

#

and they're moving away from it anyways

simple groveBOT
simple groveBOT
#

@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...

topaz dove
#

i do also want to say that i don't like the speech bubble being outlined

vernal lintel
#

in what logo

topaz dove
#

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

topaz dove
vernal lintel
#

or the one cookie made

topaz dove
#

the other one

vernal lintel
#

i thought we would go with samaras

topaz dove
#

we should

#

im adding on to samara

#

not contesting

simple groveBOT
simple groveBOT
vernal lintel
#

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)

vernal lintel
#

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

simple groveBOT
vernal lintel
#

god I hate manual memory management

grizzled hemlock
grizzled hemlock
humble mortar
#

@vernal lintel unity count is int64 not int32

#

does the node module have to be built every time or is it like venmic

vernal lintel
#

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...

vernal lintel
#

although I'm kinda considering riir ngl

#

napi rs seems amazing

vernal lintel
humble mortar
#

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

humble mortar
#

having a native module for this stuff is so dumb

#

electron should just be better

vernal lintel
#

yeah true

vernal lintel
humble mortar
#

in vesktop yeah

#

in the libvesktop youre checking for 0 to hide/show

vernal lintel
#

I mean it only supports numbers

#

it doesn't support a dot

humble mortar
#

it can still display 0 and negatives

vernal lintel
#

but we're not doing that

humble mortar
#

we could

#

and discord already has the option to disable the unread app badge if people dont like the 0

vernal lintel
#

0 would look retarded

simple groveBOT
vernal lintel
#

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

grizzled hemlock
#

if so husk

vernal lintel
#

yes

#

why

grizzled hemlock
#

i feel like building vesktop should also build the native modules

vernal lintel
#

you will love having to install c++ compilers and glib headers just to run vesktop

#

venmic is already included as prebuild

grizzled hemlock
vernal lintel
#

yes

grizzled hemlock
#

yeah if you're building vesktop wanting a c++ compiler and glib headers is reasonable

vernal lintel
#

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

grizzled hemlock
#

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

vernal lintel
#

that's worse

at least if the binaries are in the repo you can see that they haven't been changed

grizzled hemlock
#

if you will provide native binaries in the build, at least build with -ggdb3

vernal lintel
#

wtf is that

grizzled hemlock
vernal lintel
#

why in the world would the release build include debug info

grizzled hemlock
#

or am i misunderstanding

#

@vernal lintel least insane hardcoded path

#

wait why not use giomm if you're using c++

simple groveBOT
vernal lintel
simple groveBOT
#

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)) ...
vernal lintel
#

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

vernal lintel
simple groveBOT
grizzled hemlock
grizzled hemlock
sour muralBOT
vernal lintel
#

no one is gonna run the entirety of vesktop in gdb

#

you can just make a basic js script for testing

grizzled hemlock
simple groveBOT
#

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 .ts files).
  • Open the door for contributors to submit translations via Pull Requests.

This would be a valuable improvement and I believe...

woeful current
# simple grove

@sly cairn would vesktop translations also be a part of translation v3

sly cairn
#

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

vernal lintel
# simple grove

@humble mortar check out and test that pr if u have time, it's ready

humble mortar
#

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

humble mortar
#

oh real?

vernal lintel
#

i just updated the pr description

humble mortar
#

HUSK ITS IN TREE

vernal lintel
#

it's not too difficult to do

humble mortar
vernal lintel
#

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)

humble mortar
#

curl??

vernal lintel
#

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)

vernal lintel
# humble mortar HUSK ITS IN TREE

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

humble mortar
#

thats so normal

#

vee so stupid

vernal lintel
#

be nice

humble mortar
#

Did you strip out all the unneeded return handling

vernal lintel
#

In C even if you don't care about the return value you still have to clean it up 😭

vernal lintel
#

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

humble mortar
#

accent only needs tuple double and its container handling everything else you can assume is an error

#

let me just look

vernal lintel
#

idk clean it up

#

that part was a pain to get working

humble mortar
#

this is wrong

#

you shouldn't be clamping

vernal lintel
#

the clamp shouldn't be needed

humble mortar
#

out of range (1-0) means its an error

vernal lintel
#

it's a value between 0 and 1

humble mortar
#

the spec specifies out of range means you should discard and assume theres no accent

vernal lintel
#

oh

#

yeah lets just use let

humble mortar
#

github mobile code review is so ass oh my god

vernal lintel
#

BRAINROT

simple groveBOT
vernal lintel
#

actually doubt the other two checks are needed

#

copilot suggested them

humble mortar
#

the wonderful !std::isfinite(v)

vernal lintel
#

okay

simple groveBOT
humble mortar
#

@vernal lintel make sure to attribute this PR to copilot

#

i ❀️ AI

simple groveBOT
humble mortar
vernal lintel
#

this lint rule is so troll

no it fucking can't cause esm doesn't support .node files 😭

vernal lintel
humble mortar
#

gosh I'm so sorry πŸ˜”

vernal lintel
humble mortar
vernal lintel
#

😭

vernal lintel
#

but it makes a lot of sense

#

i forgot smart pointers existed but theyre sooooo good

#

can u tell i am bad at C++

humble mortar
#

@vernal lintel your brain is full of holes

humble mortar
#

extra cleanup or wtv

vernal lintel
#

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

humble mortar
#

what else is gonna happen

#

the mind of a typescript dev

vernal lintel
humble mortar
#

@vernal lintel throws you in the garbage collector

vernal lintel
#

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

humble mortar
#

nobody has glib++ installed

humble mortar
#

WHAT

#

oh I'm confusing it for the raw dbus c++ wrapper

vernal lintel
#

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

humble mortar
#

???

vernal lintel
humble mortar
#

grokking it on the grokipedia

vernal lintel
#

Wikipedia more like wokepedia

#

thank god grokipedia is just around the corner

humble mortar
#

omw to consume 1/3 of the power grid to run wikipedia thru grok to dewoke the articles

vernal lintel
#

alright let me lock in

#

okay lets see

humble mortar
vernal lintel
#

it doesn't know giomm

#

i tried a bit more but it just doesnt know

#

it's just like me

simple groveBOT
vernal lintel
#

@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

mild bone
#

okay

vernal lintel
#

yay

#

thanks koda

mild bone
vernal lintel
mild bone
#

love

topaz dove
#

i have a horizontal version of the logo we can use in there

vernal lintel
#

she made this but the icon is crispy for some reason

topaz dove
#

i have a better idea

#

software crashed well so i have to remake my idea

simple groveBOT
topaz dove
vernal lintel
#

i think it's too pink ngl

#

deadly lazer burning ur retina

topaz dove
vernal lintel
#

but send in the group chat

vernal lintel
#

github action that just blocks anyone leaving "same" or similar useless comments

simple groveBOT
simple groveBOT
humble mortar
#

@vernal lintel before tagging can we please use the dynamic arrpc db patches

#

1.5.8 is now 1700 game matches out of date

vernal lintel
simple groveBOT
#

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...

simple groveBOT
simple groveBOT
vernal lintel
#

we should just vendor a fork

topaz dove
# simple grove

should we start updating social avatars/icons to the new logo?

vernal lintel
#

like where

topaz dove
#

server, github

vernal lintel
#

thats just the vesktop icon silly

topaz dove
#

gluh

simple groveBOT
#

@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....

humble mortar
#

I've been saying that for forever

vernal lintel
#

THEN DO IT

simple groveBOT
humble mortar
vernal lintel
#

sooooooon

humble mortar
#

gleep gorp

vernal lintel
#

should I just implement the new tray with dot rn

humble mortar
vernal lintel
#

abandonware

humble mortar
#

husk

vernal lintel
#

i might just finish it myself

#

also this depends on libvesktop pr

humble mortar
#

why would it?

vernal lintel
#

accent

humble mortar
#

oh yeahg the icons need to change

humble mortar
vernal lintel
#

we should use the system accent colour

vernal lintel
humble mortar
#

you told him to 😭

#

you have bpd @vernal lintel

vernal lintel
#

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

humble mortar
#

what about systems without a defined accent

vernal lintel
#

use a default value

humble mortar
#

or grab the discord accent var

#

lmk when u fork in org arrpc

#

i gtg

vernal lintel
#

how do we show tray badge on mac

#

terrifying

#

ig we dont

humble mortar
vernal lintel
#

easy

humble mortar
#

yeah thats why i left it out of the pr

#

came to that conclusion too

humble mortar
#

what fuckery is that

vernal lintel
#

they dont even show tray on mac i think

#

idk why they have it

humble mortar
#

legacy ig

#

god I hate app development

#

so much variation

vernal lintel
#

it looks kinda weird tbh

#

this variant

humble mortar
#

oh thats the wrong icon husk

#

i meant to include one with a larger dot

vernal lintel
#

is this better or worse

grizzled hemlock
#

worse imo

vernal lintel
#

it's kinda awkward with the empty space

grizzled hemlock
#

eh, i dont think so

vernal lintel
#

and this looks horror too

simple groveBOT
vernal lintel
#

oh the behaviour isn't quite right

#

I need a separate ipc call i think

simple groveBOT
vernal lintel
vernal lintel
#

TIL that the RequestBackground portal just creates a file in .config/autostart lmao

#

i thought it'd be more sophisticated than that

simple groveBOT
vernal lintel
#

gonna add start minimized

simple groveBOT
vernal lintel
simple groveBOT
simple groveBOT
vernal lintel
#

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"
            ]
      )
   ]
vernal lintel
#

idk how to fix this

#

but when I run the code in vscode it uses code as the name

#

vesktop uses org.chromium.Chromium even when packaged

vernal lintel
#

okay it uses the right name in flatpak

#

ig we'll do it manually on non flatpak

simple groveBOT
simple groveBOT
vernal lintel
#

it changes the default executableName

#

it's technically a bug fix but I would still say it's a breaking change

humble mortar
vernal lintel
humble mortar
#

we yapped about this a while ago with the shortcuts portal

vernal lintel
#

i'll test in a sec

#

I had a .desktop file name mismatch

humble mortar
#

yeah

#

uhh I'll be able to get u the updated badge icon and review the native module Monday btw

vernal lintel
#

im gonna comment cause i think that's definitely a breaking change and I wasted a good amount of time debugging cause of it

vernal lintel
#

i wanna releeeease

#

ive been hella productive

#

you're slowing me down snailien

humble mortar
#

I'm touching grass 😭😭

vernal lintel
#

lmaoo

#

like on vac?

humble mortar
#

wtf is on vac

vernal lintel
#

vacation..

#

can u just send the updated badge icon or did u not make it yet

humble mortar
#

who tf abbreviates vacation as vac

vernal lintel
#

me

humble mortar
#

ur a weirdo @vernal lintel

#

hey maybe relax from your vibe coding and see the sun @vernal lintel @vernal lintel

vernal lintel
#

IM NOT VIBE CODING

humble mortar
#

yeah ok buddy

#

I'm going back to smelling the trees.. see you later loser

vernal lintel
#

im gonna remove the I just spent a good amount of time

#

i dont wanna sound rude

#

thats nicer i think

vernal lintel
simple groveBOT
vernal lintel
#

it just always names this file org.chromium.Chromium.desktop

#

only in flatpak it uses the right name

vernal lintel
#

@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

woeful current
vernal lintel
#

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

topaz dove
#

vrpc

vernal lintel
#

rust so fat

vernal lintel
#

this rust shit is easy

#

somehow adding more libraries and code made the binary smaller

#

I'm actually gonna make arrpc riir

vernal lintel
austere wolf
#

sub 1mb with tokio included no way

sly cairn
#

r u planning to have multiple threads later

vernal lintel
sly cairn
#

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

austere wolf
#

you can not include parts of tokio if you only use specific ones

simple groveBOT
#
[Vencord/Vesktop] branch deleted: custom-splash
simple groveBOT
#

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...

simple groveBOT
vernal lintel
#

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

grizzled hemlock
#

x11 my beloved

vernal lintel
#

erm it crashes in x11 mode too

#

I tried

grizzled hemlock
simple groveBOT
#

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...

simple groveBOT
simple groveBOT
vernal lintel
#

why is this guy yapping so much 😭

simple groveBOT
#

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...

simple groveBOT
#

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...
simple groveBOT
scenic hollow
#

abandonware moment

woeful current
simple groveBOT
simple groveBOT
simple groveBOT
simple groveBOT
next sundial
#

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

vernal lintel
#

senzawa pfp

simple groveBOT
#
[Vencord/Vesktop] branch deleted: libvesktop
simple groveBOT
simple groveBOT
simple groveBOT
vernal lintel
#

im also gonna link electron and chromium doc

simple groveBOT
vernal lintel
#

I'm gonna make updates optional

#

like not forced

woeful current
#

wdym

#

aren’t they already

vernal lintel
#

About Vesktop

vernal lintel
simple groveBOT
#
[Vencord/Vesktop] New branch created: updater-dialog
vernal lintel
#

why does the video look so shit