HackerOs.Taskbar.Blazor
2.2.1
See the version list below for details.
dotnet add package HackerOs.Taskbar.Blazor --version 2.2.1
NuGet\Install-Package HackerOs.Taskbar.Blazor -Version 2.2.1
<PackageReference Include="HackerOs.Taskbar.Blazor" Version="2.2.1" />
<PackageVersion Include="HackerOs.Taskbar.Blazor" Version="2.2.1" />
<PackageReference Include="HackerOs.Taskbar.Blazor" />
paket add HackerOs.Taskbar.Blazor --version 2.2.1
#r "nuget: HackerOs.Taskbar.Blazor, 2.2.1"
#:package HackerOs.Taskbar.Blazor@2.2.1
#addin nuget:?package=HackerOs.Taskbar.Blazor&version=2.2.1
#tool nuget:?package=HackerOs.Taskbar.Blazor&version=2.2.1
HackerOs.Taskbar.Blazor
A taskbar Razor component (Taskbar) driven entirely by host-supplied
contracts instead of a fixed set of injected services: ITaskbarWindowSource,
ITaskbarCommandDispatcher, ITaskbarLauncher, ITaskbarStatusSource,
ITaskbarClockPanelSource, ITaskbarSessionCommands. Every contract
parameter is optional — the corresponding taskbar region (launcher trigger,
clock, session control) simply does not render when its contract isn't
supplied.
The clock is the taskbar's one extensible surface: ITaskbarClockPanelSource
controls whether its panel is open, and the ClockPanelContent RenderFragment
parameter supplies what's inside it. This package owns only the trigger button
and the panel's anchoring/positioning — it never inspects ClockPanelContent,
so the panel's actual design (notifications, calendar, a platform-mode toggle,
anything else) lives entirely in the host application, outside this package.
ITaskbarClockPanelSource.UnreadCount (0 by default) puts a dot on the clock
and gives the count in its accessible name and tooltip (ADR 0196).
Usage
<Taskbar WindowSource="_windowSource"
Commands="_commands"
Launcher="_launcher"
StatusSource="_status"
ClockPanelSource="_clockPanel"
ClockPanelContent="@ClockPanelFragment"
Options="_options" />
This example omits SessionCommands — a host with no session concept just
doesn't provide it, and the taskbar renders without that region. HackerOS itself
no longer supplies it: its Power button (sign out, switch user, restart) lives in
the Start menu (ADR 0195). TaskbarOptions
carries only the labels a host would otherwise be forced to see hardcoded (the
launcher trigger's mark and text); which taskbar zones appear is controlled
entirely by which contracts you supply.
Pair this package with HackerOs.Windowing.Blazor for the window chrome that
these contracts typically sit alongside. See HackerOs.Windowing.SampleHost
in the source repository for a complete, minimal host that uses only these
packages, including sample ITaskbarWindowSource/ITaskbarCommandDispatcher/
ITaskbarLauncher/ITaskbarStatusSource implementations.
Context menus
ITaskbarContextMenus (the ContextMenus parameter) lets the host give the taskbar its own
context menus (ADR 0194): TaskbarAttributes are set on the taskbar itself and
WindowItemAttributes(id) on the button of each window, with @attributes. The taskbar never
reads them; the host's menu system does (HackerOS attaches its OS context menu there). Without the
parameter the browser's menu stays.
Localization
The package's texts (accessible labels, the launcher label and the window states) live in Resources/Strings.resx
(English) and Resources/Strings.fr.resx (French), read through
HackerOs.Theming.Blazor.Localization.PackageStringLocalizer (ADR 0104): a host that
registers an IStringLocalizer<T> (HackerOS registers its session-language
SessionStringLocalizer<T>) gets its language; a host without localization gets English.
TaskbarOptions.LauncherLabel overrides the package's "Applications" when set; left null it
is localized. The clock is formatted with the long time pattern ("T") of
ITaskbarStatusSource.FormatCulture: a default interface member returning the invariant culture
(HH:mm:ss), which HackerOS implements with the session's LC_TIME culture (9:00:00 AM in
en-US, 09:00:00 in fr-FR).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- HackerOs.AppSdk.Icons (>= 2.2.1)
- HackerOs.Theming.Blazor (>= 2.2.1)
- HackerOs.Windowing.Abstractions (>= 2.2.1)
- HackerOs.Windowing.Core (>= 2.2.1)
- Microsoft.AspNetCore.Components.Web (>= 10.0.13)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on HackerOs.Taskbar.Blazor:
| Package | Downloads |
|---|---|
|
HackerOs.Platform.Blazor
HackerOS Blazor shell: desktop, launcher, window launching, dialogs and lazy app loading. For composing an OS host. |
GitHub repositories
This package is not used by any popular GitHub repositories.
HackerOS 2.2.1, changes for app developers:
- Mouse Back and Forward buttons in apps. The mouse Back button, Alt+← and the phone's Back (Android button or gesture, iOS swipe) now go to the active app instead of moving the browser tab back and leaving HackerOS; the mouse Forward button and Alt+→ go forward. On a phone, Back follows the ◁ button. Apps receive them through IAppBackHandler and the new IAppForwardHandler, with the new MouseButton and SystemBack sources.
- App packages carry their satellite assemblies. HackerOsPack puts the satellite assemblies of the app's own assemblies in the package at lib/<culture>/<assembly>.resources.dll; the OS checks them and loads them before the app's first render.
- HackerOsPack packs every static resource of an app. The package now holds the whole wwwroot/, the collocated .razor.js files and the scoped CSS bundle, declared in the package's manifest with their SHA-256; the publish workflow of the hackeros-solution template copies that manifest into the catalog folder.
- Signing tool for app authors. dotnet build -t:HackerOsKeyGen creates an author's signing key, HackerOsPack signs each package with the HACKEROS_APP_SIGNING_KEY secret, and the hackeros-solution template publishes the signed packages on the hackeros-packages branch on each version tag. Administrators require an author's signature by adding their public key to [signing-keys].
Release notes: https://github.com/Kazo-ca/HackerOs/releases/tag/v2.2.1