mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-16 21:53:07 +00:00
fix: resolve desktop entry launch failure and hide Electron menu bar on Linux
- Add --ozone-platform-hint=auto before app.whenReady() so Electron auto-detects X11 vs Wayland when launched from a desktop entry where the display protocol is not guaranteed (fixes immediate crash on Fedora/GNOME Wayland sessions) - Add autoHideMenuBar: true to BrowserWindow so the default Chromium File/Edit/View/Help menu bar is hidden by default (still accessible via Alt); removes visible Electron significance from the packaged app - Add scripts/rpm-after-install.sh and wire it via afterInstall in the electron-builder RPM config to chmod 4755 chrome-sandbox, ensuring the setuid sandbox works on kernels with restricted user namespaces Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -275,7 +275,8 @@
|
||||
"libuuid"
|
||||
],
|
||||
"compression": "xz",
|
||||
"vendor": "AutoMaker Team"
|
||||
"vendor": "AutoMaker Team",
|
||||
"afterInstall": "scripts/rpm-after-install.sh"
|
||||
},
|
||||
"nsis": {
|
||||
"oneClick": false,
|
||||
|
||||
6
apps/ui/scripts/rpm-after-install.sh
Normal file
6
apps/ui/scripts/rpm-after-install.sh
Normal file
@@ -0,0 +1,6 @@
|
||||
#!/bin/bash
|
||||
# Set the setuid bit on chrome-sandbox so Electron's sandbox works on systems
|
||||
# where unprivileged user namespaces are restricted (e.g. hardened kernels).
|
||||
# On Fedora/RHEL with standard kernel settings this is not strictly required,
|
||||
# but it is a safe no-op when not needed.
|
||||
chmod 4755 /opt/Automaker/chrome-sandbox 2>/dev/null || true
|
||||
@@ -46,6 +46,9 @@ export function createWindow(): void {
|
||||
contextIsolation: true,
|
||||
nodeIntegration: false,
|
||||
},
|
||||
// Hide the default Electron/Chromium menu bar on Linux (File/Edit/View/Help).
|
||||
// It still appears on Alt-press so keyboard-only users aren't locked out.
|
||||
autoHideMenuBar: true,
|
||||
// titleBarStyle is macOS-only; use hiddenInset for native look on macOS
|
||||
...(process.platform === 'darwin' && { titleBarStyle: 'hiddenInset' as const }),
|
||||
backgroundColor: '#0a0a0a',
|
||||
|
||||
@@ -48,6 +48,13 @@ if (isDev) {
|
||||
}
|
||||
}
|
||||
|
||||
// On Linux, auto-detect X11 vs Wayland so the app launches correctly from
|
||||
// desktop entries where the display protocol isn't guaranteed to be X11.
|
||||
// Must be set before app.whenReady() — has no effect on macOS/Windows.
|
||||
if (process.platform === 'linux') {
|
||||
app.commandLine.appendSwitch('ozone-platform-hint', 'auto');
|
||||
}
|
||||
|
||||
// Register IPC handlers
|
||||
registerAllHandlers();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user