Simplify tray: static template icon, click focuses the app

The setImage-swapped progress frames lost the template treatment on macOS and
rendered black-on-dark once transfers started. Dial back per user decision:
the tray is now just the glyph (template image set once at construction, never
swapped) and clicking it activates the window — no menu, no progress effects.
Removes everything that only served the fancy version: progress frames +
generation, engine.aggregateProgress, the workspacesSync webview->bun channel
(schema, send proxy, panels effect, handlers) and the activate-tab action.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Jokin
2026-07-11 21:55:42 +02:00
co-authored by Claude Fable 5
parent 42e5e5bb9a
commit 3fb08fdc24
31 changed files with 17 additions and 229 deletions
+1 -16
View File
@@ -1,4 +1,4 @@
import { Injectable, computed, effect, signal, type WritableSignal } from '@angular/core';
import { Injectable, computed, signal, type WritableSignal } from '@angular/core';
import type { ConnectionConfig, FileEntry, SavedConnection } from '@shared/types';
import { RpcService } from './rpc.service';
import { ToastService } from './toast.service';
@@ -180,21 +180,6 @@ export class PanelsService {
) {
this.newWorkspace();
// keep the bun-side tray informed about tabs (names, sessions, active)
if (this.rpc.available) {
effect(() => {
this.rpc.send.workspacesSync({
workspaces: this.workspaces().map((ws) => ({
id: ws.id,
name: this.workspaceName(ws),
remote: this.workspaceIsRemote(ws),
sessionIds: [ws.left.sessionId(), ws.right.sessionId()],
})),
activeId: this.activeWorkspaceId(),
});
});
}
// a session died on its own — reset every panel bound to it, in any tab
this.rpc.onSessionClosed((event) => {
for (const workspace of this.workspaces()) {