diff --git a/CHANGELOG.md b/CHANGELOG.md
index 43807ee..cb29594 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,9 +25,8 @@ is not part of this repository.
restart of the machine.
- The JSON of a plan carries `delayedAuto` next to `startType`, the same way `bws list --json`
does, and `alsoStop` for a plan that also stops.
-- A Help button in the top right corner, also opened with F1. It lists the keyboard shortcuts -
- each item does what its key does - opens the query language page and the project's website in
- your browser, and shows the version of the program, which you can copy.
+- A Help button in the top right corner, also opened with F1. It opens the query language page
+ on the project's website in your browser.
- After the list is exported, the foot of the window says how many entries went into which file.
The sentence goes away as soon as you change the search.
- "Set startup type" in the row menu, with the same four settings as the action bar.
@@ -72,6 +71,14 @@ is not part of this repository.
both, and rows narrow each other. The row labels no longer repeat the same tooltip.
- The row menu names its actions the way the action bar does: "Stop...", "Start...",
"Restart...", "Force stop..." and "Force restart...". Each still opens a plan first.
+- "Show the list" on the machine overview is a blue button, so it is easy to find the first time
+ the window opens.
+- In the plan panel, the name of the entry stands out in bold in the title and in every step.
+
+### Removed
+
+- "Copy display name" and "Copy description" from the row menu. Both are still copied by "Copy
+ everything".
### Fixed
diff --git a/src/Bws.Gui/ExternalLinks.cs b/src/Bws.Gui/ExternalLinks.cs
index 41aa6c4..e14c653 100644
--- a/src/Bws.Gui/ExternalLinks.cs
+++ b/src/Bws.Gui/ExternalLinks.cs
@@ -11,9 +11,9 @@
namespace Bws.Gui;
///
-/// The addresses this window hands to a browser, and the two ways it hands them over. One until
-/// 2026-09-24 - the support page - and three since the help menu (UX-GUI-014) offered the project's
-/// website and its query language page.
+/// The addresses this window hands to a browser, and the two ways it hands them over: the support
+/// page and the query language page. The help menu (UX-GUI-014) offered the project's website as a
+/// third for one day, 2026-09-24.
///
/// THE SECOND FILE IN THIS WINDOW ALLOWED TO START SOMETHING, and that is the owner's decision
/// of 2026-09-23 rather than an arrangement of mine. was the only one
@@ -88,9 +88,6 @@ internal static class ExternalLinks
///
internal static Task OpenSupportAsync() => Supporting.Ask();
- /// The project's website, from the help menu - UX-GUI-014, 2026-09-24.
- internal const string ProjectPage = "https://betterwindowsservices.donislawdev.com/";
-
///
/// The page describing the query language, from the help menu. The same address the README
/// gives, so a person who found it there finds the same page here.
@@ -98,19 +95,14 @@ internal static class ExternalLinks
internal const string QueryLanguagePage = "https://betterwindowsservices.donislawdev.com/query-language/";
///
- /// The two pages the help menu offers, each with a hand-over of its own for the reason
+ /// The page the help menu offers, with a hand-over of its own for the reason
/// has one: a second press while the shell still has the first joins
/// it rather than starting another. THE SAME TWO WAYS AS THE SUPPORT PAGE AND NO THIRD - an
/// elevated window hands the address to the desktop, and this adds no call into the shell.
+ /// The project's website had one beside it until 2026-09-24, when it left the menu.
///
- private static readonly ShellHandover Project = Page(ProjectPage);
-
- ///
private static readonly ShellHandover QueryLanguage = Page(QueryLanguagePage);
- /// Hands the project's website to a browser, or says why it did not.
- internal static Task OpenProjectPageAsync() => Project.Ask();
-
/// Hands the query language page to a browser, or says why it did not.
internal static Task OpenQueryLanguagePageAsync() => QueryLanguage.Ask();
diff --git a/src/Bws.Gui/HelpMenu.cs b/src/Bws.Gui/HelpMenu.cs
index 32f56af..be3e9fc 100644
--- a/src/Bws.Gui/HelpMenu.cs
+++ b/src/Bws.Gui/HelpMenu.cs
@@ -1,72 +1,34 @@
namespace Bws.Gui;
///
-/// What the Help button offers: the keyboard shortcuts, the two pages on the project's website, and
-/// the version of this program. UX-GUI-014 with the shortcut half of UX-GUI-010, owner's decision
-/// 2026-09-24 - until that day the window named Ctrl+F, Ctrl+C and Ctrl+A nowhere and said its own
-/// version nowhere.
+/// What the Help button offers: the query language page on the project's website, and nothing
+/// else since 2026-09-24 - owner's decision.
///
-/// A LIST OF DATA BUILT BY , NOT A SECOND MENU WRITTEN OUT - GUI
-/// rules 2 and 8. An item here has exactly the shape of an item on a row: words, a key written
-/// beside them, and what a press does. So it is the row menu's entry and the row menu's item style,
-/// and the name "row" on them is the one place this reuse shows.
+/// IT HELD NINE ITEMS FOR ONE DAY. UX-GUI-014 built it earlier the same day with the six
+/// keyboard shortcuts, the project's website and the version of this program, and the owner cut it
+/// to this one. The price is said rather than left for somebody to find: F5, Ctrl+F,
+/// Ctrl+A and Esc are named in no text of the window again (the half of UX-GUI-010 this menu had
+/// answered), and the window no longer says its own version - `bws --version` does. Ctrl+C and
+/// Enter are still written beside their items in the row menu.
+///
+/// STILL A MENU WITH ONE ITEM RATHER THAN A BUTTON THAT OPENS THE PAGE - owner's choice
+/// between the two. A press on "Help" that leaves the program for a browser with nothing in between
+/// would be a surprise, and a menu can take a second item back without the button changing what
+/// it does.
///
-/// EVERY SHORTCUT ITEM DOES WHAT IT NAMES, through the same the key
-/// goes through. A menu that described the keys while a second road carried them out would be
-/// two answers to one question, which this window was caught by on 2026-09-02. The one exception is
-/// Ctrl+A, which is the grid's own key rather than one of ours, and the item asks the grid for the
-/// same thing.
+/// A LIST OF DATA BUILT BY , NOT A SECOND MENU WRITTEN OUT - GUI
+/// rules 2 and 8, and the item is the row menu's entry for that reason.
///
-/// The two pages go out through and nothing else, exactly as
-/// Donate does - an elevated window hands the address to the desktop, and this program still
-/// connects to nothing (`ADR-19`).
+/// The page goes out through and nothing else, exactly as Donate
+/// does - an elevated window hands the address to the desktop, and this program still connects to
+/// nothing (`ADR-19`).
///
internal static class HelpMenu
{
internal static IReadOnlyList> GroupsFor(MainWindow window) =>
[
[
- new RowMenuEntry("gui.help.find", "gui.help.find.gesture", () => Pressed(window, Shortcut.FocusQuery)),
- new RowMenuEntry("gui.help.refresh", "gui.help.refresh.gesture", () => Pressed(window, Shortcut.Refresh)),
- new RowMenuEntry("gui.help.details", "gui.menu.details.gesture", () => Pressed(window, Shortcut.OpenDetails)),
- new RowMenuEntry("gui.help.copy", "gui.menu.copyAll.gesture", () => Pressed(window, Shortcut.CopyRow)),
- new RowMenuEntry("gui.help.selectAll", "gui.help.selectAll.gesture", () => Task.FromResult(window.SelectEverything())),
- new RowMenuEntry("gui.help.back", "gui.help.back.gesture", () => Pressed(window, Shortcut.Back))
- ],
- [
- new RowMenuEntry("gui.help.queryLanguage", null, () => window.OpenPage(ExternalLinks.OpenQueryLanguagePageAsync)),
- new RowMenuEntry("gui.help.projectPage", null, () => window.OpenPage(ExternalLinks.OpenProjectPageAsync))
- ],
- [
- new RowMenuEntry("gui.help.version", null, () => Copied(window), () => VersionNumber)
+ new RowMenuEntry("gui.help.queryLanguage", null, () => window.OpenPage(ExternalLinks.OpenQueryLanguagePageAsync))
]
];
-
- ///
- /// What the version item says and copies: the stamped number, or words saying there is none -
- /// rule 8 of CLAUDE.md applied to one number rather than a guess that looks like one.
- ///
- internal static string VersionNumber => Release.Number ?? Texts.Of("gui.help.versionUnknown");
-
- ///
- /// A press of the key the item names. The work the key starts travels with it, so an item
- /// that reads the machine again is awaited as the key's own press is.
- ///
- private static Task Pressed(MainWindow window, Shortcut shortcut)
- {
- window.Act(shortcut, out var work);
-
- return work;
- }
-
- ///
- /// The version on the clipboard, for somebody reporting a fault. A refusal from the clipboard is
- /// said in the status line by , as it is for a copied row.
- ///
- private static Task Copied(MainWindow window)
- {
- window.Put(VersionNumber);
-
- return Task.CompletedTask;
- }
}
diff --git a/src/Bws.Gui/MainWindow.Help.cs b/src/Bws.Gui/MainWindow.Help.cs
index f834d73..c58a53c 100644
--- a/src/Bws.Gui/MainWindow.Help.cs
+++ b/src/Bws.Gui/MainWindow.Help.cs
@@ -3,8 +3,8 @@
namespace Bws.Gui;
///
-/// The window's half of the Help button: the menu under it, F1, and the two things the menu does
-/// that are not a key press already - UX-GUI-014, owner's decision 2026-09-24.
+/// The window's half of the Help button: the menu under it, F1, and opening the page the menu
+/// offers - UX-GUI-014, owner's decision 2026-09-24.
///
/// A partial of its own because the constructor is at the analyser's length, the reason
/// MainWindow.Overview.cs gives for the same shape: one line there, and the wiring here. What the
@@ -15,8 +15,7 @@ public partial class MainWindow
///
/// Hangs the help menu under its button. Called once, from the constructor.
///
- /// Built with the row menu's builder and the row menu's item style, which is what makes
- /// the key beside each shortcut appear - the style binds InputGestureText, and HelpMenu says why
+ /// Built with the row menu's builder and the row menu's item style, and HelpMenu says why
/// the entry is the row's.
///
private void IntroduceTheHelp()
@@ -31,17 +30,6 @@ private void IntroduceTheHelp()
///
internal bool OpenHelp() => ButtonMenu.OpenUnder(Scope.Help);
- ///
- /// Picks every entry in the list - what Ctrl+A does in the grid, asked of the grid rather than
- /// done a second way, so the menu item and the key are the same act.
- ///
- internal bool SelectEverything()
- {
- Entries.SelectAll();
-
- return true;
- }
-
///
/// Hands one of the project's pages to a browser through , and says
/// in the status line why it did not when it did not - the same shape as the Donate button.
diff --git a/src/Bws.Gui/OverviewView.xaml b/src/Bws.Gui/OverviewView.xaml
index f3b66c6..69e3bf6 100644
--- a/src/Bws.Gui/OverviewView.xaml
+++ b/src/Bws.Gui/OverviewView.xaml
@@ -109,12 +109,7 @@
ending at three heights read as a mistake rather than as three independent things.
A row of equal cards is a row, a ragged one is a pile.
-->
-
+