diff --git a/src/CodeShellManager/MainWindow.xaml b/src/CodeShellManager/MainWindow.xaml
index c324731..c517e0e 100644
--- a/src/CodeShellManager/MainWindow.xaml
+++ b/src/CodeShellManager/MainWindow.xaml
@@ -218,9 +218,6 @@
-
diff --git a/src/CodeShellManager/MainWindow.xaml.cs b/src/CodeShellManager/MainWindow.xaml.cs
index 6d821de..d0bb6c3 100644
--- a/src/CodeShellManager/MainWindow.xaml.cs
+++ b/src/CodeShellManager/MainWindow.xaml.cs
@@ -729,15 +729,6 @@ private async Task InitDatabaseAsync()
private void NewSession_Click(object sender, RoutedEventArgs e) => OpenNewSessionDialog();
- private void BroadcastRemoteControl_Click(object sender, RoutedEventArgs e)
- {
- foreach (var session in _vm.Sessions)
- {
- session.Bridge?.SendToTerminal("/remote-control\r");
- session.AlertDetector?.NotifyUserInteracted();
- }
- }
-
private void OpenNewSessionDialog(string defaultFolder = "")
=> OpenNewSessionDialogCore(defaultFolder, parent: null);
@@ -2440,6 +2431,21 @@ private System.Windows.Controls.ContextMenu BuildSidebarQuickMenu()
// Global bulk actions — operate on every live or dormant session, not just one group.
var bulkActions = new System.Windows.Controls.MenuItem { Header = "Bulk actions" };
+
+ // Lived on the toolbar as a large "⊕ RC All" button next to "+ New Session", where it
+ // was easy to hit by mistake for something rarely wanted. Mirrors the per-group
+ // "Remote control all in group" entry.
+ var remoteControlAll = new System.Windows.Controls.MenuItem { Header = "Remote control all" };
+ remoteControlAll.Click += (_, _) =>
+ {
+ foreach (var vm in _vm.Sessions.ToList())
+ {
+ vm.Bridge?.SendToTerminal("/remote-control\r");
+ vm.AlertDetector?.NotifyUserInteracted();
+ }
+ };
+ bulkActions.Items.Add(remoteControlAll);
+
var wakeAllDormant = new System.Windows.Controls.MenuItem { Header = "Wake all dormant" };
wakeAllDormant.Click += async (_, _) =>
{
@@ -2562,6 +2568,7 @@ private System.Windows.Controls.ContextMenu BuildSidebarQuickMenu()
int liveCount = _vm.Sessions.Count;
int dormantCount = _sessionManager.Sessions.Count(s => s.IsDormant);
+ remoteControlAll.IsEnabled = liveCount > 0;
wakeAllDormant.IsEnabled = dormantCount > 0;
restartAllGlobal.IsEnabled = liveCount > 0;
sleepAllGlobal.IsEnabled = liveCount > 0;