diff --git a/ecoos_daemon/ts/daemon/process-manager.ts b/ecoos_daemon/ts/daemon/process-manager.ts index 2151442..6eab4d5 100644 --- a/ecoos_daemon/ts/daemon/process-manager.ts +++ b/ecoos_daemon/ts/daemon/process-manager.ts @@ -131,9 +131,14 @@ for_window [app_id="chromium-browser"] fullscreen enable // Write sway config before starting const configPath = await this.writeSwayConfig(config); + // Use a fixed socket path so we can reliably connect + const swaySocketPath = `${config.runtimeDir}/sway-ipc.sock`; + this.swaySocket = swaySocketPath; + const env: Record = { XDG_RUNTIME_DIR: config.runtimeDir, WLR_BACKENDS: config.backends, + SWAYSOCK: swaySocketPath, }; if (config.allowSoftwareRendering) { diff --git a/ecoos_daemon/ts/version.ts b/ecoos_daemon/ts/version.ts index 0fdd7d6..430296b 100644 --- a/ecoos_daemon/ts/version.ts +++ b/ecoos_daemon/ts/version.ts @@ -1 +1 @@ -export const VERSION = "0.4.11"; +export const VERSION = "0.4.12"; diff --git a/ecoos_daemon/vdagent/eco-vdagent.py b/ecoos_daemon/vdagent/eco-vdagent.py index f1ddda3..58e642a 100644 --- a/ecoos_daemon/vdagent/eco-vdagent.py +++ b/ecoos_daemon/vdagent/eco-vdagent.py @@ -110,9 +110,16 @@ class EcoVDAgent: # Search common locations runtime_dir = os.environ.get('XDG_RUNTIME_DIR', '/run/user/1000') - # Try to find sway socket + # Try to find sway socket - check fixed path first, then glob patterns + import glob + + # Check for fixed socket path first (set by eco-daemon) + fixed_socket = f'{runtime_dir}/sway-ipc.sock' + if os.path.exists(fixed_socket): + return fixed_socket + + # Fall back to glob patterns for standard Sway socket naming for pattern in [f'{runtime_dir}/sway-ipc.*.sock', '/run/user/*/sway-ipc.*.sock']: - import glob sockets = glob.glob(pattern) if sockets: return sockets[0] diff --git a/isobuild/config/includes.chroot/opt/eco/bin/eco-daemon b/isobuild/config/includes.chroot/opt/eco/bin/eco-daemon index 1412263..eb46dba 100755 Binary files a/isobuild/config/includes.chroot/opt/eco/bin/eco-daemon and b/isobuild/config/includes.chroot/opt/eco/bin/eco-daemon differ diff --git a/isobuild/config/includes.chroot/opt/eco/bin/eco-vdagent b/isobuild/config/includes.chroot/opt/eco/bin/eco-vdagent index f1ddda3..58e642a 100755 --- a/isobuild/config/includes.chroot/opt/eco/bin/eco-vdagent +++ b/isobuild/config/includes.chroot/opt/eco/bin/eco-vdagent @@ -110,9 +110,16 @@ class EcoVDAgent: # Search common locations runtime_dir = os.environ.get('XDG_RUNTIME_DIR', '/run/user/1000') - # Try to find sway socket + # Try to find sway socket - check fixed path first, then glob patterns + import glob + + # Check for fixed socket path first (set by eco-daemon) + fixed_socket = f'{runtime_dir}/sway-ipc.sock' + if os.path.exists(fixed_socket): + return fixed_socket + + # Fall back to glob patterns for standard Sway socket naming for pattern in [f'{runtime_dir}/sway-ipc.*.sock', '/run/user/*/sway-ipc.*.sock']: - import glob sockets = glob.glob(pattern) if sockets: return sockets[0] diff --git a/package.json b/package.json index 96aa707..e2daf5b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@ecobridge/eco-os", - "version": "0.4.11", + "version": "0.4.12", "private": true, "scripts": { "build": "[ -z \"$CI\" ] && npm version patch --no-git-tag-version || true && node -e \"const v=require('./package.json').version; require('fs').writeFileSync('ecoos_daemon/ts/version.ts', 'export const VERSION = \\\"'+v+'\\\";\\n');\" && pnpm run daemon:bundle && cp ecoos_daemon/bundle/eco-daemon isobuild/config/includes.chroot/opt/eco/bin/ && mkdir -p .nogit/iso && docker build --no-cache -t ecoos-builder -f isobuild/Dockerfile . && docker run --privileged --name ecoos-build ecoos-builder && docker cp ecoos-build:/output/ecoos.iso .nogit/iso/ecoos.iso && docker rm ecoos-build",