Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0ee1946
upgrade to electron 38
Vendicated Sep 4, 2025
b221882
upgrade dependencies
Vendicated Sep 4, 2025
497c251
Add icon to auto-start script (#1172)
Tiagoquix Sep 5, 2025
c4186da
Merge remote-tracking branch 'origin/main'
SIGSTACKFAULT Sep 15, 2025
0d9ca22
fix Vesktop being registered as html mime handler
Vendicated Sep 18, 2025
6e2da1d
feat: New Vesktop icon (#865)
Covkie Oct 2, 2025
e79635f
fix: explicitly set executableName
Vendicated Oct 3, 2025
a55b1f0
Add splash/tray image customisation & change default splash (#1179)
Vendicated Oct 5, 2025
8cc34e2
bump dependencies, migrate to new Vencord Switch component
Vendicated Oct 6, 2025
b47f3f4
Merge remote-tracking branch 'origin/main' into HEAD
SIGSTACKFAULT Oct 7, 2025
6016a1f
add missing comma
SIGSTACKFAULT Oct 7, 2025
5734a1d
libvesktop: native dbus module for autostart & app badge (#1180)
Vendicated Oct 16, 2025
40d9cba
error proof settings ui
Vendicated Oct 16, 2025
6aeacaa
add cli flags to spoof user agent
Vendicated Oct 18, 2025
d005dd5
make cli parser less strict
Vendicated Oct 18, 2025
eb3dae8
--help: document chromium & electron flags
Vendicated Oct 18, 2025
9f0af48
Updater: show update dialog instead of forcing updates (#1184)
Vendicated Oct 19, 2025
fa23c63
use custom protocol instead of file:// for better security
Vendicated Oct 19, 2025
d232797
clean up vesktop:// protocol handler
Vendicated Oct 19, 2025
6a43e13
set CSP in updater view
Vendicated Oct 19, 2025
c82cc7a
fix metainfo generation & uploading
Vendicated Oct 19, 2025
02907d3
bump to v1.6.0
Vendicated Oct 19, 2025
28a13be
add nearest neighbor option to splash customisation
Vendicated Oct 19, 2025
d293b16
fix cli argument parsing
Vendicated Oct 21, 2025
b02acd6
fix updater printing on --help / --version commands
Vendicated Oct 21, 2025
800a971
fix metainfo generation
Vendicated Oct 22, 2025
3aa0bb8
fix some ENOENT errors on first launch
Vendicated Oct 23, 2025
cd1a40e
oh god no
Vendicated Oct 23, 2025
03aa30d
do window bound checks without relying on displayId
Vendicated Oct 23, 2025
b75ed07
clean up BrowserWindow options logic
Vendicated Oct 23, 2025
a242d5d
bound check entire window area instead of only top left corner
Vendicated Oct 23, 2025
fd40590
Merge remote-tracking branch 'origin/main'
SIGSTACKFAULT Oct 25, 2025
707dbf4
upgrade electron to v39
Vendicated Oct 28, 2025
4b735b9
bump to v1.6.1
Vendicated Oct 28, 2025
38b7716
add new splash animation (#1195)
khcrysalis Oct 28, 2025
9193ed5
resize splash image to 128x128
Vendicated Oct 28, 2025
f57245f
fix views using quirks mode & non utf-8
Vendicated Nov 3, 2025
e0222aa
Merge remote-tracking branch 'origin/main'
SIGSTACKFAULT Nov 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions .github/workflows/meta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
workflow_dispatch:

permissions:
contents: write
contents: write

jobs:
update:
Expand All @@ -26,17 +26,13 @@ jobs:
run: pnpm i

- name: Update metainfo
run: pnpm updateMeta
run: pnpm generateMeta

- name: Commit and merge in changes
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"

gh release upload "${{ github.event.release.tag_name }}" meta/dev.vencord.Vesktop.metainfo.xml

git add meta/dev.vencord.Vesktop.metainfo.xml
git commit -m "metainfo: add entry for ${{ github.event.release.tag_name }}"
git push origin HEAD:main
gh release upload "${{ github.event.release.tag_name }}" dist/dev.vencord.Vesktop.metainfo.xml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
13 changes: 12 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Vesktop is a custom Discord desktop app

## Installing

Visit https://vesktop.vencord.dev/install
Visit https://vesktop.dev/install

## Building from Source

Expand Down Expand Up @@ -47,3 +47,14 @@ pnpm package --linux pacman
# Or package to a directory only
pnpm package:dir
```

## Building LibVesktop from Source

This is a small C++ helper library Vesktop uses on Linux to emit D-Bus events. By default, prebuilt binaries for x64 and arm64 are used.

If you want to build it from source:
1. Install build dependencies:
- Debian/Ubuntu: `apt install build-essential python3 curl pkg-config libglib2.0-dev`
- Fedora: `dnf install @c-development @development-tools python3 curl pkgconf-pkg-config glib2-devel`
2. Run `pnpm buildLibVesktop`
3. From now on, building Vesktop will use your own build
Binary file added build/Assets.car
Binary file not shown.
Binary file modified build/background.tiff
Binary file not shown.
Binary file modified build/icon.icns
Binary file not shown.
Binary file added build/icon.ico
Binary file not shown.
Binary file removed build/icon.png
Binary file not shown.
1 change: 1 addition & 0 deletions build/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
46 changes: 26 additions & 20 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "vesktop",
"version": "1.5.8",
"version": "1.6.1",
"private": true,
"description": "Vesktop is a custom Discord desktop app",
"keywords": [],
Expand All @@ -11,6 +11,7 @@
"scripts": {
"build": "tsx scripts/build/build.mts",
"build:dev": "pnpm build --dev",
"buildLibVesktop": "pnpm -C packages/libvesktop install && pnpm -C packages/libvesktop run build",
"package": "pnpm build && electron-builder",
"package:dir": "pnpm build && electron-builder --dir",
"lint": "eslint",
Expand All @@ -21,7 +22,7 @@
"test": "pnpm lint && pnpm testTypes",
"testTypes": "tsc --noEmit",
"watch": "pnpm build --watch",
"updateMeta": "tsx scripts/utils/updateMeta.mts",
"generateMeta": "tsx scripts/utils/generateMeta.mts",
"updateArrpcDB": "node ./node_modules/arrpc/update_db.js",
"postinstall": "pnpm updateArrpcDB"
},
Expand All @@ -35,28 +36,29 @@
},
"devDependencies": {
"@fal-works/esbuild-plugin-global-externals": "^2.1.2",
"@stylistic/eslint-plugin": "^5.1.0",
"@types/node": "^24.0.10",
"@types/react": "18.3.1",
"@vencord/types": "^1.11.5",
"dotenv": "^16.5.0",
"electron": "^37.2.0",
"@stylistic/eslint-plugin": "^5.5.0",
"@types/node": "^24.9.1",
"@types/react": "19.2.1",
"@vencord/types": "^1.13.2",
"dotenv": "^17.2.3",
"electron": "^39.0.0",
"electron-builder": "^26.0.12",
"esbuild": "^0.25.5",
"eslint": "^9.30.1",
"esbuild": "^0.25.11",
"eslint": "^9.38.0",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-path-alias": "^2.1.0",
"eslint-plugin-prettier": "^5.5.1",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-simple-header": "^1.2.2",
"eslint-plugin-simple-import-sort": "^12.1.1",
"eslint-plugin-unused-imports": "^4.1.4",
"eslint-plugin-unused-imports": "^4.3.0",
"libvesktop": "link:packages/libvesktop",
"prettier": "^3.6.2",
"source-map-support": "^0.5.21",
"tsx": "^4.20.3",
"type-fest": "^4.41.0",
"typescript": "^5.8.3",
"typescript-eslint": "^8.35.1",
"xml-formatter": "^3.6.6"
"tsx": "^4.20.6",
"type-fest": "^5.1.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.46.2",
"xml-formatter": "^3.6.7"
},
"packageManager": "[email protected]",
"engines": {
Expand All @@ -66,6 +68,7 @@
"build": {
"appId": "dev.vencord.vesktop",
"productName": "Vesktop",
"executableName": "vesktop",
"files": [
"!*",
"!node_modules",
Expand All @@ -80,9 +83,10 @@
"discord"
]
},
"beforePack": "scripts/build/sandboxFix.js",
"beforePack": "scripts/build/beforePack.mjs",
"afterPack": "scripts/build/afterPack.mjs",
"linux": {
"icon": "build/icon.icns",
"icon": "build/icon.svg",
"category": "Network",
"maintainer": "[email protected]",
"target": [
Expand Down Expand Up @@ -142,7 +146,8 @@
"NSMicrophoneUsageDescription": "This app needs access to the microphone",
"NSCameraUsageDescription": "This app needs access to the camera",
"com.apple.security.device.audio-input": true,
"com.apple.security.device.camera": true
"com.apple.security.device.camera": true,
"CFBundleIconName": "Icon"
},
"notarize": true
},
Expand Down Expand Up @@ -172,6 +177,7 @@
"oneClick": false
},
"win": {
"icon": "build/icon.ico",
"target": [
{
"target": "nsis",
Expand Down
1 change: 1 addition & 0 deletions packages/libvesktop/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
build
19 changes: 19 additions & 0 deletions packages/libvesktop/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Dockerfile for building both x64 and arm64 on an old distro for maximum compatibility.

# ubuntu20 is dead but debian11 is still supported for now
FROM debian:11
ENV DEBIAN_FRONTEND=noninteractive

RUN dpkg --add-architecture arm64

RUN apt-get update && apt-get install -y \
build-essential python3 curl pkg-config \
g++-aarch64-linux-gnu libglib2.0-dev:amd64 libglib2.0-dev:arm64 \
ca-certificates \
&& rm -rf /var/lib/apt/lists/*

RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - \
&& apt-get update && apt-get install -y nodejs \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /src
19 changes: 19 additions & 0 deletions packages/libvesktop/binding.gyp
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"targets": [
{
"target_name": "libvesktop",
"sources": [ "src/libvesktop.cc" ],
"include_dirs": [
"<!@(node -p \"require('node-addon-api').include\")"
],
"cflags_cc": [
"<!(pkg-config --cflags glib-2.0 gio-2.0)",
"-O3"
],
"libraries": [
"<!@(pkg-config --libs-only-l --libs-only-other glib-2.0 gio-2.0)"
],
"cflags_cc!": ["-fno-exceptions"],
}
]
}
17 changes: 17 additions & 0 deletions packages/libvesktop/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/sh
set -e

docker build -t libvesktop-builder -f Dockerfile .

docker run --rm -v "$PWD":/src -w /src libvesktop-builder bash -c "
set -e

echo '=== Building x64 ==='
npx node-gyp rebuild --arch=x64
mv build/Release/vesktop.node prebuilds/vesktop-x64.node

echo '=== Building arm64 ==='
export CXX=aarch64-linux-gnu-g++
npx node-gyp rebuild --arch=arm64
mv build/Release/vesktop.node prebuilds/vesktop-arm64.node
"
3 changes: 3 additions & 0 deletions packages/libvesktop/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function getAccentColor(): number | null;
export function requestBackground(autoStart: boolean, commandLine: string[]): boolean;
export function updateUnityLauncherCount(count: number): boolean;
14 changes: 14 additions & 0 deletions packages/libvesktop/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"name": "libvesktop",
"main": "build/Release/vesktop.node",
"types": "index.d.ts",
"devDependencies": {
"node-addon-api": "^8.5.0",
"node-gyp": "^11.4.2"
},
"scripts": {
"build": "node-gyp configure build",
"clean": "node-gyp clean",
"test": "npm run build && node test.js"
}
}
Loading