|
| 1 | +--- |
| 2 | +title: Steam Linux Startup Notes |
| 3 | +description: Explains why the default Steam for Linux launch disables Electron sandboxing, the security trade-off involved, and how to launch hagicode-desktop directly to preserve the default sandbox. |
| 4 | +sidebar: |
| 5 | + order: 10 |
| 6 | +--- |
| 7 | + |
| 8 | +If you start HagiCode Desktop from Steam for Linux, the default launch path currently prioritizes startup compatibility over preserving Electron's default sandbox protection. |
| 9 | + |
| 10 | +This is not presented as the ideal long-term technical fix. It is the current compatibility fallback for the unresolved conflict between the Steam sandbox and the Electron sandbox during startup. |
| 11 | + |
| 12 | +## Start with the short version |
| 13 | + |
| 14 | +Think of the current behavior as two startup choices: |
| 15 | + |
| 16 | +1. **Default Steam launch**: compatibility first, launches with `--disable-setuid-sandbox -no-sandbox`, and avoids the known startup conflict more reliably, but does not keep Electron's default sandbox. |
| 17 | +2. **Manual direct launch of `hagicode-desktop`**: requires you to enter the actual install directory and start the desktop binary yourself, which avoids the Steam launcher flags and preserves Electron's default sandbox. |
| 18 | + |
| 19 | +:::caution[The default Steam path is not risk-free] |
| 20 | +`--disable-setuid-sandbox -no-sandbox` is the current compatibility path, but it also removes one of Electron's default runtime protection layers. |
| 21 | +::: |
| 22 | + |
| 23 | +## Why the default Steam launch disables Electron sandboxing |
| 24 | + |
| 25 | +On Linux, Steam introduces its own sandbox layer around the application environment. When HagiCode Desktop starts as an Electron application inside that environment, keeping Electron sandboxing enabled in the default way can currently lead to a sandbox conflict and startup crashes. |
| 26 | + |
| 27 | +That is why the current default Steam launch path appends `--disable-setuid-sandbox -no-sandbox`. The goal is straightforward: |
| 28 | + |
| 29 | +- keep the app launchable inside Steam |
| 30 | +- avoid the immediate startup crash path |
| 31 | +- use a compatibility default while a cleaner technical resolution is still unavailable |
| 32 | + |
| 33 | +:::note[Current status] |
| 34 | +The team does not yet have a clearer technical fix that keeps Electron's default sandbox enabled inside the Steam sandbox environment while still avoiding the current startup failures. |
| 35 | +::: |
| 36 | + |
| 37 | +## Startup choice A: use the default Steam launch |
| 38 | + |
| 39 | +If your priority is "open the app from Steam and get in reliably," stay with the default Steam startup path. |
| 40 | + |
| 41 | +Its characteristics are: |
| 42 | + |
| 43 | +- it matches the current packaged default behavior |
| 44 | +- it does not require you to inspect the install directory |
| 45 | +- it automatically uses the compatibility flags `--disable-setuid-sandbox -no-sandbox` |
| 46 | +- the trade-off is that Electron's default sandbox is not preserved |
| 47 | + |
| 48 | +This path fits users who: |
| 49 | + |
| 50 | +- want the standard Steam launch experience |
| 51 | +- value startup reliability first |
| 52 | +- do not want to manage a manual launch command |
| 53 | + |
| 54 | +## Startup choice B: launch `hagicode-desktop` directly |
| 55 | + |
| 56 | +If your priority is preserving Electron's default sandbox behavior, do not use the default Steam launcher path for that startup. Instead, go to the installed HagiCode Desktop directory and run the `hagicode-desktop` binary directly. |
| 57 | + |
| 58 | +Use this general process: |
| 59 | + |
| 60 | +1. Locate the actual HagiCode Desktop install directory inside your Steam library |
| 61 | +2. Enter the directory that contains the `hagicode-desktop` binary |
| 62 | +3. Run `hagicode-desktop` directly |
| 63 | +4. Avoid starting that session through Steam's default launch button |
| 64 | + |
| 65 | +:::tip[Why this preserves the default Electron sandbox] |
| 66 | +When you launch `hagicode-desktop` directly, you avoid the default Steam startup path and its compatibility flags, so the app starts in Electron's default mode instead of inheriting `--disable-setuid-sandbox -no-sandbox`. |
| 67 | +::: |
| 68 | + |
| 69 | +:::note[This guidance stays path-agnostic on purpose] |
| 70 | +There is no single install path that is correct for every Linux distribution, Steam library location, or custom user setup. The stable instruction is to find your own install directory first and launch `hagicode-desktop` from there. |
| 71 | +::: |
| 72 | + |
| 73 | +## How to choose |
| 74 | + |
| 75 | +Use this rule of thumb: |
| 76 | + |
| 77 | +- if you want the most compatible "launch from Steam" path, choose **Default Steam launch** |
| 78 | +- if you want to preserve Electron's default sandbox, choose **Manual direct launch of `hagicode-desktop`** |
| 79 | + |
| 80 | +This is a trade-off between the compatibility-first default and the sandbox-preserving manual path, not a claim that one choice is universally correct for every user. |
| 81 | + |
| 82 | +## Why this page exists as a stable help target |
| 83 | + |
| 84 | +If HagiCode Desktop later adds a startup help entry such as "how to enable sandbox," this FAQ page is intended to remain the canonical explanation target. |
| 85 | + |
| 86 | +For this change, the deliverable is documentation only: explain the current behavior, state the trade-off, and document the manual alternative without changing runtime behavior. |
0 commit comments