HackerOs.Taskbar.Blazor 2.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package HackerOs.Taskbar.Blazor --version 2.2.0
                    
NuGet\Install-Package HackerOs.Taskbar.Blazor -Version 2.2.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HackerOs.Taskbar.Blazor" Version="2.2.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="HackerOs.Taskbar.Blazor" Version="2.2.0" />
                    
Directory.Packages.props
<PackageReference Include="HackerOs.Taskbar.Blazor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add HackerOs.Taskbar.Blazor --version 2.2.0
                    
#r "nuget: HackerOs.Taskbar.Blazor, 2.2.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package HackerOs.Taskbar.Blazor@2.2.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=HackerOs.Taskbar.Blazor&version=2.2.0
                    
Install as a Cake Addin
#tool nuget:?package=HackerOs.Taskbar.Blazor&version=2.2.0
                    
Install as a Cake Tool

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last Updated
2.2.1 0 11/1/2026
2.2.0 47 10/31/2026
2.1.0 124 10/26/2026

HackerOS 2.2.0, changes for app developers:
- Installable local server. The HackerOS server installs on your computer as a service on Windows, Linux and macOS, or as a Docker image, from the archives attached to each release. It listens on this computer only, or also on the local network over HTTPS with a local certificate authority. Settings > Server connection > Local server lists the downloads, tests an address and pairs this device with a one-time code; apps get HackServerConnection.PairAsync and TestAsync. (#308)
- Real sites in the browser through the HackerOS server. With a HackerOS server connected, the Browser opens real web sites through its proxy and stays signed in to them (cookies and redirects are kept). An icon at the start of the address bar tells where the page came from, and http pages say Not secure. Apps get HackHttpResponse.Source and the TimedOut and BlockedByAdministrator network errors. (#305)
- System sounds. The OS plays a sound for notifications, warnings, errors, sign-in and sign-out. Choose the sound theme (HackerOS or Soft), the volume or turn the sounds off in Settings > Sound. Add your own theme in ~/.local/share/sounds (freedesktop.org format, OGG or MP3). (#304)
- The clock shows your local time. The clock, the date command, ls -l and the apps now use your time zone: the device's by default, or one chosen in Settings > Date and time. Apps read it with HackTimeZone and IAppExecutionContext.TimeZone. (#283)
- Install apps from GitHub with hackpkg. The hackpkg command installs, updates and removes an app from its GitHub repository. App authors build the .hackapp package with HackerOsPack. (#238)
- Cursor themes. Settings ▸ Appearance ▸ Cursors changes the pointer of the whole OS: System (the device's cursors), HackerOS Neon, Gothic Crimson, or your own theme, a folder of PNG cursors with their hot spot in ~/.config/hackeros/cursors/ or /etc/hackeros/cursors/. Apps need no change.
- Hack Store: apps open without a restart, signed packages, safe installs. An app installed or updated opens at once when it was not already loaded. Packages from a source with a signing key are verified before install. Installs are transactional: an interrupted one is finished or undone at the next start, and hackpkg repair fixes the rest. The previous version is kept: Go back to in the Store or hackpkg rollback. The app's settings and data are backed up before its first start in a new version.
- Hack Store: browse, install and update apps in one click. The Hack Store is pinned in the Start menu on desktop and mobile. It lists the apps of the reviewed catalogs by category, searches them, shows each app's page (screenshots, description, size, license, capabilities, trust), installs it for you or for everyone, opens, updates and uninstalls it, and offers Restart to finish. It checks for updates at sign-in then every 6 hours, and says what it finds in a notification. hackpkg install <appId> installs from the same catalogs, and asks you to choose with catalog:<name>/<appId> when several list the app; the SDK gains HackAppPackages.GetCatalogsAsync, GetUpdatesAsync and RestartToFinishAsync.
- Install apps for yourself, trusted sources and block list. An app from a trusted source is now installed for you alone, without an administrator. An install for every user, an untrusted source or an app of the administrator's block list asks every time for an administrator sign-in, then a window that shows the app, its source, its trust level and its capabilities. Administrators manage the sources and the block list in Settings > Sources and block list or with hackpkg sources and hackpkg policy. hackpkg gets --user and --system; --allow-untrusted is gone.
- Installed apps load their images, scripts and workers. An app installed with hackpkg now finds the files of its wwwroot/ folder at the same address as an app built into the OS: images, scripts, style sheets, Web Workers and the scripts those workers load. An app that wraps a JavaScript project works once installed.
- Theme packs in the Hack Store. The Hack Store has a Themes tab. A .hacktheme pack brings themes, wallpapers, icons, sounds and cursors; install it for yourself without an administrator, or for everyone with the two-step approval, then pick its parts in Settings ▸ Appearance. A pack holds no code: no SVG, no remote address, and every file is checked against the SHA-256 of its manifest. Apps reach packs through HackAppPackages.InstallThemePackAsync, GetInstalledThemePacksAsync and RemoveThemePackAsync.
- Hack Store: no update badge, and hackpkg asks which catalog to use. Available updates are announced by a notification only; the Hack Store's icon no longer carries a count. hackpkg install <appId> refuses an app that several catalogs list and names each catalog:<name>/<appId> to choose from.
- SDK: icon on message boxes. MessageBoxIcon (Information, Warning, Error, Question), MessageBoxDialogRequest.Icon and a WindowAppBase.MessageBox overload that takes an icon. (#277)
- Recursive total size in the file API. The file service and the SDK compute the total size of a folder and its content. (#275)
- HackScreens system API. System apps with the screens.manage capability can list, open, restore, close and identify screens through HackScreens. (#238)
- HackWhatsNew: read the OS change list from an app. HackWhatsNew.GetAsync returns the changes of each version in the app's language with the ones the user has not seen yet, and MarkSeenAsync removes their New badge. No capability is needed.
- Release notes and changelogs written from the change list. The GitHub Release text, the release notes of every HackerOs.* NuGet package and CHANGELOG.md / CHANGELOG-fr.md now come from the change list entries.
- hackeros-solution template: a whole app repository. dotnet new hackeros-solution creates an app repository: the app, a host that runs it in HackerOS, its tests, the HackerOS submodule that gives the version, CI and a workflow that submits the app to the Hack Store catalog on a v* tag. Debug builds HackerOS from the submodule's sources (step into the SDK and the OS); Release uses the nuget.org packages. Every template now has its Visual Studio and Rider labels and icon.
Release notes: https://github.com/Kazo-ca/HackerOs/releases/tag/v2.2.0