Repository navigation
Improve native macOS menu bar, Dock menu, and About window integration - #68
Merged
Marc-André Moreau (mamoreau-devolutions) merged 2 commits intoNov 12, 2026
Merged
Conversation
- Attach the macOS application NativeMenu during Application.Initialize() (alongside Application.Name) before Avalonia's SetupApplicationMenuExporter runs so DT's menu replaces the fallback 'About Avalonia' item, while keeping Avalonia's standard Services, Hide, Hide Others, Show All, and Quit items coordinated through ShutdownRequested. - Add a standalone macOS AboutWindow with Devolutions Terminal branding, version info, and project links. - Add dynamic NativeDock menu support and comprehensive state-aware Window NativeMenus (File, Edit, View, Window, Help, plus secondary windows). - Hide Iseberg's in-window menu bar on macOS and mirror File/Edit/View/Tools/Debug/Add-ons/Help into the native menu bar. - Enable terminal right-click/Control-click context menus by default on macOS and render vector icons where Windows Fluent font glyphs are unavailable. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 18:55 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 18:55 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 18:56 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 18:56 — with
GitHub Actions
Active
Stop the listener and drain in-flight upgraded WebSocket handlers before closing HttpListener, and ignore ObjectDisposedException/HttpListenerException when managed HttpListener flushes already-disposed upgraded NetworkStreams. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 19:11 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 19:11 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 19:11 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
deployed
to
publish-dry-run
November 12, 2026 19:11 — with
GitHub Actions
Active
Marc-André Moreau (mamoreau-devolutions)
merged commit Nov 12, 2026
b429f38
into
master
54 checks passed
Marc-André Moreau (mamoreau-devolutions)
deleted the
macos-native-menus
branch
November 12, 2026 19:19
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings consistent, native macOS menu integration across Devolutions Terminal strictly using Avalonia APIs (
NativeMenu,NativeDock,ContextMenu, andIClassicDesktopStyleApplicationLifetime):App.axaml,App.axaml.cs,AboutWindow.cs):Application.Name = "Devolutions Terminal"and attaches the applicationNativeMenuinsideApplication.Initialize()(beforeAppBuilder.AfterSetuprunsSetupApplicationMenuExporter) so Avalonia does not fall back to its generic"About Avalonia"menu item and dialog.Services,Hide Devolutions Terminal,Hide Others,Show All, andQuit) while coordinatingQuit(⌘Q/ Dock Quit) withMainWindow.RequestApplicationCloseAsyncviadesktop.ShutdownRequested.AboutWindowon macOS with Devolutions Terminal branding, version info, project links, and copyright.MacOsNativeMenu.cs,MainWindow.axaml.cs,TerminalWindowRouter.cs):NativeDockright-click menu listing open terminal windows,New Window,New Window With Profile, andNew Tab.NativeMenus (File, Edit, View, Window, Help) with liveNeedsUpdatestate synchronization (profiles submenu, split/close pane vs. tab state, text-box/editor Undo/Redo/Cut/Copy/Paste/Select All routing, marks, font zoom, full-screen/focus toggles, and open tabs list), plus secondary window menus (⌘W,Edit,Window).PowerShellIseTab.cs,WorkbenchControl.Hosting.cs):<Menu>bar on macOS and mirrors Iseberg's File, Edit, View, Tools, Debug, Add-ons, and Help menus into the native macOS menu bar.TermControl.cs,MainWindow.axaml.cs,SettingsLoader.cs):rightClickContextMenutotrueon macOS (supporting both right-click and Control-click) with terminal/hyperlink/tab context menus, and renders vectorPathicons where Windows-onlySegoe Fluent Iconsglyphs are unavailable.Testing
MacOsNativeMenuTests,WindowActionRegistrationTests, andSettingsParityTests.Devolutions.Terminal.slnx(with and withoutEnablePowerShellIse) with zero warnings/errors and verified live macOS menu bar, Dock menu, and About window behavior.