Files
vikunja/desktop
Dávid Takács-Tolnai e624c8a296 fix(desktop): rebuild tray menu in place instead of recreating the Tray
The old setupTray() called tray.destroy() before creating a new Tray. On
Linux with KDE Plasma 6 Wayland, tray.destroy() does not actually remove
the icon from plasmashell (electron/electron#49517), so the new Tray
registers a fresh dbusmenu while plasmashell keeps talking to the
orphaned one. Menu items still render (cached layout) but every
com.canonical.dbusmenu.Event("clicked", ...) method call from plasmashell
hits the destroyed handler and is dropped, so menu-item click callbacks
stop firing after the frontend triggers a rebuild on login.

Move the one-time Tray construction (icon, tooltip, click handler)
behind a !tray guard and keep setContextMenu in the always-run path. The
desktop:update-quick-entry-shortcut IPC handler keeps calling setupTray()
and the accelerator label updates without touching the native Tray.
2026-04-17 07:49:16 +00:00
..

Vikunja desktop

License: GPL-3.0-or-later

The Vikunja frontend all repackaged as an electron app to run as a desktop app!

Dev

As this package does not contain any code, only a thin wrapper around electron, you will need to do this to get the actual frontend bundle and build the app:

First, build the frontend:

cd ../frontend
pnpm install
pnpm run build

Then, copy the frontend to this directory:

cd desktop
cp -r ../frontend/dist frontend/
sed -i 's/\/api\/v1//g' frontend/index.html # Make sure to trigger the "enter the Vikunja url" prompt

Then you can run the desktop app like this:

pnpm install
pnpm start

Building for release

  1. Run the snippet from above, but with a valid frontend version instead of unstable
  2. Change the version in package.json (that's the one that will be used by electron-builder)
  3. pnpm install
  4. pnpm run dist --linux --windows

License

This project is licensed under the GPL-3.0-or-later license. See the LICENSE file for details.