[PR #14393] [MERGED] Add support for broadcasting to all panes in a tab #30074

Open
opened 2026-01-31 09:38:30 +00:00 by claunia · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/14393
Author: @zadjii-msft
Created: 11/15/2022
Status: Merged
Merged: 7/19/2023
Merged by: @zadjii-msft

Base: mainHead: dev/migrie/f/broadcast-resurrections


📝 Commits (10+)

  • c1fb748 This is a resurrection of #9222. This needs a lot of love, but it works
  • 1651994 Merge remote-tracking branch 'origin/main' into dev/migrie/f/broadcast-resurrections
  • 8862ed8 better borders
  • d685c12 cleanup some bad names
  • e21b6bb that's not the right font
  • 8abe995 Merge remote-tracking branch 'origin/main' into dev/migrie/f/broadcast-resurrections
  • c1c002a proof of concept, this is gonna be way easier
  • e29dc40 yea this is gonna work
  • 0136994 this is far easier
  • 8d7c1ea better names

📊 Changes

21 files changed (+416 additions, -13 deletions)

View changed files

📝 .github/actions/spelling/expect/expect.txt (+1 -0)
📝 src/cascadia/TerminalApp/App.xaml (+9 -0)
📝 src/cascadia/TerminalApp/AppActionHandlers.cpp (+12 -0)
📝 src/cascadia/TerminalApp/CommandPalette.xaml (+7 -0)
📝 src/cascadia/TerminalApp/Pane.cpp (+77 -2)
📝 src/cascadia/TerminalApp/Pane.h (+12 -0)
📝 src/cascadia/TerminalApp/TabHeaderControl.xaml (+6 -0)
📝 src/cascadia/TerminalApp/TerminalPage.cpp (+33 -0)
📝 src/cascadia/TerminalApp/TerminalTab.cpp (+97 -2)
📝 src/cascadia/TerminalApp/TerminalTab.h (+7 -0)
📝 src/cascadia/TerminalApp/TerminalTabStatus.h (+1 -0)
📝 src/cascadia/TerminalApp/TerminalTabStatus.idl (+1 -0)
📝 src/cascadia/TerminalControl/EventArgs.cpp (+3 -0)
📝 src/cascadia/TerminalControl/EventArgs.h (+40 -0)
📝 src/cascadia/TerminalControl/EventArgs.idl (+20 -0)
📝 src/cascadia/TerminalControl/TermControl.cpp (+67 -7)
📝 src/cascadia/TerminalControl/TermControl.h (+9 -1)
📝 src/cascadia/TerminalControl/TermControl.idl (+6 -0)
📝 src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp (+2 -0)
📝 src/cascadia/TerminalSettingsModel/AllShortcutActions.h (+2 -1)

...and 1 more files

📄 Description

Resurrection of #9222.
Spec draft in #9365.

Consensus from community feedback is that the whole of that spec is nice to have, but what REALLY matters is just broadcasting to all the panes in a tab. So, in the interest of best serving our community, I'm pushing this out as the initial implementation, before we figure out the rest of design. Regardless of how we choose to implement the rest of the features detailed in the spec, the UX for this part of the feature remains the same.

This PR adds a new action: toggleBroadcastInput. Performing this action starts broadcasting to all panes in this tab. Keystrokes in one pane will be sent to all panes in the tab.

An icon in the tab is used to indicate when this mode is active. Furthermore, the borders of all panes will be highlighted with SystemAccentColorDark2/SystemAccentColorLight2 (depending on the theme), to indicate they're also active.

  • Closes #2634.
    • (we should lick a reserved thread for follow-ups)

Co-authored-by: Don-Vito khvitaly@gmail.com


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/14393 **Author:** [@zadjii-msft](https://github.com/zadjii-msft) **Created:** 11/15/2022 **Status:** ✅ Merged **Merged:** 7/19/2023 **Merged by:** [@zadjii-msft](https://github.com/zadjii-msft) **Base:** `main` ← **Head:** `dev/migrie/f/broadcast-resurrections` --- ### 📝 Commits (10+) - [`c1fb748`](https://github.com/microsoft/terminal/commit/c1fb7484f6ae3aeac1420bc540d2cfc581f5c83d) This is a resurrection of #9222. This needs a lot of love, but it works - [`1651994`](https://github.com/microsoft/terminal/commit/16519947027ff66b6da238c3f12476aa3c42d5c3) Merge remote-tracking branch 'origin/main' into dev/migrie/f/broadcast-resurrections - [`8862ed8`](https://github.com/microsoft/terminal/commit/8862ed81daadc0a06b9a52ecbb7b2e654726846e) better borders - [`d685c12`](https://github.com/microsoft/terminal/commit/d685c12f8047250bd50a7cc32499fa7b081b2bbd) cleanup some bad names - [`e21b6bb`](https://github.com/microsoft/terminal/commit/e21b6bb325aaf19c75573afade03b05cd1f3877b) that's not the right font - [`8abe995`](https://github.com/microsoft/terminal/commit/8abe995406702afa491a0116ddcc7beb0dcb3795) Merge remote-tracking branch 'origin/main' into dev/migrie/f/broadcast-resurrections - [`c1c002a`](https://github.com/microsoft/terminal/commit/c1c002a6286f8d2c4953e1cc6884ba4d749de559) proof of concept, this is gonna be way easier - [`e29dc40`](https://github.com/microsoft/terminal/commit/e29dc4019cd13823bce70bf97041c282a90fb06e) yea this is gonna work - [`0136994`](https://github.com/microsoft/terminal/commit/0136994124f7826f3182ff4c59a2ed27305d9531) this is far easier - [`8d7c1ea`](https://github.com/microsoft/terminal/commit/8d7c1eaaee3e00de5431f2032f3f48e70d2e5ccf) better names ### 📊 Changes **21 files changed** (+416 additions, -13 deletions) <details> <summary>View changed files</summary> 📝 `.github/actions/spelling/expect/expect.txt` (+1 -0) 📝 `src/cascadia/TerminalApp/App.xaml` (+9 -0) 📝 `src/cascadia/TerminalApp/AppActionHandlers.cpp` (+12 -0) 📝 `src/cascadia/TerminalApp/CommandPalette.xaml` (+7 -0) 📝 `src/cascadia/TerminalApp/Pane.cpp` (+77 -2) 📝 `src/cascadia/TerminalApp/Pane.h` (+12 -0) 📝 `src/cascadia/TerminalApp/TabHeaderControl.xaml` (+6 -0) 📝 `src/cascadia/TerminalApp/TerminalPage.cpp` (+33 -0) 📝 `src/cascadia/TerminalApp/TerminalTab.cpp` (+97 -2) 📝 `src/cascadia/TerminalApp/TerminalTab.h` (+7 -0) 📝 `src/cascadia/TerminalApp/TerminalTabStatus.h` (+1 -0) 📝 `src/cascadia/TerminalApp/TerminalTabStatus.idl` (+1 -0) 📝 `src/cascadia/TerminalControl/EventArgs.cpp` (+3 -0) 📝 `src/cascadia/TerminalControl/EventArgs.h` (+40 -0) 📝 `src/cascadia/TerminalControl/EventArgs.idl` (+20 -0) 📝 `src/cascadia/TerminalControl/TermControl.cpp` (+67 -7) 📝 `src/cascadia/TerminalControl/TermControl.h` (+9 -1) 📝 `src/cascadia/TerminalControl/TermControl.idl` (+6 -0) 📝 `src/cascadia/TerminalSettingsModel/ActionAndArgs.cpp` (+2 -0) 📝 `src/cascadia/TerminalSettingsModel/AllShortcutActions.h` (+2 -1) _...and 1 more files_ </details> ### 📄 Description Resurrection of #9222. Spec draft in #9365. Consensus from community feedback is that the whole of that spec is _nice to have_, but what REALLY matters is just broadcasting to all the panes in a tab. So, in the interest of best serving our community, I'm pushing this out as the initial implementation, before we figure out the rest of design. Regardless of how we choose to implement the rest of the features detailed in the spec, the UX for this part of the feature remains the same. This PR adds a new action: `toggleBroadcastInput`. Performing this action starts broadcasting to all panes in this tab. Keystrokes in one pane will be sent to all panes in the tab. An icon in the tab is used to indicate when this mode is active. Furthermore, the borders of all panes will be highlighted with `SystemAccentColorDark2`/`SystemAccentColorLight2` (depending on the theme), to indicate they're also active. * [x] Closes #2634. - (we should lick a reserved thread for follow-ups) Co-authored-by: Don-Vito khvitaly@gmail.com --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:38:30 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#30074