- Internal
Desktop.Platformlayer with domain behaviours (Window, Content, Notification, Media, System) and backends (Desktop.Backend.Wx,Desktop.Backend.Json,Desktop.Backend.Browser) - Bridge JSON/TCP transport embedded as
Desktop.Bridge.Transport(legacy[module, method, args]wire format preserved for native hosts) - Removed separate
{:wx, hex: :bridge}dependency on Android/iOS; mobile builds useDesktop.Backend.Jsondirectly - Optional
config :desktop, :backend, :auto | :wx | :json | :browseroverride - Menu adapters:
Desktop.Menu.Adapter.JsonandDesktop.Menu.Adapter.Browser - Public
Desktop.*APIs unchanged (Desktop.Window,Desktop.Env,Desktop.Menu, etc.) Desktop.Platform.System.os_description/0— backend-safe replacement for:wx_misc.getOsDescription/0(Wx, Json bridge, Browser)Desktop.Platform.System.custom_event/2— mobile bridge custom events (replaces HexBridge[:custom_event, …]calls)Desktop.Platform.Content.reload/1andDesktop.Window.reload/1— backend-safe webview reload (replaces:wxWebView.reload/1)- Test suite:
mix test.fast,xvfb-run mix test.wx,mix test.guard— seedocs/TEST_PLAN.md - Compile without OTP
:wx: conditionalerl_src_pathsandDesktop.Wxfallbacks (nowx.hrlrequired)
- Support for iOS hibernation and wakeup
mix desktop.check_toolchainverifies running Erlang/OTP (major) and Elixir against.tool-versions; docs describe mise and asdf equally for Linux contributors
- Support for
~Hsigil with<item onclick={...}> - Changed Menu XML escaping to LiveView automatic escaping logic from LiveView HTML tokenizer & engine.
- Removed
Menu.escape_attribute/1andMenu.escape/1 - Dropped
:xmerldependency
- Added
Env.subscribe/1to listen to MacOS application events such as{:open_url, url}when a url associated with the application is clicked. - Using (experimental) dbus support to render the systray icon on linux
- Added
Menu.escape_attribute/1 - Added
Window.url/1 - Added
Window.hide/1andWindow.is_hidden/ - Fixed MacOS "Quit" menu item
- Other fixes
- Removed the bleeding edge notices because Erlang OTP 24 is now broadly available for Windows/Linux/MacOS
- Added build support for iOS devices
- Moved most phoenix dependencies out to allow using Phoenix 1.6 / esbuild