fix linux desktop packaging paths (#1162)

Co-authored-by: xingzhi <chuzihao.czh@alibaba-inc.com>
This commit is contained in:
sir1st
2026-05-30 20:14:24 +08:00
committed by GitHub
parent 46bd7d0420
commit dcbf601e35
15 changed files with 46 additions and 3 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

+5
View File
@@ -21,6 +21,10 @@ files:
# Web UI source (built dist) and bundled Python live outside the asar.
# This package lives at packages/desktop, so ../.. is the hermes-web-ui repo root.
extraResources:
- from: "build"
to: "build"
filter:
- "icon.png"
- from: "../.."
to: "webui"
filter:
@@ -57,6 +61,7 @@ win:
artifactName: "${productName}-${version}-${arch}.${ext}"
linux:
icon: build/icons
target:
- target: AppImage
arch: [x64, arm64]
+2 -1
View File
@@ -1,7 +1,7 @@
import { app, BrowserWindow, Menu, shell, ipcMain } from 'electron'
import { join } from 'node:path'
import { startWebUiServer, stopWebUiServer, getToken } from './webui-server'
import { hermesBinExists, hermesBin } from './paths'
import { desktopIcon, hermesBinExists, hermesBin } from './paths'
import { initAutoUpdater } from './updater'
const PORT = Number(process.env.HERMES_DESKTOP_PORT) || 8748
@@ -18,6 +18,7 @@ function createWindow() {
title: 'Hermes Studio',
backgroundColor: '#1a1a1a',
autoHideMenuBar: true,
...(process.platform === 'linux' ? { icon: desktopIcon() } : {}),
webPreferences: {
preload: join(__dirname, '..', 'preload', 'index.js'),
contextIsolation: true,
+5
View File
@@ -40,6 +40,11 @@ export function hermesBinExists(): boolean {
return existsSync(hermesBin())
}
export function desktopIcon(): string {
if (app.isPackaged) return resolve(process.resourcesPath, 'build', 'icon.png')
return resolve(app.getAppPath(), 'build', 'icon.png')
}
export function webUiHome(): string {
return process.env.HERMES_WEB_UI_HOME?.trim() || resolve(homedir(), '.hermes-web-ui')
}
@@ -147,6 +147,7 @@ export async function startWebUiServer(port = DEFAULT_PORT): Promise<string> {
// macOS/Linux keep the standard ~/.hermes layout.
HERMES_HOME: agentHome,
HERMES_WEB_UI_HOME: home,
HERMES_WEBUI_STATE_DIR: home,
AUTH_TOKEN: token,
PORT: String(port),
// Prepend bundled Python's bin to PATH so any incidental `python` resolution lands on ours