feat(launcher): URL-type event_file support + displayplacer Electron task
URL files: event_file.filename = 'https://...' is now a first-class
file type in the launcher.
- is_url derived rune detects https/http filename prefix
- URL branch in handle_open_file() runs before cache/native branches
(no download, no temp copy, no hash)
- Offline guard: warns and blocks click if navigator.onLine is false;
online/offline listeners registered only for URL rows (no-op on files)
- Native mode: opens via native.open_external({ url, app: 'chrome' })
with silent fallback to default browser
- Browser mode: window.open() with noopener
- display_mode default: 'mirror' (URLs typically just need the screen
mirrored, not extended presenter view)
- Button badge shows Link2 icon + WifiOff warning when offline
- Button text uses event_file.title as label (falls back to URL)
- Test mode popup: skips Steps 1-2 (N/A), shows open_external call
DEFAULT_LAUNCH_PROFILES: add 'url' key (display_mode: 'mirror')
Electron TODO: added set_display_layout / displayplacer per-device
config task to aether_app_native_electron/documentation/TODO_AGENTS.md
with full contract details and resources
This commit is contained in:
@@ -345,6 +345,18 @@ end tell`
|
||||
display_mode: 'none'
|
||||
// No open_cmd — execution falls through to open_local_file_v2(path)
|
||||
// No post_script
|
||||
},
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// URL-type files: event_file.filename IS the URL (https://...)
|
||||
// Opened via native.open_external({ url, app: 'chrome' }) — no local file involved.
|
||||
// display_mode 'extend' is the default for URL presentations (e.g. Google Slides).
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
url: {
|
||||
app: 'Chrome',
|
||||
display_mode: 'mirror'
|
||||
// No open_cmd or post_script — URL branch in handle_open_file() handles this
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user